Když jsme se naposledy zeptali: „Co to sakra je???“, dívali jsme se na platformu pro streamování dat kompatibilní s protokolem __ __® . Se streamovanými daty je potřeba s nimi něco udělat. Přistát to někde jako , nebo 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 . Přivedl mě k tomu pohled na Flinka , 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? Apache Kafka WarpStream Ledovec Apache Sněhová vločka Databricks Apache Flink DeltaStream 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 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. AWS Lékaři bez hranic 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 pro webové uživatelské rozhraní; všimněte si, že mají i CLI, které jsem netestoval. Rychlý průvodce 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. Zde jsou pro referenci podrobnosti o tématu , které použijeme později. zobrazení stránek 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. 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 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. zobrazení stránek Dále deklaruji changelog podporovaný tématem 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. uživatele Tady se začínáme bavit. Vytvořím nový stream, který obohatí stream o data ze changelogu pomocí 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ě. zobrazení stránek users_log userid 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: Co je to sakra DuckDB? Co je to sakra Malloy? Co je to sakra PRQL? Co je to sakra GlareDB? Co je to sakra SeaTunnel? Co je to sakra LanceDB? Co to sakra je SDF? Co je to sakra Paimon? Co je to sakra Proton? Co je to sakra PuppyGraph? Co je to sakra GPTScript? Co je to sakra WarpStream? **