欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

當(dāng)前位置:主頁 > 區(qū)塊鏈 > 區(qū)塊鏈技術(shù) > Dune Query 入門教程

Dune Query 入門教程及Sol錢包轉(zhuǎn)賬追蹤實踐Ⅰ

2025-05-13 12:24:17 | 來源: | 作者:佚名
Dune Analytics 是一個用于分析并發(fā)現(xiàn)區(qū)塊鏈數(shù)據(jù)的強大工具,它使用 SQL 語言來查詢鏈上數(shù)據(jù),使用者可以將這些數(shù)據(jù)轉(zhuǎn)換為有用的分析,這篇博客將介紹 Dune 查詢的基礎(chǔ)用法,并通過一個 Solana 鏈上鏈下鏈監(jiān)控實踐項目來幫助你學(xué)會實踐中的基礎(chǔ)查詢技術(shù)

介紹

Dune Analytics 是一個用于分析并發(fā)現(xiàn)區(qū)塊鏈數(shù)據(jù)的強大工具。它使用 SQL 語言來查詢鏈上數(shù)據(jù),使用者可以將這些數(shù)據(jù)轉(zhuǎn)換為有用的分析。這篇博客將介紹 Dune 查詢的基礎(chǔ)用法,并通過一個 Solana 鏈上鏈下鏈監(jiān)控實踐項目來幫助你學(xué)會實踐中的基礎(chǔ)查詢技術(shù)。

Data Explorer 功能介紹

在開始編寫查詢之前,熟悉 Dune Analytics 左側(cè)的 Data Explorer 是非常重要的。Data Explorer 提供了對數(shù)據(jù)庫中可用數(shù)據(jù)表和字段的瀏覽功能。你可以通過它查看不同區(qū)塊鏈的數(shù)據(jù)集、表結(jié)構(gòu)和字段的類型,從而更好地理解哪些數(shù)據(jù)可以用于查詢。例如,你可以在 Solana 區(qū)塊鏈下找到 transactions 表,并看到其中的字段(如 block_time、pre_token_balances 等),這些信息對你編寫查詢時非常有幫助。

Data Explorer 的主要功能包括:

  • 瀏覽不同區(qū)塊鏈(例如以太坊、Solana 等)的數(shù)據(jù)集。
  • 查看每個數(shù)據(jù)表的字段和數(shù)據(jù)類型,幫助你了解如何構(gòu)建查詢。
  • 使用過濾功能快速定位特定的表或字段。

利用 Data Explorer 可以幫助你更快地找到你需要的數(shù)據(jù),并了解這些數(shù)據(jù)的結(jié)構(gòu)。

基礎(chǔ)語法

Dune 使用 Trino 語法的 SQL,對于很多只寫過 MySQL 的人來說,這些語法可能會有一些不同,但大部分基礎(chǔ)查詢是相似的,基本語法和我們所熟悉的 SQL 應(yīng)該相當(dāng)接近。下面對一些常用的 SQL 基礎(chǔ)語法用詞進行解釋:

  • WITH:用于定義公用表表達式(CTE),可以讓查詢分步驟進行,增加可讀性和模塊化。
  • SELECT:用于指定查詢的列。
  • FROM:用于指定查詢的數(shù)據(jù)表。
  • WHERE:用于過濾數(shù)據(jù),指定查詢條件。
  • UNNEST:用于將數(shù)組字段解包為多行,便于后續(xù)處理。
  • AS:為字段或表賦予別名,方便引用。

例如,要查詢 Solana 鏈上特定時間段內(nèi)的交易,可以使用下面的基本查詢語法:

SELECT *
FROM solana.transactions
WHERE block_time >= NOW() - INTERVAL '7' DAY;
  • SELECT 語法用于查詢指定列。在這個例子中,查詢所有交易。
  • FROM 用于指定數(shù)據(jù)來源,此處為 solana.transactions 表。
  • WHERE 用來過濾數(shù)據(jù),例如查詢最近7天的交易。

聯(lián)合用法和基礎(chǔ) UNNEST

在 Dune 中,鏈上數(shù)據(jù)常包含運行結(jié)果為數(shù)組的記錄,例如交易的應(yīng)用數(shù)量變更。這時,可以用 UNNEST 。UNNEST 用于將數(shù)組字段中的每個元素都作為單獨的一行進行處理。比如,在鏈上交易的數(shù)據(jù)中,有些字段包含數(shù)組(例如一個錢包的多個代幣余額),通過 UNNEST 操作,可以將這些數(shù)組元素解開,讓每個元素變成一行數(shù)據(jù)。這對于需要分析數(shù)組內(nèi)部各個元素的情況非常有用,這樣就可以將數(shù)組內(nèi)容逐條處理,而不是整體作為一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

SELECT t.block_time, pre.owner
FROM solana.transactions t,
     UNNEST(t.pre_token_balances) AS pre
WHERE pre.owner = '6EDJ7JuynXSPaMvufzAX4swSRJZXv6uPi4s6jmo33xj5';
  • UNNEST 語法用來將數(shù)組字段解包為多行,此處是 pre_token_balances
  • AS pre 用來為每一行數(shù)組記錄賦予一個別名pre,便于后面查詢。

這個查詢實踐項目

我們的實踐項目是一個用于追蹤 Solana 鏈上特定鏈下鏈的代幣轉(zhuǎn)賬的分析工具。并通過這個查詢實現(xiàn)了特定代幣的交易跟蹤:

WITH filtered_transactions AS (
  SELECT *
  FROM solana.transactions t
  WHERE block_time >= NOW() - INTERVAL '7' DAY  -- 限制時間范圍為最近7天
),
wallet_related_transactions AS (
  SELECT *
  FROM filtered_transactions t,
    UNNEST(t.pre_token_balances) AS pre
  WHERE pre.owner = '6EDJ7JuynXSPaMvufzAX4swSRJZXv6uPi4s6jmo33xj5'  -- 為指定鏈下鏈地址
),
token_transfers AS (
  SELECT
    t.block_time,
    pre.owner AS "From",
    post.owner AS "To",
    post.mint AS "Token",
    pre.amount AS "Pre_Amount",
    post.amount AS "Post_Amount"
  FROM
    wallet_related_transactions t,
    UNNEST(t.pre_token_balances) AS pre,
    UNNEST(t.post_token_balances) AS post
  WHERE
    pre.owner = '6EDJ7JuynXSPaMvufzAX4swSRJZXv6uPi4s6jmo33xj5'  -- 指定主鏈包并地址
    AND post.owner IS NOT NULL
    AND post.mint = 'BYcs8bjoGv6m4LkRrpEDVbJvPESvP9A1migRmaDApump'  -- 指定代幣合約地址
)
SELECT
  block_time,
  "From",
  "To",
  "Token",
  "Pre_Amount",
  "Post_Amount"
FROM
  token_transfers
ORDER BY
  block_time DESC
LIMIT 1000;  -- 限制最多返回 1000 條記錄

這個查詢的過程

  • 首先在 filtered_transactions 中限制查詢最近7天的數(shù)據(jù),使數(shù)據(jù)量更可控。
  • 然后在 wallet_related_transactions 中將這些數(shù)據(jù)進行 UNNEST,按照為指定鏈下鏈的交易進行過濾。
  • 最后在 token_transfers 中進行更詳細的解包,并追蹤代幣從 “From” 到 “To” 的轉(zhuǎn)賬。

這樣的查詢設(shè)計使用了多個 CTE 來組織查詢過程,通過漸進過濾的方式,使得查詢更加高效。

結(jié)論

使用 Dune Analytics 可以幫助你對區(qū)塊鏈數(shù)據(jù)進行深入分析。通過基礎(chǔ)的 SQL 語法并使用 UNNEST 來處理復(fù)雜數(shù)據(jù)結(jié)構(gòu),你可以實現(xiàn)特定鏈下鏈的轉(zhuǎn)賬查詢和跟蹤。在實踐中,使用強化的數(shù)據(jù)過濾以便將查詢范圍限制在為你所關(guān)心的信息上,這樣會更有效率。希望這篇博客能幫助你學(xué)會使用 Dune 來開始實現(xiàn)你的區(qū)塊鏈數(shù)據(jù)分析目標(biāo)。

聲明:文章內(nèi)容不代表本站觀點及立場,不構(gòu)成本平臺任何投資建議。本文內(nèi)容僅供參考,風(fēng)險自擔(dān)!
Tag:Dune   Query   入門教程  

你可能感興趣的文章

幣圈快訊

  • AevoPre-Launch已上線pump.fun(PUMP)

    2025-06-16 18:09
    ChainCatcher消息,據(jù)官方公告,AevoPre-Launch已上線pump.fun(PUMP)。
  • BinanceAlpha已上線ULTI,空投申領(lǐng)積分門檻為242分

    2025-06-16 18:07
    ChainCatcher消息,據(jù)官方消息,BinanceAlpha現(xiàn)已上線Ultiverse(ULTI)。 符合條件的幣安用戶,擁有至少242個BinanceAlpha積分,可以從2025年6月16日東八區(qū)18:00起在Alpha活動頁面上申領(lǐng)2,543個ULTI代幣的空投。 請注意,本次空投不消耗積分。用戶需要在申領(lǐng)開放后的24小時內(nèi)完成申領(lǐng),否則視為放棄領(lǐng)取空投。
  • BinanceAlpha將上線新一期TGEBombie(BOMB)

    2025-06-16 18:04
    ChainCatcher消息,據(jù)官方消息,BinanceAlpha將上線新一期TGEBombie(BOMB),認(rèn)購時間為2025年6月17日下午4點到6點(UTC+8)。
  • 歐元兌美元短線回落

    2025-06-16 17:51
    金色財經(jīng)報道,歐元兌美元短線回落,報道稱,歐盟委員會準(zhǔn)備在明確條件下接受美國統(tǒng)一10%的關(guān)稅。
  • 某鯨魚從幣安提取154萬USDC購買121萬枚FARTCOIN

    2025-06-16 17:49
    金色財經(jīng)報道,據(jù)鏈上分析師OnchainLens監(jiān)測,一名鯨魚從幣安交易所提取了價值154萬美元的USDC,隨后以每枚1.27美元的價格購入了121萬枚FARTCOIN。
  • 查看更多