Skip to main content

概要

ChainStream GraphQL の各 Chain Group は、どの基盤テーブルに問い合わせるか を制御する任意パラメータを 2 つ受け取ります。用途に応じて鮮度、クエリ速度、データの網羅性を最適化できます。

dataset パラメータ

dataset パラメータは、問い合わせるデータの 時間的な範囲 を制御します。リアルタイムテーブル、アーカイブテーブル、またはその両方にヒットするかが決まります。

使い方

履歴データのバックフィル

データパイプラインの構築やダウンタイムからの復旧では、dataset: archive と時間範囲フィルタで履歴をバックフィルできます。
  1. 最後に処理したタイムスタンプまたはブロック高を記録する
  2. 最後のチェックポイントから現在までを where で指定し、dataset: archive でクエリする
  3. バックフィルしたデータを処理する
  4. 継続的な監視には dataset: realtime に切り替える

dataset 非対応のテーブル

一部の Cube は dataset の値に関わらず常に同じテーブルを参照します。例:
  • DWS Cube: TokenHoldersWalletTokenPnLDEXPools — 現在状態のスナップショット
  • 特別なテーブル: TransactionBalancesPredictionTradesPredictionManagementsPredictionSettlements
これらの Cube では dataset は無視されます。

aggregates パラメータ

aggregates パラメータは、生の明細テーブル(DWD)ではなく 事前集計済みマテリアライズドビュー(DWM レイヤー)を使うかどうかを制御します。事前集計テーブルには通常 1 分単位で事前計算されたロールアップが含まれ、クエリがはるかに高速です。

使い方

モードの選び方


2 つのパラメータの併用

datasetaggregates は同時に指定できます。
このクエリは、リアルタイムデータと事前集計テーブルを組み合わせ、直近約 60 分のクロスチェーントークン取引統計を高速に取得します。

パフォーマンスの考慮

ダッシュボードには realtime

dataset: realtime はより小さいパーティションを参照するため、モニタリング用途で応答が速くなります。

分析には aggregates

aggregates: yes または only は、生イベントテーブルをフルスキャンするより桁違いに速い事前計算ロールアップを使います。
OHLC や出来高クエリを最速にしたい場合は、dataset: realtimeaggregates: only を組み合わせます。最も小さく最適化されたデータスライスを狙えます。

関連ドキュメント

スキーマ概要

datasetaggregates が全体のクエリ構造のどこに位置するかを確認します。

データ Cube

どの Cube が dataset 切り替えに対応しているかを確認します。