paint-brush
Co je sakra DeltaStream?podle@progrockrec
231 čtení

Co je sakra DeltaStream?

podle Shawn Gordon5m2024/12/12
Read on Terminal Reader

Příliš dlouho; Číst

DeltaStream je spravovaná služba, která vám umožňuje používat Flink, aniž byste se museli zabývat Flinkem.
featured image - Co je sakra DeltaStream?
Shawn Gordon HackerNoon profile picture


Když jsme se naposledy zeptali: „Co to sakra je???“, dívali jsme se na platformu pro streamování dat kompatibilní s protokolem __ Apache Kafka __® WarpStream . Se streamovanými daty je potřeba s nimi něco udělat. Přistát to někde jako Ledovec Apache , Sněhová vločka nebo Databricks nebo dotazujte se na tato data za letu, abyste je obohatili a/nebo filtrovali před přistáním. Pro ten druhý existuje několik možností, ale největší je bezpochyby projekt s otevřeným zdrojovým kódem Apache Flink . Přivedl mě k tomu pohled na Flinka DeltaStream , což je naše dnešní téma. Co je to sakra DeltaStream? Jak to funguje s Flinkem a jak je to společník Kafky?

Co je Flink?

Flink byl původně přijat jako projekt Apache v prosinci 2014, takže už nějakou dobu existuje. Růst zpracování streamů vedl v posledních několika letech ke zrychlenému zájmu a používání. Flink je poněkud náročný systém na postavení a vnitřní použití, který vyžaduje specializované inženýrské schopnosti. Dokonce i AWS Lékaři bez hranic služba, i když je jednodušší, je stále poměrně složitá. Používání Javy například vyžaduje, abyste napsali svůj dotaz Java, vygenerovali soubor jar, zazipovali jej, nahráli do S3, nastavili oprávnění a poté jej provedli.


Půjčím si z webové stránky Apache Flink zde. Apache Flink je framework a distribuovaný procesor pro stavové výpočty přes neomezené a ohraničené datové toky. Flink byl navržen tak, aby běžel ve všech běžných clusterových prostředích a prováděl výpočty rychlostí v paměti a v jakémkoli měřítku. Nechci replikovat více z toho, co je na jejich webu, takže pokud si nejste jisti Flinkem, podívejte se na něj.

Pomocí DeltaStream

Ve své nejzákladnější podobě vám DeltaStream poskytuje sílu Flinku, aniž byste se museli zabývat Flinkem. Vůbec. Pro svůj test jsem použil jejich Rychlý průvodce pro webové uživatelské rozhraní; všimněte si, že mají i CLI, které jsem netestoval.


Když se zaregistrujete, získáte bezplatnou 14denní zkušební verzi. Vytvořil se ukázkový cluster Kafka s názvem „trial_store“, který můžete k vyzkoušení použít místo svých vlastních dat. Demo obsahuje řadu témat k hraní. Ikony v části AKCE vám umožňují odstranit téma nebo zobrazit podrobnosti a obsah o tématu a v tématu.


Prohlížeč témat DeltaStream


Zde jsou pro referenci podrobnosti o tématu zobrazení stránek , které použijeme později.

Inspektor tématu DeltaStream


Dobře, máme spuštěný klastr Kafka a témata v něm. Teď pojďme udělat něco zajímavého. Jak bylo zmíněno v úvodu, nejzajímavější věc, kterou mohu udělat, je obohacovat a/nebo filtrovat data za letu, než přistanou v konečném cíli, jako je databáze/sklad/jezero. Pro tyto účely přejdeme do pracovního prostoru.

Popis pracovního prostoru DeltaStream


Na tuto část bylo potřeba si trochu zvyknout. Databáze a schéma v DeltaStream jsou pouze organizační složky. Můžete vytvořit 'n' počet databází a v rámci databáze můžete mít 'n' počet schémat. Schémata budou obsahovat definiční rozvržení vašich objektů DeltaStream známých jako STREAM, CHANGELOG, MATERIALIZED VIEW a TABLE. Tabulka souvisí s databázovou tabulkou v něčem jako PostgreSQL a materializovaný pohled je způsob, jak uchovat data v sadě výsledků, aniž byste je někam konkrétně ukládali. S žádným z těchto v tomto blogu nic neudělám; Zaměřím se na Stream a Changelog.


Na následujícím snímku obrazovky vytvářím Stream tématu zobrazení stránek v clusteru Kafka. Považuji to za vytvoření tabulky definice tématu. Přiřadili jsme názvy polí a řekli jim, jaké téma použít a jaký je formát dat. Cluster trial_store nemusíme plně zdůvodňovat, protože je nastaven jako výchozí v rozbalovacím seznamu nahoře. Po provedení příkazu se zobrazí pod TestDB.public. Poté jej mohu dotazovat pomocí něčeho jako SELECT * FROM PAGEVIEWS a začnu vidět data v podokně výsledků ve spodní části.


Příklad vytvoření DeltaStream Stream


Dále deklaruji changelog podporovaný tématem uživatele a uspořádaný podle UserID. Protokol změn je podobný streamu, ale umožňuje interpretovat události v tématu jako události UPSERT. Události vyžadují primární klíč; DeltaStream interpretuje každou událost jako vložení nebo aktualizaci pro daný primární klíč. V tomto případě seznam změn odráží konkrétní podrobnosti podle uživatele, jako je pohlaví a zájmy.

Příklad protokolu změn DeltaStream


Tady se začínáme bavit. Vytvořím nový stream, který obohatí stream zobrazení stránek o data ze changelogu users_log pomocí userid jako klíčové hodnoty, ke které se připojím. To mi nyní poskytuje jedinečné téma v clusteru s daty ze dvou různých témat. Odtud jej mohu filtrovat pomocí něčeho jako regionid a zapsat výsledky tohoto dotazu do konečného cíle, jako je databáze, sklad nebo jezero. To mi umožnilo obohatit a filtrovat data za letu před jejich přistáním, čímž se zlepšila latence a snížily se náklady na výpočet a úložiště.

Příklad připojení k DeltaStream

Shrnutí

Takže, co to sakra je DeltaStream? Je to opravdu jednoduchý způsob, jak používat Apache Flink, aniž byste o tom něco věděli nebo s tím přímo něco dělali. Z mého příkladu jste viděli, jak jednoduché bylo připojit se k Apache Kafka a poté číst, připojit se a filtrovat data. Další aktuálně podporovaná připojení jsou Kinesis, PostgreSQL, Snowflake a Databricks a bylo mi řečeno, že ClickHouse a Iceberg budou brzy k dispozici.


V konečném důsledku vám DeltaStream dává sílu Apache Flink, aniž byste se museli zabývat Apache Flink, a můžete to udělat pomocí SQL místo Javy. Pokud se zabýváte streamováním dat nebo je chcete implementovat, je to rozhodně velmi chytré a pohodlné řešení.


Podívejte se na mé další články What the Heck is… na níže uvedených odkazech:




**

L O A D I N G
. . . comments & more!

About Author

Shawn Gordon HackerNoon profile picture
Shawn Gordon@progrockrec
Software designer/developer, developer advocate, writer, and musician.

ZAVĚŠIT ZNAČKY

TENTO ČLÁNEK BYL PŘEDSTAVEN V...