Amikor utoljára megkérdeztük: „Mi a fene van???”, az __ __® protokollal kompatibilis adatfolyam-platformot néztük. . Az adatok streamelésével valamit kezdenie kell vele. Szedd le valahova úgy , , vagy , 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 . Flinkre pillantva vezetett el , ami ma a témánk. Mi a fene az a DeltaStream? Hogyan működik a Flinkkel, és hogyan lehet Kafka társa? Apache Kafka WarpStream Apache jéghegy Hópehely Databricks Apache Flink DeltaStream 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 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. AWS MSF 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 a webes felhasználói felülethez; vegye figyelembe, hogy van CLI-jük is, amit nem teszteltem. Gyors üzembe helyezési útmutató 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. Íme referenciaként az témakör részletei, amelyeket később felhasználunk. oldalmegtekintések 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. 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 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. oldalmegtekintések Ezután deklarálok egy változásnaplót, amelyet a 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. felhasználó Itt kezdünk el szórakozni. Létrehozok egy új adatfolyamot, amely gazdagítja az adatfolyamát a változásnaplóból származó adatokkal, a 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. oldalmegtekintések users_log felhasználói azonosítót Ö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: Mi a fene az a DuckDB? Mi a fene az a Malloy? Mi a franc az a PRQL? Mi a franc az a GlareDB? Mi a fene az a SeaTunnel? Mi a fene az a LanceDB? Mi a fene az az SDF? Mi a fene az a Paimon? Mi a franc az a proton? Mi a fene az a PuppyGraph? Mi a franc az a GPTScript? Mi a fene az a WarpStream? **