1. Grundkonzepte

Verstehen Sie zunächst die 3 Grundfragen?

1. Was ist Dune Analytics?

Einfach ausgedrückt ist es:

1. Das Dune Analytics-Team bereinigte die Daten in der Blockchain, um strukturierte Daten zu bilden, speicherte sie im Data Warehouse und erstellte anschließend ein Tool, mit dem Personen mit einigen SQL-Grundkenntnissen die Daten flexibel entsprechend ihren eigenen Anforderungen abfragen können.

2. Die Plattform bietet auch Datenvisualisierungsfunktionen und die gefundenen Daten können einfach in Diagramme und Dashboards umgewandelt werden.

2. Was ist ein Data Warehouse?

In menschlicher Hinsicht bedeutet dies, dass für die Datenstatistik einige Daten in Kategorien gespeichert werden und der Speicherträger [Datentabelle] ist. Eine Reihe von [Datentabellen], die sich gemeinsam auf ein oder mehrere bestimmte Themen konzentrieren, ist ein Data Warehouse.

Beachten:

Die Daten hier können Ergebnisdaten sein (z. B. die täglichen Handelsvolumenstatistiken eines bestimmten Handelspaares seit Uniswap online gegangen ist).

Es kann sich auch um Prozessdaten handeln (Details zu jedem Transaktionsdatensatz eines bestimmten Handelspaars, seit Uniswap online gegangen ist: Wer hat ihn initiiert, A gegen B getauscht, Transaktionszeit, tx_hash, Transaktionsnummer ...)

3. Was ist SQL?

Angenommen, Sie möchten Crispy Rice Chocolate essen, können aber im Moment nicht ausgehen, rufen also einen Laufburschen an und sagen: Ich brauche eine Schachtel Pralinen, und seine Marke ist Crispy Rice. Ich habe Besorgungen gemacht und bin in den Supermarkt gegangen, um Pralinen zu kaufen und sie dir nach Hause zu liefern.

Analog dazu ist SQL das, was Sie gesagt haben, und Dune Analytics ist ein Laufbursche. Es ermöglicht Ihnen, mit dem Data Warehouse zu kommunizieren und die Daten im Data Warehouse zu Ihnen zu verschieben.

2. Wie sieht die Datentabelle aus?

Sie können sich eine Tabelle wie eine Excel-Tabelle vorstellen, wobei in jeder Excel-Tabelle unterschiedliche Daten gespeichert sind. Nehmen Sie als Beispiel meine am häufigsten verwendete Tabelle: erc20. "ERC20_evt_Transfer" (ERC20-Token-Übertragungsprotokoll)

Die Felder der Tabelle sind wie folgt

  • from: Von welchem ​​Wallet die Coins transferiert werden

  • an: Auf welches Wallet werden die Coins transferiert

  • Wert: Wie viele Münzen wurden übertragen

  • Vertragsadresse: Welcher Coin wird übertragen (die Vertragsadresse des ERC20-Tokens, im Allgemeinen können Sie die Vertragsadresse eines bestimmten Tokens auf CMC überprüfen)

  • evt_tx_hash: Was ist der Sende-Hash dieser Übertragung?

  • evt_index: Diese Daten sind die Nummer dieser Transaktion. Eine Transaktion kann beispielsweise mehrere Datenelemente enthalten. Wenn Sie beispielsweise APE gegen AAVE in Uniswap eintauschen, können diese in zwei Datenelemente aufgeteilt werden: APE→ETH, ETH→AAVE .

  • evt_block_time: der Zeitpunkt, zu dem die Transaktion gepackt wurde

  • evt_block_number: Die Höhe des Blocks, in dem die Transaktion verpackt ist

3. Wie schreibe ich SQL?

1.Grundstruktur

Die grundlegendste Struktur oder Syntax von SQL ist

  • auswählen: Welches Feld soll übernommen werden?

  • von: Von welchem ​​Tisch?

  • wo: Welche Einschränkungen gibt es?

Zum Beispiel 🌰, eine konkrete Erklärung finden Sie im Bild unten

-------Code-Trennlinie-------

wählen

"aus"

,"Zu"

,"Wert"

von erc20."ERC20_evt_Transfer"

wobei "von" = '\xb1a2b43a7433dd150bb82227ed519cd6b142d382'

und "Vertragsadresse" = '\xe6ee69495b571e1042f760d7f34009164aff87a2'

-------Code-Trennlinie-------

Eine zusätzliche Erklärung

  • In Bezug auf die Wallet-/Vertragsadresse oder den Sende-Hash wurde der tatsächliche Speicher in der Datenbank einer Verarbeitungsebene unterzogen: Alle [0] in [0x] wurden durch [\] ersetzt.

  • Wählen Sie mehrere durch [englische] Kommas getrennte Felder aus. Die in SQL verwendeten Kommas und Anführungszeichen müssen im englischen Format vorliegen, andernfalls wird ein Fehler gemeldet.

  • [wobei] Wenn dahinter mehrere Bedingungen stehen, verwenden Sie [und], um diese Bedingungen zu verbinden, wenn Sie den Schnittpunkt mehrerer Bedingungen ermitteln möchten, und verwenden Sie [oder], um die Vereinigung zu verbinden.

  • Das „von“ in Anführungszeichen ist ein Feldname in der Tabelle, und das „von“ vor dem Tabellennamen ist ein SQL-Syntaxwort.

Das Endergebnis ist in der folgenden Abbildung dargestellt. Es gibt nur 4 Transaktionsdaten, die die oben genannten Bedingungen erfüllen.

2. Aggregationsfunktion

Gemeinsame Aggregatfunktionen

  • zählen()

    Zählen, berechnen Sie, wie viele Datenzeilen die Anforderungen erfüllen. Wenn Sie Duplikate gemäß einem bestimmten Feld entfernen müssen, z. B. [bis], ist es count(distinct „to“).

  • Summe()

    Um beispielsweise zu berechnen, wie viel ETH Brother Sun dieses Jahr an Binance überwiesen hat, müssen Sie sum() verwenden, um es zu addieren.

  • max()

    Nehmen Sie zum Beispiel das Maximum, um die maximale Menge an ETH zu berechnen, die Bruder Sun in diesem Jahr an Binance übertragen hat, Sie müssen es mit max() berechnen.

  • min()

    Minimale Einnahme

  • Durchschnitt ()

    • Durchschnitt

Die Aggregatfunktion besteht darin, alle Daten unter Ihren Where-Einschränkungen herauszunehmen und sie dann mithilfe von Funktionen zu aggregieren

Zum Vergleich hier🌰 wechseln wir hier zu „contract_address“.

-------Code-Trennlinie-------

wählen

"aus"

,"Zu"

,"Wert"

von erc20."ERC20_evt_Transfer"

wobei "von" = '\xb1a2b43a7433dd150bb82227ed519cd6b142d382'

und "Vertragsadresse" = '\x5ca9a71b1d01849c0a95490cc00559717fcf0d1d'

-------Code-Trennlinie-------

Das Ergebnis ist wie folgt: