moderan skup podataka otvorenog koda za blockchain

1. Izazov za moderni blockchain skup podataka

Nekoliko je izazova s ​​kojima se može suočiti moderno pokretanje indeksiranja blockchaina, uključujući:

  • Ogromne količine podataka. Kako se količina podataka na lancu blokova povećava, indeks podataka morat će se povećati kako bi podnio povećano opterećenje i omogućio učinkovit pristup podacima. Posljedično, to dovodi do viših troškova pohrane, sporog izračuna metrike i povećanog opterećenja poslužitelja baze podataka.
  • Složeni cjevovod za obradu podataka. Blockchain tehnologija je složena, a izgradnja sveobuhvatnog i pouzdanog indeksa podataka zahtijeva duboko razumijevanje temeljnih struktura podataka i algoritama. Raznolikost implementacija blockchaina ga nasljeđuje. S obzirom na konkretne primjere, NFT-ovi u Ethereumu obično se stvaraju unutar pametnih ugovora prema formatima ERC721 i ERC1155. Nasuprot tome, implementacija onih na Polkadotu, na primjer, obično se gradi izravno unutar blockchain runtimea. To bi se trebalo smatrati NFT-ovima i trebalo bi ih spremiti kao takve.
  • Mogućnosti integracije. Kako bi pružilo maksimalnu vrijednost korisnicima, rješenje za indeksiranje u lancu blokova možda će trebati integrirati svoj indeks podataka s drugim sustavima, kao što su analitičke platforme ili API-ji. Ovo je izazovno i zahtijeva značajan napor uložen u arhitektonski dizajn.

Kako je blockchain tehnologija postala raširenija, količina podataka pohranjenih na blockchainu se povećala. To je zato što više ljudi koristi tehnologiju, a svaka transakcija dodaje nove podatke u blockchain. Dodatno, blockchain tehnologija evoluirala je od jednostavnih aplikacija za prijenos novca, poput onih koje uključuju korištenje Bitcoina, do složenijih aplikacija koje uključuju implementaciju poslovne logike unutar pametnih ugovora. Ovi pametni ugovori mogu generirati velike količine podataka, pridonoseći povećanoj složenosti i veličini blockchaina. S vremenom je to dovelo do većeg i složenijeg blockchaina.

U ovom članku pregledavamo evoluciju tehnološke arhitekture Footprint Analyticsa u fazama kao studiju slučaja kako bismo istražili kako Iceberg-Trino tehnološki skup rješava izazove podataka u lancu.

Footprint Analytics je indeksirao oko 22 javna blockchain podataka i 17 NFT tržnica, 1900 GameFi projekata i više od 100,000 XNUMX NFT kolekcija u semantički sloj podataka apstrakcije. To je najopsežnije blockchain rješenje za skladište podataka na svijetu.

Bez obzira na blockchain podatke, koji uključuju više od 20 milijardi redaka zapisa o financijskim transakcijama, koje analitičari podataka često postavljaju upite. razlikuje se od zapisa ingresije u tradicionalnim skladištima podataka.

Doživjeli smo 3 velike nadogradnje u proteklih nekoliko mjeseci kako bismo zadovoljili rastuće poslovne zahtjeve:

2. Arhitektura 1.0 Bigquery

Na početku Footprint Analyticsa koristili smo Google BigQuery kao naš mehanizam za pohranu i upite; Bigquery je izvrstan proizvod. Nevjerojatno je brz, jednostavan za korištenje i pruža dinamičku aritmetičku snagu i fleksibilnu UDF sintaksu koja nam pomaže da brzo obavimo posao.

Međutim, Bigquery također ima nekoliko problema.

  • Podaci nisu komprimirani, što dovodi do visokih troškova, osobito pri pohranjivanju neobrađenih podataka više od 22 blockchaina Footprint Analyticsa.
  • Nedovoljna istodobnost: Bigquery podržava samo 100 istodobnih upita, što nije prikladno za scenarije visoke istodobnosti za Footprint Analytics kada opslužuje mnogo analitičara i korisnika.
  • Zaključajte se uz Google Bigquery, koji je proizvod zatvorenog koda.

Stoga smo odlučili istražiti druge alternativne arhitekture.

3. Arhitektura 2.0 OLAP

Bili smo jako zainteresirani za neke od OLAP proizvoda koji su postali vrlo popularni. Najprivlačnija prednost OLAP-a je njegovo vrijeme odgovora na upit, koje obično traje manje od sekunde da vrati rezultate upita za ogromne količine podataka, a također može podržati tisuće istodobnih upita.

Odabrali smo jednu od najboljih OLAP baza podataka, Doris, da probam. Ovaj motor radi dobro. Međutim, u nekom smo trenutku ubrzo naišli na neke druge probleme:

  • Vrste podataka kao što su Array ili JSON još nisu podržane (studeni 2022.). Nizovi su uobičajena vrsta podataka u nekim lancima blokova. Na primjer, tematsko polje u evm zapisima. Nemogućnost izračunavanja na Arrayu izravno utječe na našu sposobnost izračunavanja mnogih poslovnih metrika.
  • Ograničena podrška za DBT i za izjave spajanja. Ovo su uobičajeni zahtjevi za inženjere podataka za ETL/ELT scenarije u kojima trebamo ažurirati neke novoindeksirane podatke.

Uz to, nismo mogli upotrijebiti Doris za cijeli cjevovod podataka u proizvodnji, pa smo pokušali upotrijebiti Doris kao OLAP bazu podataka kako bismo riješili dio problema u cjevovodu za proizvodnju podataka, djelujući kao pogon za upite i pružajući brzu i visoku mogućnosti istodobnih upita.

Nažalost, nismo mogli zamijeniti Bigquery s Dorisom, pa smo morali povremeno sinkronizirati podatke iz Bigqueryja u Doris koristeći ga kao mehanizam za upite. Ovaj proces sinkronizacije imao je nekoliko problema, od kojih je jedan bio da su se upisi ažuriranja brzo gomilali kada je OLAP mehanizam bio zauzet posluživanjem upita klijentima na prednjoj strani. Naknadno je to utjecalo na brzinu procesa pisanja, a sinkronizacija je trajala mnogo dulje, a ponekad ju je čak bilo nemoguće završiti.

Shvatili smo da OLAP može riješiti nekoliko problema s kojima se suočavamo i da ne može postati ključ u ruke Footprint Analyticsa, posebno za cjevovod za obradu podataka. Naš problem je veći i složeniji i mogli bismo reći da nam OLAP kao query engine sam po sebi nije dovoljan.

4. Arhitektura 3.0 Iceberg + Trino

Dobro došli u arhitekturu Footprint Analytics 3.0, potpunu reviziju temeljne arhitekture. Redizajnirali smo cijelu arhitekturu od temelja kako bismo odvojili pohranjivanje, izračunavanje i upite podataka u tri različita dijela. Uzimanje lekcija iz dviju ranijih arhitektura Footprint Analyticsa i učenje iz iskustva drugih uspješnih big data projekata kao što su Uber, Netflix i Databricks.

4.1. Uvođenje podatkovnog jezera

Prvo smo obratili pažnju na podatkovno jezero, novu vrstu pohrane podataka za strukturirane i nestrukturirane podatke. Podatkovno jezero savršeno je za pohranu podataka u lancu jer se formati podataka u lancu široko kreću od nestrukturiranih sirovih podataka do strukturiranih podataka apstrakcije po kojima je Footprint Analytics dobro poznat. Očekivali smo da ćemo upotrijebiti podatkovno jezero za rješavanje problema pohrane podataka, a idealno bi bilo da podržava i mainstream računalne strojeve kao što su Spark i Flink, tako da ne bi bilo teško integrirati se s različitim vrstama obradnih strojeva kako se Footprint Analytics razvija .

Iceberg se vrlo dobro integrira sa Spark, Flink, Trino i drugim računalnim strojevima, a mi možemo odabrati najprikladnije izračunavanje za svaku od naših metrika. Na primjer:

  • Za one kojima je potrebna složena računalna logika, Spark će biti izbor.
  • Flink za računanje u stvarnom vremenu.
  • Za jednostavne ETL zadatke koji se mogu izvesti pomoću SQL-a koristimo Trino.

4.2. Motor upita

Budući da je Iceberg rješavao probleme s pohranom i računanjem, morali smo razmisliti o odabiru mehanizma za upite. Nema mnogo dostupnih opcija. Alternative koje smo razmatrali bile su

Najvažnija stvar koju smo razmotrili prije nego što smo krenuli dublje bila je da budući mehanizam za upite mora biti kompatibilan s našom trenutnom arhitekturom.

  • Za podršku Bigqueryju kao izvoru podataka
  • Za podršku DBT-u, na koji se oslanjamo za proizvodnju mnogih metrika
  • Za podršku metabaze BI alata

Na temelju gore navedenog, odabrali smo Trino, koji ima vrlo dobru podršku za Iceberg, a tim je bio toliko osjetljiv da smo pokrenuli bug, koji je popravljen sljedeći dan i pušten u najnoviju verziju sljedeći tjedan. Ovo je bio najbolji izbor za Footprint tim, koji također zahtijeva visoku odzivnost implementacije.

4.3. Testiranje performansi

Nakon što smo se odlučili za naš smjer, napravili smo test performansi na kombinaciji Trino + Iceberg da vidimo može li zadovoljiti naše potrebe i na naše iznenađenje, upiti su bili nevjerojatno brzi.

Znajući da je Presto + Hive već godinama najgora usporedba u cijelom OLAP hypeu, kombinacija Trino + Iceberg nas je potpuno obila.

Ovo su rezultati naših testova.

slučaj 1: pridružite se velikom skupu podataka

Tablica800 od 1 GB pridružuje se drugoj tablici50 od 2 GB i obavlja složene poslovne izračune

case2: koristite veliku jednu tablicu za poseban upit

Testiraj sql: odaberite distinct(address) iz grupe tablica po danu

Kombinacija Trino+Iceberg je oko 3 puta brža od Doris u istoj konfiguraciji.

Osim toga, tu je još jedno iznenađenje jer Iceberg može koristiti podatkovne formate kao što su Parquet, ORC itd., koji će kompresirati i pohraniti podatke. Icebergova pohrana tablice zauzima samo oko 1/5 prostora drugih skladišta podataka. Veličina pohrane iste tablice u tri baze podataka je sljedeća:

Napomena: Gore navedeni testovi primjeri su s kojima smo se susreli u stvarnoj proizvodnji i služe samo kao referenca.

4.4. Učinak nadogradnje

Izvješća o testiranju izvedbe dala su nam dovoljnu izvedbu da je našem timu trebalo oko 2 mjeseca da dovrši migraciju, a ovo je dijagram naše arhitekture nakon nadogradnje.

  • Više računalnih motora odgovara našim različitim potrebama.
  • Trino podržava DBT i može izravno postavljati upite Icebergu, tako da se više ne moramo baviti sinkronizacijom podataka.
  • Nevjerojatna izvedba Trino + Iceberga omogućuje nam da otvorimo sve Bronze podatke (neobrađene podatke) našim korisnicima.

5. Sažetak

Od svog pokretanja u kolovozu 2021., tim Footprint Analyticsa dovršio je tri arhitektonske nadogradnje u manje od godinu i pol dana, zahvaljujući svojoj snažnoj želji i odlučnosti da svojim kripto korisnicima donese prednosti najbolje tehnologije baze podataka i dobroj izvedbi implementacije i nadogradnju temeljne infrastrukture i arhitekture.

Nadogradnja arhitekture Footprint Analytics 3.0 svojim je korisnicima omogućila novo iskustvo, omogućujući korisnicima iz različitih sredina da dobiju uvid u raznovrsniju upotrebu i aplikacije:

  • Izgrađen pomoću alata Metabase BI, Footprint analitičarima omogućuje pristup dekodiranim podacima u lancu, istraživanje uz potpunu slobodu izbora alata (bez koda ili hardcord), postavljanje upita za cijelu povijest i unakrsno ispitivanje skupova podataka, kako bi dobili uvid u Nema vremena.
  • Integrirajte i on-chain i off-chain podatke za analizu na web2 + web3;
  • Izgradnjom/upitima metrike na vrhu Footprintove poslovne apstrakcije, analitičari ili programeri štede vrijeme na 80% ponavljajućeg posla obrade podataka i usredotočuju se na značajne metrike, istraživanje i rješenja proizvoda temeljena na njihovom poslovanju.
  • Besprijekorno iskustvo od Footprint Web do REST API poziva, sve temeljeno na SQL-u
  • Upozorenja u stvarnom vremenu i djelotvorne obavijesti o ključnim signalima za podršku odlukama o ulaganju

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