moderan stog podataka otvorenog koda za blockchain

1. Izazov za moderni blockchain skup podataka

Postoji nekoliko izazova sa kojima se može suočiti moderni startup za indeksiranje blokova, uključujući:

  • Ogromne količine podataka. Kako se količina podataka u blockchainu povećava, indeks podataka će se morati povećati kako bi se nosio s povećanim opterećenjem i omogućio efikasan pristup podacima. Posljedično, to dovodi do većih troškova skladištenja, sporog izračunavanja metrike i povećanog opterećenja servera baze podataka.
  • Složeni proces obrade podataka. Blockchain tehnologija je složena, a izgradnja sveobuhvatnog i pouzdanog indeksa podataka zahtijeva duboko razumijevanje osnovnih struktura podataka i algoritama. Raznolikost blockchain implementacija ga nasljeđuje. S obzirom na konkretne primjere, NFT-ovi u Ethereumu se obično kreiraju u okviru pametnih ugovora koji slijede formate ERC721 i ERC1155. Nasuprot tome, implementacija onih na Polkadotu, na primjer, obično se gradi direktno unutar blockchain runtimea. To treba smatrati NFT-ovima i treba ih sačuvati kao takve.
  • Integracijske mogućnosti. Kako bi korisnicima pružilo maksimalnu vrijednost, rješenje za indeksiranje blokova možda će morati integrirati svoj indeks podataka s drugim sistemima, kao što su analitičke platforme ili API-ji. Ovo je izazovno i zahtijeva značajan trud uložen u dizajn arhitekture.

Kako je blockchain tehnologija postala sve 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. Uz to, blockchain tehnologija je evoluirala 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, doprinoseći povećanju složenosti i veličini blockchaina. Vremenom je to dovelo do većeg i složenijeg blockchaina.

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

Footprint Analytics je indeksirala oko 22 javna blockchain podataka i 17 NFT tržišta, 1900 GameFi projekta i preko 100,000 NFT kolekcija u sloj podataka semantičke apstrakcije. To je najsveobuhvatnije rješenje blockchain skladišta podataka na svijetu.

Bez obzira na blockchain podatke, koji uključuju preko 20 milijardi redova zapisa o finansijskim transakcijama, koje analitičari podataka često traže. razlikuje se od dnevnika ingresije u tradicionalnim skladištima podataka.

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

2. Arhitektura 1.0 Bigquery

Na početku Analitike otiska koristili smo Google Bigquery kao naš mehanizam za skladištenje i upite; Bigquery je odličan proizvod. Nevjerovatno 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 rezultira visokim troškovima, posebno kada se pohranjuju sirovi podaci preko 22 blockchaina Footprint Analytics.
  • Nedovoljna konkurentnost: Bigquery podržava samo 100 istovremenih upita, što je neprikladno za scenarije visoke konkurentnosti za Footprint Analytics kada opslužuje mnoge analitičare i korisnike.
  • Zaključajte se pomoću Google Bigqueryja, koji je proizvod zatvorenog koda.

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

3. Arhitektura 2.0 OLAP

Bili smo veoma zainteresovani za neke od OLAP proizvoda koji su postali veoma popularni. Najprivlačnija prednost OLAP-a je njegovo vrijeme odgovora na upit, koje obično traje pod-sekunde da se vrate rezultati upita za ogromne količine podataka, a može podržati i hiljade istovremenih upita.

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

  • Tipovi podataka kao što su Array ili JSON još nisu podržani (novembar 2022.). Nizovi su uobičajeni tip podataka u nekim blockchainima. Na primjer, the tematsko polje u evm logovima. Nemogućnost izračunavanja na nizu direktno utiče na našu sposobnost da izračunamo mnoge poslovne metrike.
  • Ograničena podrška za DBT i izjave spajanja. Ovo su uobičajeni zahtjevi za inženjere podataka za ETL/ELT scenarije gdje moramo ažurirati neke novoindeksirane podatke.

S obzirom na to, nismo mogli koristiti Doris za cijeli naš cevovod podataka o proizvodnji, pa smo pokušali koristiti Doris kao OLAP bazu podataka da riješimo dio našeg problema u cjevovodu za proizvodnju podataka, djelujući kao mehanizam za upite i pružajući brze i visoko kvalitetne podatke. mogućnosti istovremenih upita.

Nažalost, nismo mogli zamijeniti Bigquery sa Doris, pa smo morali periodično sinhronizirati podatke s Bigqueryja na Doris koristeći ga kao mehanizam za upite. Ovaj proces sinhronizacije imao je nekoliko problema, od kojih je jedan bio taj da su se zapisi o ažuriranju brzo nakupljali kada je OLAP motor bio zauzet opsluživanjem upita front-end klijentima. Nakon toga, brzina procesa pisanja je bila pogođena, a sinhronizacija je trajala mnogo duže, a ponekad je čak postala i nemoguće završiti.

Shvatili smo da bi OLAP mogao riješiti nekoliko problema s kojima se suočavamo i da ne može postati rješenje po principu „ključ u ruke“ Footprint Analytics, posebno za proces obrade podataka. Naš problem je veći i složeniji i mogli bismo reći da nam OLAP kao mehanizam za upite nije dovoljan.

4. Arhitektura 3.0 Iceberg + Trino

Dobrodošli u Footprint Analytics arhitekturu 3.0, potpunu reviziju osnovne arhitekture. Redizajnirali smo čitavu arhitekturu od temelja kako bismo odvojili skladištenje, računanje i upit podataka u tri različita dijela. Uzimajući pouke iz dvije ranije arhitekture Footprint Analytics i učeći iz iskustva drugih uspješnih projekata velikih podataka kao što su Uber, Netflix i Databricks.

4.1. Uvođenje jezera podataka

Prvo smo skrenuli pažnju na jezero podataka, novu vrstu skladištenja podataka za strukturirane i nestrukturirane podatke. Jezero podataka je savršeno za pohranu podataka na lancu jer se formati podataka na lancu kreću u širokom rasponu od nestrukturiranih sirovih podataka do strukturiranih apstrakcijskih podataka po kojima je Footprint Analytics dobro poznata. Očekivali smo da ćemo koristiti podatkovno jezero za rješavanje problema pohrane podataka, a idealno bi bilo da podržava i mainstream računarske mehanizme kao što su Spark i Flink, tako da ne bi bilo teško integrirati se s različitim tipovima procesora kako se Footprint Analytics razvija. .

Iceberg se veoma dobro integriše sa Spark, Flink, Trino i drugim računarskim mašinama, a mi možemo izabrati najprikladnije izračunavanje za svaku od naših metrika. Na primjer:

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

4.2. Motor upita

S obzirom da je Iceberg rješavao probleme skladištenja i računanja, morali smo razmišljati o odabiru mehanizma upita. Nema mnogo dostupnih opcija. Alternative koje smo razmatrali su bile

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

  • Za podršku Bigqueryja kao izvora podataka
  • Da podržimo DBT, na koji se oslanjamo za izradu mnogih metrika
  • Za podršku metabaze BI alata

Na osnovu gore navedenog, odabrali smo Trino, koji ima jako dobru podršku za Iceberg i tim je bio toliko odzivan da smo pokrenuli grešku, koja je ispravljena sljedećeg dana i objavljena na najnoviju verziju sljedeće sedmice. Ovo je bio najbolji izbor za Footprint tim, koji takođe zahteva visok odziv implementacije.

4.3. Testiranje performansi

Nakon što smo se odlučili za naš smjer, uradili smo test performansi kombinacije Trino + Iceberg kako bismo vidjeli može li zadovoljiti naše potrebe i na naše iznenađenje upiti su bili nevjerovatno brzi.

Znajući da je Presto + Hive godinama bio najgori komparator u cijelom OLAP-u, kombinacija Trino + Iceberg potpuno nas je oduševila.

Evo rezultata naših testova.

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

Tablica od 800 GB1 pridružuje se drugoj tablici50 od 2 GB i radi složene poslovne kalkulacije

case2: koristite veliku jednu tabelu da napravite poseban upit

Test sql: odaberite različitu (adresu) iz grupe tablica po danu

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

Osim toga, postoji još jedno iznenađenje jer Iceberg može koristiti formate podataka kao što su Parket, ORC, itd., koji će komprimirati i pohraniti podatke. Icebergova tabela za pohranu 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 su primjeri s kojima smo se susreli u stvarnoj proizvodnji i služe samo kao referenca.

4.4. Efekat nadogradnje

Izveštaji o testiranju performansi dali su nam dovoljno performansi da je našem timu trebalo oko 2 meseca da završi migraciju, a ovo je dijagram naše arhitekture nakon nadogradnje.

  • Više računarskih motora odgovara našim različitim potrebama.
  • Trino podržava DBT i može direktno pitati Iceberg, tako da više ne moramo da se bavimo sinhronizacijom podataka.
  • Neverovatne performanse Trino + Iceberga nam omogućavaju da otvorimo sve bronzane podatke (neobrađene podatke) našim korisnicima.

5. rezime

Od svog pokretanja u kolovozu 2021. godine, Footprint Analytics tim je završio tri arhitektonske nadogradnje za manje od godinu i po dana, zahvaljujući svojoj snažnoj želji i odlučnosti da svojim kripto korisnicima donese prednosti najbolje tehnologije baze podataka i solidnom izvršenju na implementaciji i nadogradnju osnovne infrastrukture i arhitekture.

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

  • Izgrađen sa Metabase BI alatom, Footprint olakšava analitičarima da dobiju pristup dekodiranim podacima na lancu, istražuju uz potpunu slobodu izbora alata (bez koda ili hardcord), postavljaju upite za cijelu povijest i unakrsno ispituju skupove podataka kako bi dobili uvid u nema vremena.
  • Integrirajte i on-chain i off-chain podatke za analizu preko web2 + web3;
  • Izgradnjom/upitom metrike na vrhu Footprint-ove poslovne apstrakcije, analitičari ili programeri štede vrijeme na 80% rada na obradi podataka koji se ponavlja i fokusiraju se na smislene metrike, istraživanja i rješenja proizvoda zasnovana na njihovom poslovanju.
  • Besprekorno iskustvo od Footprint Weba do poziva REST API-ja, sve bazirano na SQL-u
  • Upozorenja u realnom vremenu i obavještenja koja se mogu primijeniti 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/