kaasaegne avatud lähtekoodiga andmepakk plokiahela jaoks

1. Kaasaegse plokiahela andmevirna väljakutse

Kaasaegne plokiahela indekseerimise käivitaja võib silmitsi seista mitme väljakutsega, sealhulgas:

  • Suured andmemahud. Kuna plokiahelas olevate andmete hulk suureneb, peab andmeindeks suurenema, et tulla toime suurenenud koormusega ja tagada andmetele tõhus juurdepääs. Järelikult toob see kaasa suuremad salvestuskulud, aeglase mõõdikute arvutamise ja andmebaasiserveri suurema koormuse.
  • Keeruline andmetöötluskonveier. Plokiahela tehnoloogia on keeruline ning kõikehõlmava ja usaldusväärse andmeindeksi loomine nõuab põhjalikku mõistmist aluseks olevate andmestruktuuride ja algoritmide kohta. Plokiahela rakenduste mitmekesisus pärib selle. Arvestades konkreetseid näiteid, luuakse Ethereumi NFT-d tavaliselt nutikate lepingute raames, mis järgivad vorminguid ERC721 ja ERC1155. Seevastu näiteks Polkadoti rakenduste rakendamine on tavaliselt ehitatud otse plokiahela käitusajal. Neid tuleks pidada NFT-deks ja need tuleks sellistena salvestada.
  • Integreerimisvõimalused. Kasutajatele maksimaalse väärtuse pakkumiseks võib plokiahela indekseerimise lahendusel olla vaja oma andmeindeksit integreerida teiste süsteemidega, näiteks analüüsiplatvormide või API-dega. See on keeruline ja nõuab märkimisväärseid jõupingutusi arhitektuuri kujundamisel.

Kuna plokiahela tehnoloogia on laiemalt levinud, on suurenenud plokiahelasse salvestatud andmete hulk. Seda seetõttu, et tehnoloogiat kasutab rohkem inimesi ja iga tehing lisab plokiahelasse uusi andmeid. Lisaks on plokiahela tehnoloogia arenenud lihtsatest raha ülekandmisrakendustest, näiteks need, mis hõlmavad Bitcoini kasutamist, keerukamateks rakendusteks, mis hõlmavad nutikate lepingute äriloogika rakendamist. Need nutikad lepingud võivad genereerida suuri andmemahtusid, aidates kaasa plokiahela keerukuse ja suuruse suurenemisele. Aja jooksul on see kaasa toonud suurema ja keerukama plokiahela.

Selles artiklis vaatleme Footprint Analyticsi tehnoloogiaarhitektuuri arengut etappide kaupa juhtumiuuringuna, et uurida, kuidas Iceberg-Trino tehnoloogiapakk käsitleb ahelasiseste andmetega seotud probleeme.

Footprint Analytics on semantilise abstraktsiooni andmekihiks indekseerinud umbes 22 avalikku plokiahela andmeid ja 17 NFT turuplatsi, 1900 GameFi projekti ja üle 100,000 XNUMX NFT kogu. See on kõige põhjalikum plokiahela andmelaolahendus maailmas.

Olenemata plokiahela andmetest, mis sisaldavad üle 20 miljardi rea finantstehingute kirjeid, mida andmeanalüütikud sageli pärivad. see erineb traditsiooniliste andmeladude sissepääsulogidest.

Oleme viimaste kuude jooksul kogenud 3 suurt uuendust, et vastata kasvavatele ärinõuetele:

2. Arhitektuur 1.0 Bigquery

Footprint Analyticsi alguses kasutasime Google Bigquery meie salvestus- ja päringumootorina; Bigquery on suurepärane toode. See on hämmastavalt kiire, hõlpsasti kasutatav ning pakub dünaamilist aritmeetikat ja paindlikku UDF-i süntaksit, mis aitab meil töö kiiresti teha.

Bigqueryl on aga ka mitmeid probleeme.

  • Andmeid ei tihendata, mille tulemuseks on suured kulud, eriti enam kui 22 Footprint Analyticsi plokiahela algandmete salvestamisel.
  • Ebapiisav samaaegsus: Bigquery toetab ainult 100 samaaegset päringut, mis ei sobi Footprint Analyticsi suure samaaegsuse stsenaariumide jaoks, kui see teenindab paljusid analüütikuid ja kasutajaid.
  • Lukustage end Google Bigqueryga, mis on suletud lähtekoodiga toode.

Seega otsustasime uurida teisi alternatiivseid arhitektuure.

3. Arhitektuur 2.0 OLAP

Olime väga huvitatud mõnest OLAP-i tootest, mis olid muutunud väga populaarseks. OLAP-i kõige atraktiivsem eelis on selle päringu reageerimisaeg, mis tavaliselt võtab tohutu hulga andmemahtude päringutulemuste tagastamiseks aega alamsekundeid, ja see võib toetada ka tuhandeid samaaegseid päringuid.

Valisime ühe parima OLAP-i andmebaasi, Doris, et proovida. See mootor töötab hästi. Kuid mingil hetkel sattusime peagi mõne muu probleemiga:

  • Andmetüüpe, nagu massiiv või JSON, veel ei toetata (november 2022). Massiivid on mõnes plokiahelas levinud andmetüüp. Näiteks teemaväli evm logides. Array abil arvutamise võimatus mõjutab otseselt meie võimet arvutada paljusid ärimõõdikuid.
  • Piiratud tugi DBT-le ja liitmisavaldustele. Need on tavalised nõuded andmeinseneridele ETL/ELT stsenaariumide jaoks, mille puhul peame värskendama mõnda äsja indekseeritud andmeid.

Sellegipoolest ei saanud me Dorist kasutada kogu meie andmekanali jaoks tootmises, nii et proovisime kasutada Dorist OLAP-i andmebaasina, et lahendada osa meie probleemist andmetöötluskonveieris, toimides päringumootorina ning pakkudes kiiret ja kvaliteetset. samaaegse päringu võimalused.

Kahjuks ei saanud me Bigqueryt Dorisega asendada, mistõttu pidime Bigquery andmeid perioodiliselt Dorisega sünkroonima, kasutades seda päringumootorina. Sellel sünkroonimisprotsessil oli mitmeid probleeme, millest üks oli see, et värskenduste kirjutamine kuhjus kiiresti, kui OLAP-mootor oli hõivatud esiotsa klientidele päringute teenindamisega. Seejärel mõjutas kirjutamisprotsessi kiirust ja sünkroonimine võttis palju kauem aega ja mõnikord muutus isegi võimatuks.

Mõistsime, et OLAP võib lahendada mitmeid meie ees seisvaid probleeme ja sellest ei saanud Footprint Analyticsi võtmed-kätte lahendus, eriti andmetöötluse jaoks. Meie probleem on suurem ja keerulisem ning OLAP-ist kui päringumootorist üksi meie jaoks ei piisanud.

4. Arhitektuur 3.0 Jäämägi + Trino

Tere tulemast Footprint Analytics arhitektuuri 3.0-sse, mis on aluseks oleva arhitektuuri täielik uuendus. Oleme kogu arhitektuuri algusest peale ümber kujundanud, et eraldada andmete salvestamine, arvutamine ja päring kolmeks erinevaks osaks. Õppetunnid kahest varasemast Footprint Analyticsi arhitektuurist ja teiste edukate suurandmeprojektide, nagu Uber, Netflix ja Databricks, kogemusest.

4.1. Andmejärve tutvustus

Kõigepealt pöörasime tähelepanu andmejärvele, uut tüüpi andmesalvestusele nii struktureeritud kui ka struktureerimata andmete jaoks. Data Lake sobib suurepäraselt ahelasiseseks andmete salvestamiseks, kuna ahelasiseste andmete vormingud ulatuvad laialdaselt struktureerimata algandmetest kuni struktureeritud abstraktsiooniandmeteni Footprint Analytics on tuntud. Eeldasime andmesalvestuse probleemi lahendamiseks andmejärve kasutamist ja ideaaljuhul toetaks see ka tavalisi arvutusmootoreid, nagu Spark ja Flink, nii et Footprint Analyticsi arenedes ei oleks piin integreerida erinevat tüüpi töötlemismootoritega. .

Iceberg integreerub väga hästi Sparki, Flinki, Trino ja teiste arvutusmootoritega ning saame valida iga oma mõõdiku jaoks kõige sobivama arvutuse. Näiteks:

  • Nende jaoks, kes vajavad keerulist arvutusloogikat, on valik Spark.
  • Flink reaalajas arvutamiseks.
  • Lihtsate ETL-ülesannete jaoks, mida saab teha SQL-i abil, kasutame Trinot.

4.2. Päringu mootor

Kuna Iceberg lahendas salvestus- ja arvutusprobleeme, pidime mõtlema päringumootori valikule. Saadaval pole palju valikuid. Alternatiivid, mida kaalusime, olid

Kõige olulisem asi, mida me enne süvenemist kaalusime, oli see, et tulevane päringumootor pidi ühilduma meie praeguse arhitektuuriga.

  • Bigquery toetamiseks andmeallikana
  • Toetada DBT-d, millele tugineme paljude mõõdikute loomisel
  • BI tööriista metabaasi toetamiseks

Eelnevast lähtudes valisime Trino, millel on Icebergi jaoks väga hea tugi ja meeskond oli nii vastutulelik, et tõstatasime vea, mis järgmisel päeval parandati ja järgmisel nädalal avaldati uusimale versioonile. See oli parim valik Footprint meeskonnale, kes nõuab ka suurt juurutamistundlikkust.

4.3. Jõudluskontroll

Kui olime oma suuna otsustanud, tegime kombinatsiooni Trino + Iceberg jõudlustesti, et näha, kas see vastab meie vajadustele ja meie üllatuseks olid päringud uskumatult kiired.

Teades, et Presto + Hive on olnud aastaid halvim võrdlusvahend kogu OLAP-i reklaamis, lõi Trino + Icebergi kombinatsioon meie meeled täielikult.

Siin on meie testide tulemused.

1. juhtum: liituge suure andmestikuga

800 GB tabel1 ühendab teise 50 GB tabeli2 ja teeb keerukaid äriarvutusi

juhtum2: kasutage eraldi päringu tegemiseks suurt ühte tabelit

Testige sql-i: valige tabelirühmast päevade kaupa erinev(aadress).

Trino+Iceberg kombinatsioon on umbes 3 korda kiirem kui Doris samas konfiguratsioonis.

Lisaks on veel üks üllatus, sest Iceberg saab kasutada andmevorminguid nagu Parquet, ORC jne, mis andmeid tihendavad ja salvestavad. Icebergi tabelisalvestus võtab enda alla vaid umbes 1/5 teiste andmeladude ruumist. Sama tabeli salvestusmaht kolmes andmebaasis on järgmine:

Märkus. Ülaltoodud testid on näited, mida oleme tegelikus tootmises kohanud ja on ainult viitamiseks.

4.4. Täiendusefekt

Jõudlustesti aruanded andsid meile piisavalt jõudlust, et meie meeskonnal kulus migratsiooni lõpuleviimiseks umbes 2 kuud. See on diagramm meie arhitektuurist pärast täiendamist.

  • Mitu arvutimootorit vastavad meie erinevatele vajadustele.
  • Trino toetab DBT-d ja saab otse Icebergist päringuid teha, nii et me ei pea enam andmete sünkroonimisega tegelema.
  • Trino + Icebergi hämmastav jõudlus võimaldab meil kasutajatele avada kõik pronksandmed (toorandmed).

5. Kokkuvõte

Alates selle käivitamisest 2021. aasta augustis on Footprint Analyticsi meeskond vähem kui pooleteise aastaga lõpule viinud kolm arhitektuuriuuendust tänu tugevale soovile ja sihikindlusele tuua parima andmebaasitehnoloogia eelised oma krüptokasutajateni ning juurutamise ja juurutamise kindlale teostusele. selle aluseks oleva infrastruktuuri ja arhitektuuri uuendamine.

Footprint Analyticsi arhitektuuriuuendus 3.0 on ostnud oma kasutajatele uue kasutuskogemuse, mis võimaldab erineva taustaga kasutajatel saada teavet mitmekesisema kasutuse ja rakenduste kohta.

  • Metabase BI tööriistaga loodud Footprint võimaldab analüütikutel pääseda juurde dekodeeritud ahelasisestele andmetele, uurida tööriistu täieliku valikuvabadusega (ilma koodita või kõvajuhtmeta), teha päringuid kogu ajaloost ja ristküsida andmekogumeid, et saada teavet pole aega.
  • Integreerige nii ahelasisesed kui ka ahelavälised andmed, et analüüsida web2 + web3 kaudu;
  • Jalajälje äriabstraktsioonile tuginedes mõõdikuid koostades/päringute tegemisel säästavad analüütikud või arendajad 80% korduva andmetöötluse aega ning keskenduvad oma äritegevusel põhinevatele mõtestatud mõõdikutele, uuringutele ja tootelahendustele.
  • Sujuv kogemus Footprint Webist kuni REST API-kõnedeni – kõik põhinevad SQL-il
  • Reaalajas hoiatused ja rakendatavad märguanded peamiste signaalide kohta, mis toetavad investeerimisotsuseid

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