Skip to main content

概述

ChainStream GraphQL 中每個鏈組都接受兩個可選引數,用於控制 查詢命中哪張底層表。可按場景在新鮮度、查詢速度與資料完整性之間取捨。

Dataset 引數

dataset 引數控制所查資料的 時間範圍,決定走實時表、歸檔表或兩者。

用法

歷史資料回補

構建資料管道或從故障恢復時,可用 dataset: archive 配合時間範圍過濾回補歷史:
  1. 記錄上次處理的時間戳或區塊高度
  2. dataset: archivewhere 從檢查點查到當前時間
  3. 處理回補資料
  4. 持續監控時改用 dataset: realtime

不支援 Dataset 切換的表

部分 Cube 無論 dataset 取何值都查詢同一張表,包括:
  • DWS CubeTokenHoldersWalletTokenPnLDEXPools — 表示當前狀態快照
  • 特殊表TransactionBalancesPredictionTradesPredictionManagementsPredictionSettlements
對這些 Cube,dataset 會被靜默忽略。

Aggregates 引數

aggregates 引數決定查詢是否使用 預聚合物化檢視(DWM 層),而非原始明細表(DWD 層)。預聚合表通常按分鐘預計算彙總,查詢明顯更快。

用法

各模式適用場景


組合使用兩個引數

可同時使用 datasetaggregates
該查詢在實時資料上使用預聚合表,拉取最近約 60 分鐘的跨鏈代幣成交統計,以獲得較高速度。

效能考量

大盤用 realtime

dataset: realtime 命中更小的表分割槽,監控類場景響應更快。

分析用 aggregates

aggregates: yesonly 利用預計算彙總,比全表掃描原始事件快幾個數量級。
若要 OHLC 或成交量查詢儘可能快,可組合 dataset: realtimeaggregates: only,命中最小、最最佳化的一片資料。

相關文件

Schema 概覽

瞭解 dataset 與 aggregates 在整體查詢結構中的位置。

資料 Cubes

檢視哪些 Cube 支援 dataset 切換。