Skip to main content

什麼是指標(Metrics)

指標是 Cube Record 型別上可作為欄位選用的聚合函式,讓你在 GraphQL 查詢中直接計算統計量,無需後置處理。當與維度欄位一起選擇時,查詢會按所選維度分組,併為每組計算指標。 支援的指標:

Record 型別上的指標欄位

指標以頂層欄位形式出現在各 Cube 的 Record 型別上。並非每個 Cube 都支援全部指標——取決於 Cube 定義。
在欄位選擇中加入指標欄位即可使用:
該查詢按協議名對 DEX 成交分組,並返回每組的筆數。

of 引數

sumavgminmaxuniq 等指標需要 of 引數,用於指定對哪個維度聚合。of 的值為按 Cube 生成的列舉,命名遵循維度路徑約定。

示例:按 DEX 統計買入總量

響應:

count — 計數行數

不帶 ofcount 統計每組內的總行數(等價於 COUNT(*)):
與維度欄位一起使用時,返回每組的計數:

uniq — 統計不同值

uniq 對應 SQL 中的 COUNT(DISTINCT column),用於統計某維度的不同取值數量:
該查詢返回今日在 Solana 上交易 USDC 的獨立買方錢包數量。

selectWhere — 類 HAVING 篩選

selectWhere 用於在聚合結果上篩選,類似 SQL 的 HAVING。它在分組與聚合之後應用,可按指標值過濾分組。
該查詢只返回成交筆數超過 100 的 DEX 協議——筆數更少的協議不會出現在結果中。
selectWhere 的值必須為字串(例如 "100" 而非 100)。服務端會按數值解析。
selectWhere 支援下列比較運算子:
已知限制: 使用 selectWhere 時,orderBy 引用的欄位須屬於隱式 GROUP BY 的一部分(即你正在選擇的欄位)或為聚合結果。按不在 GROUP BY 中的欄位排序(例如 Block_Time)會導致資料庫報錯。

實用示例:頂級交易者

查詢某代幣今日按成交筆數排序的前 10 個錢包,並展示其買入總量與獨立成交相關統計:
響應:

組合多個指標

單個查詢中可選擇多個指標欄位:
該查詢按 DEX 返回:成交筆數、總成交量、價格區間與獨立交易者數——一次查詢完成。

指標 vs 預聚合 Cube

常見問題:應該在 DWD Cube 上用指標,還是直接查 DWM/DWS Cube?
經驗法則:若 DWM/DWS 已覆蓋你的場景——它們已預聚合,通常明顯更快。僅在需要預置 Cube 不支援的自定義分組或聚合邏輯時,再回退到帶指標的 DWD Cube。

決策指引

使用 Pairs(DWM)。已按分鐘預計算 open/high/low/close/volume,無需自己對 DEXTrades 做聚合。
使用 Tokens(DWM)。已按分鐘預聚合成交筆數、成交量與獨立交易者數。
使用 TokenHolders(DWS)。最新每位持有者餘額已預計算——比聚合 BalanceUpdates 快得多。
使用 DEXTrades,以 count + sum(of: Trade_Buy_Amount)Trade.Dex.ProtocolName 分組。無現成 Cube 覆蓋時,DWD 指標是合適選擇。
使用 WalletTokenPnL(DWS)。買入/賣出量與成交筆數已按錢包–代幣對預計算。

下一步

資料 Cube

瀏覽全部 25 個 Cube 及其欄位結構。

查詢示例

檢視包含指標與聚合的實戰查詢示例。