moderný open source dátový zásobník pre blockchain

1. Výzva pre moderný blockchain dátový zásobník

Existuje niekoľko výziev, ktorým môže moderný startup na indexovanie blockchainu čeliť, vrátane:

  • Obrovské množstvo údajov. Keď sa množstvo údajov na blockchaine zvýši, index údajov sa bude musieť zväčšiť, aby zvládol zvýšenú záťaž a poskytol efektívny prístup k údajom. V dôsledku toho to vedie k vyšším nákladom na úložisko, pomalému výpočtu metrík a zvýšenému zaťaženiu databázového servera.
  • Komplexné spracovanie dát. Technológia blockchain je komplexná a vybudovanie komplexného a spoľahlivého dátového indexu si vyžaduje hlboké pochopenie základných dátových štruktúr a algoritmov. Rozmanitosť implementácií blockchainu to zdedí. Vzhľadom na konkrétne príklady sa NFT v Ethereu zvyčajne vytvárajú v rámci inteligentných zmlúv podľa formátov ERC721 a ERC1155. Na rozdiel od toho, implementácia tých na Polkadot, napríklad, je zvyčajne postavená priamo v blockchainovom runtime. Tie by sa mali považovať za NFT a mali by byť uložené ako tie.
  • Integračné schopnosti. Aby sa používateľom poskytla maximálna hodnota, riešenie blockchain indexovania môže potrebovať integrovať svoj dátový index s inými systémami, ako sú analytické platformy alebo API. Je to náročné a vyžaduje si značné úsilie vložené do návrhu architektúry.

Ako sa technológia blockchain rozšírila, množstvo dát uložených na blockchaine sa zvýšilo. Je to preto, že túto technológiu používa viac ľudí a každá transakcia pridáva do blockchainu nové dáta. Okrem toho sa technológia blockchain vyvinula z jednoduchých aplikácií na prevod peňazí, ako sú tie, ktoré zahŕňajú používanie bitcoínov, na zložitejšie aplikácie zahŕňajúce implementáciu obchodnej logiky v rámci inteligentných zmlúv. Tieto inteligentné zmluvy môžu generovať veľké množstvo údajov, čo prispieva k zvýšenej zložitosti a veľkosti blockchainu. Postupom času to viedlo k väčšiemu a komplexnejšiemu blockchainu.

V tomto článku sa zaoberáme vývojom technologickej architektúry Footprint Analytics po etapách ako prípadová štúdia, aby sme preskúmali, ako technologický zásobník Iceberg-Trino rieši problémy s údajmi v reťazci.

Footprint Analytics indexovalo približne 22 verejných blockchainových údajov a 17 trhovísk NFT, 1900 projektov GameFi a viac ako 100,000 XNUMX kolekcií NFT do dátovej vrstvy sémantickej abstrakcie. Ide o najkomplexnejšie riešenie blockchainového dátového skladu na svete.

Bez ohľadu na údaje blockchainu, ktoré zahŕňajú viac ako 20 miliárd riadkov záznamov o finančných transakciách, ktoré analytici údajov často vyhľadávajú. je to odlišné od protokolov ingresie v tradičných dátových skladoch.

Za posledných niekoľko mesiacov sme zažili 3 veľké inovácie, aby sme splnili rastúce obchodné požiadavky:

2. Architektúra 1.0 Bigquery

Na začiatku Footprint Analytics sme použili Google BigQuery ako náš ukladací a dopytovací nástroj; Bigquery je skvelý produkt. Je neuveriteľne rýchly, ľahko sa používa a poskytuje dynamický aritmetický výkon a flexibilnú syntax UDF, ktorá nám pomáha rýchlo dokončiť prácu.

Bigquery má však aj niekoľko problémov.

  • Údaje nie sú komprimované, čo vedie k vysokým nákladom, najmä pri ukladaní nespracovaných údajov z viac ako 22 blockchainov Footprint Analytics.
  • Nedostatočná súbežnosť: Bigquery podporuje iba 100 súčasných dopytov, čo je nevhodné pre scenáre vysokej súbežnosti pre Footprint Analytics, keď slúži mnohým analytikom a používateľom.
  • Zamknite sa pomocou Google Bigquery, čo je produkt s uzavretým zdrojom.

Preto sme sa rozhodli preskúmať iné alternatívne architektúry.

3. Architektúra 2.0 OLAP

Veľmi nás zaujali niektoré produkty OLAP, ktoré sa stali veľmi populárnymi. Najatraktívnejšou výhodou OLAP je jeho čas odozvy na dopyt, ktorý zvyčajne trvá niekoľko sekúnd, kým vráti výsledky dopytu pre obrovské množstvo údajov, a môže tiež podporovať tisíce súbežných dopytov.

Vybrali sme jednu z najlepších databáz OLAP, Doris, skúsiť to. Tento motor funguje dobre. V určitom bode sme však čoskoro narazili na ďalšie problémy:

  • Typy údajov ako Array alebo JSON zatiaľ nie sú podporované (november 2022). Polia sú bežným typom údajov v niektorých blockchainoch. Napríklad, tematické pole v denníkoch evm. Neschopnosť vypočítať na Array priamo ovplyvňuje našu schopnosť vypočítať mnohé obchodné metriky.
  • Obmedzená podpora pre DBT a pre príkazy na zlúčenie. Toto sú bežné požiadavky na dátových inžinierov pre scenáre ETL/ELT, kde potrebujeme aktualizovať niektoré novo indexované údaje.

Ako už bolo povedané, nemohli sme použiť Doris pre celý náš dátový kanál na produkciu, takže sme sa pokúsili použiť Doris ako databázu OLAP na vyriešenie časti nášho problému v potrubí produkcie dát, ktorá funguje ako dopytovací nástroj a poskytuje rýchle a vysoko kvalitné schopnosti súbežných dotazov.

Bohužiaľ sme nemohli nahradiť Bigquery Doris, takže sme museli pravidelne synchronizovať údaje z Bigquery do Doris pomocou tohto nástroja ako dopytovacieho nástroja. Tento proces synchronizácie mal niekoľko problémov, jedným z nich bolo, že zápisy o aktualizácii sa rýchlo nahromadili, keď bol mechanizmus OLAP zaneprázdnený podávaním dotazov klientom front-end. Následne bola ovplyvnená rýchlosť procesu zápisu a synchronizácia trvala oveľa dlhšie a niekedy bolo dokonca nemožné ju dokončiť.

Uvedomili sme si, že OLAP by mohol vyriešiť niekoľko problémov, ktorým čelíme, a nemôže sa stať riešením Footprint Analytics na kľúč, najmä pokiaľ ide o kanál na spracovanie údajov. Náš problém je väčší a komplexnejší a dalo by sa povedať, že samotný OLAP ako dopytovací nástroj nám nestačil.

4. Architektúra 3.0 Iceberg + Trino

Vitajte v architektúre Footprint Analytics 3.0, kompletnom prepracovaní základnej architektúry. Od základov sme prepracovali celú architektúru, aby sme oddelili ukladanie, výpočet a dopytovanie údajov do troch rôznych častí. Poučenie z dvoch skorších architektúr Footprint Analytics a poučenie sa zo skúseností iných úspešných projektov veľkých dát, ako sú Uber, Netflix a Databricks.

4.1. Zavedenie dátového jazera

Najprv sme obrátili našu pozornosť na dátové jazero, nový typ ukladania údajov pre štruktúrované aj neštruktúrované údaje. Dátové jazero je ideálne na ukladanie údajov v reťazci, pretože formáty údajov v reťazci sa pohybujú v širokom rozsahu od neštruktúrovaných nespracovaných údajov až po štruktúrované abstrakcie údajov, ktorými je Footprint Analytics dobre známy. Očakávali sme, že na vyriešenie problému ukladania údajov použijeme dátové jazero a v ideálnom prípade by tiež podporovalo bežné výpočtové motory, ako sú Spark a Flink, takže integrácia s rôznymi typmi procesorov pri vývoji Footprint Analytics nebude náročná. .

Iceberg sa veľmi dobre integruje so Spark, Flink, Trino a ďalšími výpočtovými motormi a môžeme si vybrať najvhodnejší výpočet pre každú z našich metrík. Napríklad:

  • Pre tých, ktorí vyžadujú komplexnú výpočtovú logiku, bude Spark voľbou.
  • Flink pre výpočet v reálnom čase.
  • Pre jednoduché ETL úlohy, ktoré je možné vykonávať pomocou SQL, používame Trino.

4.2. Dopytový nástroj

Keď Iceberg vyriešil problémy s ukladaním a výpočtom, museli sme premýšľať o výbere vyhľadávacieho nástroja. Nie je k dispozícii veľa možností. Alternatívy, ktoré sme zvažovali, boli

Najdôležitejšou vecou, ​​ktorú sme zvážili predtým, ako sme sa dostali hlbšie, bolo, že budúci vyhľadávací nástroj musí byť kompatibilný s našou súčasnou architektúrou.

  • Na podporu Bigquery ako zdroja údajov
  • Na podporu DBT, na ktoré sa spoliehame pri vytváraní mnohých metrík
  • Na podporu metabázy nástroja BI

Na základe vyššie uvedeného sme si vybrali Trino, ktoré má veľmi dobrú podporu pre Iceberg a tím bol taký pohotový, že sme upozornili na chybu, ktorá bola opravená nasledujúci deň a vydaná na najnovšiu verziu nasledujúci týždeň. Toto bola najlepšia voľba pre tím Footprint, ktorý tiež vyžaduje vysokú rýchlosť implementácie.

4.3. Testovanie výkonu

Keď sme sa rozhodli pre naše smerovanie, vykonali sme výkonnostný test na kombinácii Trino + Iceberg, aby sme zistili, či dokáže splniť naše potreby a na naše prekvapenie boli dotazy neuveriteľne rýchle.

S vedomím, že Presto + Hive je už roky najhorším porovnávačom v celom OLAP humbuku, kombinácia Trino + Iceberg nás úplne ohromila.

Tu sú výsledky našich testov.

prípad 1: pripojenie k veľkému súboru údajov

800 GB tabuľka1 sa pripája k ďalšej 50 GB tabuľke2 a vykonáva zložité obchodné výpočty

prípad2: použite veľkú jednu tabuľku na vykonanie odlišného dotazu

Test sql: vyberte odlišnú (adresu) zo skupiny tabuľky podľa dňa

Kombinácia Trino+Iceberg je asi 3x rýchlejšia ako Doris v rovnakej konfigurácii.

Okrem toho je tu ďalšie prekvapenie, pretože Iceberg dokáže využívať dátové formáty ako Parquet, ORC atď., ktoré budú dáta komprimovať a uchovávať. Úložisko tabuliek Icebergu zaberá len asi 1/5 priestoru iných dátových skladov Veľkosť úložiska tej istej tabuľky v troch databázach je nasledovná:

Poznámka: Vyššie uvedené testy sú príklady, s ktorými sme sa stretli pri skutočnej výrobe a slúžia len na porovnanie.

4.4. Efekt inovácie

Správy o teste výkonu nám poskytli dostatočný výkon, takže nášmu tímu trvalo migrácia približne 2 mesiace, a toto je schéma našej architektúry po inovácii.

  • Viaceré počítačové motory zodpovedajú našim rôznym potrebám.
  • Trino podporuje DBT a dokáže priamo dopytovať Iceberg, takže sa už nemusíme zaoberať synchronizáciou dát.
  • Úžasný výkon Trino + Iceberg nám umožňuje sprístupniť všetky bronzové údaje (nespracované údaje) našim používateľom.

5. Zhrnutie

Od svojho spustenia v auguste 2021 tím Footprint Analytics dokončil tri architektonické inovácie za menej ako rok a pol, a to vďaka jeho silnej túžbe a odhodlaniu priniesť výhody najlepšej databázovej technológie svojim používateľom kryptomien a solídnej implementácii a implementácii. modernizáciu základnej infraštruktúry a architektúry.

Inovácia architektúry Footprint Analytics 3.0 priniesla svojim používateľom novú skúsenosť, ktorá používateľom z rôznych prostredí umožňuje získať prehľad o rozmanitejšom použití a aplikáciách:

  • Footprint, vytvorený pomocou nástroja Metabase BI, umožňuje analytikom získať prístup k dekódovaným údajom v reťazci, skúmať s úplnou slobodou výberu nástrojov (bez kódu alebo pevného kábla), vyhľadávať celú históriu a krížovo skúmať množiny údajov, aby získali prehľad o nie je čas.
  • Integrujte údaje z reťazca aj mimo neho do analýzy v rámci webu2 + web3;
  • Vybudovaním/dotazovaním metrík na vrchol obchodnej abstrakcie Footprintu ušetria analytici alebo vývojári čas na 80 % opakujúcej sa práce pri spracovaní údajov a sústredia sa na zmysluplné metriky, výskum a produktové riešenia na základe ich podnikania.
  • Bezproblémová skúsenosť od Footprint Web po volania REST API, všetko založené na SQL
  • Upozornenia v reálnom čase a vykonateľné upozornenia na kľúčové signály na podporu investičných rozhodnutí

Zdroj: https://cryptoslate.com/iceberg-spark-trino-a-modern-open-source-data-stack-for-blockchain/