moderna atvērtā koda datu steks blokķēdei

1. Izaicinājums mūsdienu blokķēdes datu stekam

Pastāv vairākas problēmas, ar kurām var saskarties mūsdienu blokķēdes indeksēšanas startēšana, tostarp:

  • Milzīgs datu apjoms. Palielinoties datu apjomam blokķēdē, datu indeksam būs jāpalielina, lai tiktu galā ar palielināto slodzi un nodrošinātu efektīvu piekļuvi datiem. Līdz ar to tas palielina uzglabāšanas izmaksas, lēnu metrikas aprēķinu un palielina datu bāzes servera slodzi.
  • Sarežģīts datu apstrādes cauruļvads. Blockchain tehnoloģija ir sarežģīta, un, lai izveidotu visaptverošu un uzticamu datu indeksu, ir nepieciešama dziļa izpratne par pamatā esošajām datu struktūrām un algoritmiem. Blokķēdes ieviešanas dažādība to pārmanto. Ņemot vērā konkrētus piemērus, Ethereum NFT parasti tiek izveidoti viedos līgumos, izmantojot ERC721 un ERC1155 formātus. Turpretim, piemēram, Polkadot to ieviešana parasti tiek veidota tieši blokķēdes izpildlaikā. Tie ir jāuzskata par NFT un jāsaglabā kā tādi.
  • Integrācijas iespējas. Lai lietotājiem nodrošinātu maksimālu vērtību, blokķēdes indeksēšanas risinājumam, iespējams, būs jāintegrē datu indekss ar citām sistēmām, piemēram, analītikas platformām vai API. Tas ir izaicinājums un prasa ievērojamas pūles arhitektūras projektēšanā.

Tā kā blokķēdes tehnoloģija ir kļuvusi plaši izplatīta, ir palielinājies blokķēdē glabājamo datu apjoms. Tas ir tāpēc, ka vairāk cilvēku izmanto šo tehnoloģiju, un katrs darījums blokķēdē pievieno jaunus datus. Turklāt blokķēdes tehnoloģija ir attīstījusies no vienkāršām naudas pārskaitīšanas lietojumprogrammām, piemēram, tādām, kas ietver Bitcoin izmantošanu, līdz sarežģītākām lietojumprogrammām, kas ietver biznesa loģikas ieviešanu viedos līgumos. Šie viedie līgumi var ģenerēt lielu datu apjomu, tādējādi palielinot blokķēdes sarežģītību un lielumu. Laika gaitā tas ir radījis lielāku un sarežģītāku blokķēdi.

Šajā rakstā mēs pakāpeniski aplūkojam Footprint Analytics tehnoloģiju arhitektūras attīstību kā gadījuma izpēti, lai izpētītu, kā Iceberg-Trino tehnoloģiju steks risina ķēdes datu problēmas.

Footprint Analytics ir indeksējis aptuveni 22 publiskos blokķēdes datus un 17 NFT tirgus, 1900 GameFi projektu un vairāk nekā 100,000 XNUMX NFT kolekciju semantiskās abstrakcijas datu slānī. Tas ir visplašākais blokķēdes datu noliktavas risinājums pasaulē.

Neatkarīgi no blokķēdes datiem, kas ietver vairāk nekā 20 miljardus rindu ar finanšu darījumu ierakstiem, kurus datu analītiķi bieži vaicā. tas atšķiras no ieejas žurnāliem tradicionālajās datu noliktavās.

Pēdējo dažu mēnešu laikā esam piedzīvojuši 3 lielus uzlabojumus, lai apmierinātu pieaugošās biznesa prasības:

2. Arhitektūra 1.0 Bigquery

Footprint Analytics sākumā mēs izmantojām Google Bigquery kā mūsu glabāšanas un vaicājumu dzinējs; Bigquery ir lielisks produkts. Tas ir pārsteidzoši ātrs, viegli lietojams un nodrošina dinamisku aritmētisko jaudu un elastīgu UDF sintaksi, kas palīdz ātri paveikt darbu.

Tomēr Bigquery ir arī vairākas problēmas.

  • Dati netiek saspiesti, kā rezultātā rodas augstas izmaksas, īpaši, ja tiek glabāti neapstrādāti dati par vairāk nekā 22 Footprint Analytics blokķēdēm.
  • Nepietiekama vienlaicība: Bigquery atbalsta tikai 100 vienlaicīgus vaicājumus, kas nav piemērots Footprint Analytics augstas vienlaicības scenārijiem, apkalpojot daudzus analītiķus un lietotājus.
  • Izmantojiet Google Bigquery, kas ir slēgta pirmkoda produkts.

Tāpēc mēs nolēmām izpētīt citas alternatīvas arhitektūras.

3. Arhitektūra 2.0 OLAP

Mūs ļoti interesēja daži OLAP produkti, kas bija kļuvuši ļoti populāri. Vispievilcīgākā OLAP priekšrocība ir tā vaicājuma reakcijas laiks, kas parasti aizņem apakšsekundes, lai atgrieztu vaicājuma rezultātus lielam datu apjomam, un tas var arī atbalstīt tūkstošiem vienlaicīgu vaicājumu.

Mēs izvēlējāmies vienu no labākajām OLAP datu bāzēm, Doris, lai pamēģinātu. Šis dzinējs darbojas labi. Tomēr kādā brīdī mēs drīz saskārāmies ar dažām citām problēmām:

  • Datu veidi, piemēram, masīvs vai JSON, vēl netiek atbalstīti (2022. gada novembris). Masīvi ir izplatīts datu veids dažās blokķēdes. Piemēram, tēmas lauks evm žurnālos. Nespēja aprēķināt, izmantojot masīvu, tieši ietekmē mūsu spēju aprēķināt daudzus biznesa rādītājus.
  • Ierobežots atbalsts DBT un sapludināšanas paziņojumiem. Šīs ir kopīgas prasības datu inženieriem ETL/ELT scenārijiem, kad mums ir jāatjaunina daži nesen indeksēti dati.

Tomēr mēs nevarējām izmantot Doris visam mūsu datu cauruļvadam ražošanā, tāpēc mēģinājām izmantot Doris kā OLAP datu bāzi, lai atrisinātu daļu no mūsu problēmas datu sagatavošanas konveijerā, darbojoties kā vaicājumu dzinējs un nodrošinot ātru un augstu vienlaicīgu vaicājumu iespējas.

Diemžēl mēs nevarējām aizstāt Bigquery ar Doris, tāpēc mums bija periodiski jāsinhronizē Bigquery dati ar Doris, izmantojot to kā vaicājumu programmu. Šim sinhronizācijas procesam bija vairākas problēmas, no kurām viena bija tā, ka atjauninājumu raksti ātri saplūda, kad OLAP dzinējs bija aizņemts, apkalpojot vaicājumus priekšgala klientiem. Pēc tam tika ietekmēts rakstīšanas procesa ātrums, un sinhronizācija prasīja daudz ilgāku laiku un dažreiz pat kļuva neiespējama pabeigt.

Mēs sapratām, ka OLAP varētu atrisināt vairākas problēmas, ar kurām saskaramies, un nevar kļūt par Footprint Analytics pabeigtu risinājumu, īpaši datu apstrādes konveijeram. Mūsu problēma ir lielāka un sarežģītāka, un mēs varētu teikt, ka ar OLAP kā vaicājumu programmu vien mums nepietika.

4. Arhitektūra 3.0 Iceberg + Trino

Laipni lūdzam Footprint Analytics arhitektūrā 3.0, kas ir pilnīgs pamatā esošās arhitektūras remonts. Mēs esam pārveidojuši visu arhitektūru no paša sākuma, lai sadalītu datu glabāšanu, aprēķinu un vaicājumu trīs dažādās daļās. Mācības no divām iepriekšējām Footprint Analytics arhitektūrām un citu veiksmīgu lielo datu projektu pieredzes, piemēram, Uber, Netflix un Databricks.

4.1. Datu ezera ievads

Vispirms mēs pievērsām uzmanību datu ezeram — jaunam datu uzglabāšanas veidam gan strukturētiem, gan nestrukturētiem datiem. Datu ezers ir lieliski piemērots datu glabāšanai ķēdē, jo ķēdē ietverto datu formāti ir ļoti dažādi, sākot no nestrukturētiem neapstrādātiem datiem līdz strukturētiem abstrakcijas datiem. Footprint Analytics ir plaši pazīstams. Mēs plānojām izmantot datu ezeru, lai atrisinātu datu glabāšanas problēmu, un ideālā gadījumā tas atbalstītu arī tādus galvenos skaitļošanas dzinējus kā Spark un Flink, lai, attīstoties Footprint Analytics, nebūtu grūti integrēties ar dažāda veida apstrādes programmām. .

Iceberg ļoti labi integrējas ar Spark, Flink, Trino un citiem skaitļošanas dzinējiem, un mēs varam izvēlēties vispiemērotāko aprēķinu katram mūsu rādītājam. Piemēram:

  • Tiem, kam nepieciešama sarežģīta skaitļošanas loģika, Spark būs izvēle.
  • Flink, lai veiktu reāllaika aprēķinus.
  • Vienkāršiem ETL uzdevumiem, kurus var veikt, izmantojot SQL, mēs izmantojam Trino.

4.2. Vaicājuma dzinējs

Kad Iceberg atrisināja uzglabāšanas un skaitļošanas problēmas, mums bija jādomā par vaicājuma dzinēja izvēli. Nav daudz iespēju. Alternatīvas, kuras mēs izskatījām, bija

Vissvarīgākā lieta, ko mēs apsvērām pirms iedziļināšanās, bija tas, ka nākotnes vaicājumu programmai ir jābūt saderīgai ar mūsu pašreizējo arhitektūru.

  • Lai atbalstītu Bigquery kā datu avotu
  • Lai atbalstītu DBT, uz kuru mēs paļaujamies, lai izveidotu daudzus rādītājus
  • Lai atbalstītu BI rīku metabāzi

Pamatojoties uz iepriekš minēto, mēs izvēlējāmies Trino, kas ļoti labi atbalsta Iceberg, un komanda bija tik atsaucīga, ka radījām kļūdu, kas tika novērsta nākamajā dienā un izlaista uz jaunāko versiju nākamajā nedēļā. Šī bija labākā izvēle Footprint komandai, kurai arī nepieciešama augsta ieviešanas atsaucība.

4.3. Veiktspējas pārbaude

Kad bijām izlēmuši par savu virzienu, mēs veicām Trino + Iceberg kombinācijas veiktspējas pārbaudi, lai noskaidrotu, vai tā atbilst mūsu vajadzībām, un mums par pārsteigumu vaicājumi bija neticami ātri.

Zinot, ka Presto + Hive gadiem ilgi ir bijis sliktākais salīdzinājums visā OLAP ažiotāžā, Trino + Iceberg kombinācija pilnībā satrieca mūsu prātus.

Šeit ir mūsu pārbaužu rezultāti.

1. gadījums: pievienojieties lielai datu kopai

800 GB tabula1 pievienojas citai 50 GB tabulai2 un veic sarežģītus biznesa aprēķinus

2. gadījums: izmantojiet lielu atsevišķu tabulu, lai veiktu atsevišķu vaicājumu

Pārbaudīt sql: atlasiet atšķirīgu (adresi) no tabulas grupas pēc dienas

Trino+Iceberg kombinācija ir aptuveni 3 reizes ātrāka nekā Doris tādā pašā konfigurācijā.

Turklāt ir vēl kāds pārsteigums, jo Iceberg var izmantot tādus datu formātus kā Parquet, ORC u.c., kas saspiedīs un saglabās datus. Iceberg tabulas krātuve aizņem tikai aptuveni 1/5 no citu datu noliktavu vietas. Vienas un tās pašas tabulas glabāšanas lielums trīs datu bāzēs ir šāds:

Piezīme. Iepriekš minētie testi ir piemēri, ar kuriem esam saskārušies faktiskajā ražošanā, un tie ir paredzēti tikai atsaucei.

4.4. Jaunināšanas efekts

Veiktspējas testu pārskati sniedza mums pietiekamu veiktspēju, tāpēc mūsu komandai vajadzēja aptuveni 2 mēnešus, lai pabeigtu migrāciju, un šī ir mūsu arhitektūras diagramma pēc jaunināšanas.

  • Vairāki datoru dzinēji atbilst mūsu dažādajām vajadzībām.
  • Trino atbalsta DBT un var tieši vaicāt Iceberg, tāpēc mums vairs nav jānodarbojas ar datu sinhronizāciju.
  • Trino + Iceberg apbrīnojamā veiktspēja ļauj mums atvērt visus bronzas datus (neapstrādātus datus) mūsu lietotājiem.

5. kopsavilkums

Kopš darbības uzsākšanas 2021. gada augustā, Footprint Analytics komanda ir pabeigusi trīs arhitektūras jauninājumus mazāk nekā pusotra gada laikā, pateicoties tās spēcīgajai vēlmei un apņēmībai sniegt saviem kriptovalūtu lietotājiem labākās datu bāzes tehnoloģijas priekšrocības, kā arī stabilai ieviešanas un tās pamatā esošās infrastruktūras un arhitektūras modernizācija.

Footprint Analytics arhitektūras jauninājums 3.0 ir ieguvis jaunu pieredzi saviem lietotājiem, ļaujot lietotājiem no dažādas pieredzes gūt ieskatu par daudzveidīgāku lietojumu un lietojumprogrammām.

  • Izstrādāts ar Metabase BI rīku, Footprint palīdz analītiķiem piekļūt atšifrētiem ķēdes datiem, izpētīt ar pilnīgu rīku izvēles brīvību (bez koda vai cietā vada), vaicāt visu vēsturi un savstarpēji pārbaudīt datu kopas, lai gūtu ieskatu nav laika.
  • Integrējiet gan ķēdē, gan ārpus ķēdes esošos datus, lai analizētu Web2 + Web3;
  • Veidojot / vaicājot metriku, kas papildina Footprint biznesa abstrakciju, analītiķi vai izstrādātāji ietaupa laiku 80% no atkārtota datu apstrādes darba un koncentrējas uz jēgpilniem rādītājiem, pētījumiem un produktu risinājumiem, pamatojoties uz viņu uzņēmējdarbību.
  • Nevainojama pieredze no Footprint Web līdz REST API izsaukumiem, un tas viss ir balstīts uz SQL
  • Reāllaika brīdinājumi un praktiski lietojami paziņojumi par galvenajiem signāliem, lai atbalstītu investīciju lēmumus

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