概要
ChainStream GraphQL の各 Chain Group は、どの基盤テーブルに問い合わせるか を制御する任意パラメータを 2 つ受け取ります。用途に応じて鮮度、クエリ速度、データの網羅性を最適化できます。dataset パラメータ
dataset パラメータは、問い合わせるデータの 時間的な範囲 を制御します。リアルタイムテーブル、アーカイブテーブル、またはその両方にヒットするかが決まります。
使い方
履歴データのバックフィル
データパイプラインの構築やダウンタイムからの復旧では、dataset: archive と時間範囲フィルタで履歴をバックフィルできます。
- 最後に処理したタイムスタンプまたはブロック高を記録する
- 最後のチェックポイントから現在までを
whereで指定し、dataset: archiveでクエリする - バックフィルしたデータを処理する
- 継続的な監視には
dataset: realtimeに切り替える
dataset 非対応のテーブル
一部の Cube は dataset の値に関わらず常に同じテーブルを参照します。例:
- DWS Cube:
TokenHolders、WalletTokenPnL、DEXPools— 現在状態のスナップショット - 特別なテーブル:
TransactionBalances、PredictionTrades、PredictionManagements、PredictionSettlements
dataset は無視されます。
aggregates パラメータ
aggregates パラメータは、生の明細テーブル(DWD)ではなく 事前集計済みマテリアライズドビュー(DWM レイヤー)を使うかどうかを制御します。事前集計テーブルには通常 1 分単位で事前計算されたロールアップが含まれ、クエリがはるかに高速です。
使い方
モードの選び方
2 つのパラメータの併用
dataset と aggregates は同時に指定できます。
パフォーマンスの考慮
ダッシュボードには realtime
dataset: realtime はより小さいパーティションを参照するため、モニタリング用途で応答が速くなります。分析には aggregates
aggregates: yes または only は、生イベントテーブルをフルスキャンするより桁違いに速い事前計算ロールアップを使います。関連ドキュメント
スキーマ概要
dataset と aggregates が全体のクエリ構造のどこに位置するかを確認します。データ Cube
どの Cube が
dataset 切り替えに対応しているかを確認します。
