paint-brush
Mi a fene az a DeltaStream?által@progrockrec
231 olvasmányok

Mi a fene az a DeltaStream?

által Shawn Gordon5m2024/12/12
Read on Terminal Reader

Túl hosszú; Olvasni

A DeltaStream egy felügyelt szolgáltatás, amely lehetővé teszi a Flink használatát anélkül, hogy a Flink-kel kellene foglalkoznia.
featured image - Mi a fene az a DeltaStream?
Shawn Gordon HackerNoon profile picture


Amikor utoljára megkérdeztük: „Mi a fene van???”, az __ Apache Kafka __® protokollal kompatibilis adatfolyam-platformot néztük. WarpStream . Az adatok streamelésével valamit kezdenie kell vele. Szedd le valahova úgy Apache jéghegy , Hópehely , vagy Databricks , vagy lekérdezheti ezeket a repülés közbeni adatokat, hogy gazdagítsa és/vagy szűrje azokat a leszállás előtt. Ez utóbbira van néhány lehetőség, de a legnagyobb kétségtelenül a nyílt forráskódú projekt Apache Flink . Flinkre pillantva vezetett el DeltaStream , ami ma a témánk. Mi a fene az a DeltaStream? Hogyan működik a Flinkkel, és hogyan lehet Kafka társa?

Mi az a Flink?

A Flink-et 2014 decemberében fogadták el Apache projektként, így már egy ideje létezik. Az adatfolyam-feldolgozás növekedése az elmúlt néhány évben felgyorsult érdeklődéshez és felhasználáshoz vezetett. A Flink egy meglehetősen nagy kihívást jelentő rendszer, hogy megálljon és belsőleg is használható legyen, és elkötelezett mérnöki tehetséget igényel. Még a AWS MSF a szolgáltatás bár egyszerűbb, mégis meglehetősen összetett. A Java használatához például meg kell írni a Java-lekérdezést, létrehozni egy jar fájlt, tömöríteni, feltölteni az S3-ba, beállítani az engedélyeket, majd végrehajtani.


Itt fogok kölcsönkérni az Apache Flink weboldaláról. Az Apache Flink egy keretrendszer és elosztott feldolgozó motor, amely állapotalapú számításokat végez korlátlan és korlátos adatfolyamokon. A Flink-et úgy tervezték, hogy minden elterjedt fürtkörnyezetben fusson, és a memória sebességével és bármilyen léptékben végezzen számításokat. Nem szeretném tovább reprodukálni a webhelyükön találhatókat, ezért ha nem vagy biztos a Flink-ben, nézd meg.

A DeltaStream használata

A DeltaStream a legalapvetőbb módon biztosítja a Flink erejét anélkül, hogy Flinkkel kellene foglalkoznia. Egyáltalán. A tesztemhez az õket használtam Gyors üzembe helyezési útmutató a webes felhasználói felülethez; vegye figyelembe, hogy van CLI-jük is, amit nem teszteltem.


Amikor regisztrál, 14 napos ingyenes próbaverziót kap. Egy „trial_store” nevű Kafka-fürt minta készült, amelyet saját adatai helyett használhatunk a kipróbáláshoz. A demó számos témát tartalmaz, amelyekkel játszani lehet. A MŰVELETEK alatti ikonok segítségével törölhet egy témát, vagy megtekintheti a témával kapcsolatos részleteket és tartalmat.


DeltaStream témaböngésző


Íme referenciaként az oldalmegtekintések témakör részletei, amelyeket később felhasználunk.

DeltaStream Témafelügyelő


Oké, van egy Kafka-klaszterünk, és vannak benne témák. Most pedig csináljunk valami érdekeset. Ahogy a bevezetőben említettük, a legérdekesebb dolog, amit tehetek, az az adatok gazdagítása és/vagy szűrése repülés közben, mielőtt leszállna a végső rendeltetési helyére, például egy adatbázisba/raktárba/tóba. Ebből a célból a Munkaterületre lépünk.

DeltaStream munkaterület leírása


Ezt a részt kellett egy kicsit megszokni. Az adatbázis és a séma a DeltaStreamben csak szervezeti mappák. Létrehozhat 'n' számú adatbázist, egy adatbázison belül pedig 'n' számú sémát. A sémák a DeltaStream objektumok definíciós elrendezését fogják tartalmazni, amelyek STREAM, CHANGELOG, MATERIALIZED VIEW és TABLE néven ismertek. A táblázat egy adatbázistáblához kapcsolódik, például a PostgreSQL-ben, a materializált nézet pedig egy módja annak, hogy megőrizzük az adatokat egy eredményhalmazban anélkül, hogy azokat konkrétan valahova elhelyeznénk. Nem fogok semmit kezdeni a blogon szereplők egyikével sem; A Streamre és a Changelogra fogok koncentrálni.


A következő képernyőképen létrehozom az oldalmegtekintések adatfolyamát a Kafka-fürtben. Úgy gondolom, hogy táblázatos definíciót készítek a témáról. Megadtuk a mezők nevét, és megmondtuk, hogy milyen témát használjanak, és mi az adatformátum. Nem kell teljesen indokolnunk a trial_store fürtöt, mivel az alapértelmezettként van beállítva a tetején lévő kombinált mezőben. A parancs végrehajtása után megjelenik a TestDB.public alatt. Ezután lekérdezhetem valamivel, mint például a SELECT * FROM PAGEVIEWS paranccsal, és elkezdem látni az adatokat az eredmény ablakban alul.


DeltaStream Stream létrehozási példa


Ezután deklarálok egy változásnaplót, amelyet a felhasználó témaköre támogat, és UserID szerint rendezett. A változásnapló hasonlít egy adatfolyamhoz, de lehetővé teszi a téma eseményeinek UPSERT eseményként történő értelmezését. Az események elsődleges kulcsot igényelnek; A DeltaStream minden eseményt az adott elsődleges kulcs beszúrásaként vagy frissítéseként értelmez. Ebben az esetben a változásnapló felhasználónkénti konkrét részleteket, például nemet és érdeklődési kört tükröz.

DeltaStream Changelog példa


Itt kezdünk el szórakozni. Létrehozok egy új adatfolyamot, amely gazdagítja az oldalmegtekintések adatfolyamát a users_log változásnaplóból származó adatokkal, a felhasználói azonosítót használva kulcsértékként a csatlakozáshoz. Ez most egy egyedi témát ad a fürtben két különböző témakörből származó adatokkal. Innentől kezdve szűrhetem valami, például a regionid segítségével, és a lekérdezés eredményeit egy végső célhelyre írhatom, például adatbázisba, raktárba vagy tóba. Ez lehetővé tette az adatok gazdagítását és szűrését repülés közben a leszállás előtt, így javítva a várakozási időt, valamint csökkentve a számítási és tárolási költségeket.

DeltaStream csatlakozási példa

Összegzés

Szóval, mi a fene az a DeltaStream? Ez egy nagyon egyszerű módja az Apache Flink használatának anélkül, hogy bármit is tudna róla, vagy közvetlenül bármit is csinálna vele. A példámból láthatta, milyen egyszerű volt csatlakozni az Apache Kafkához, majd beolvasni, összekapcsolni és szűrni az adatokat. További jelenleg támogatott kapcsolatok a Kinesis, a PostgreSQL, a Snowflake és a Databricks, és úgy tudom, hogy hamarosan elérhető lesz a ClickHouse és az Iceberg.


Végső soron a DeltaStream az Apache Flink erejét biztosítja anélkül, hogy az Apache Flink-kel kellene foglalkoznia, és ezt Java helyett SQL használatával is megteheti. Ha adatfolyammal foglalkozik, vagy szeretné megvalósítani azt, ez minden bizonnyal nagyon okos és kényelmes megoldás.


Tekintse meg a többi Mi a fene… cikkemet az alábbi linkeken:




**