前回「一体何だ???」と尋ねたとき、私たちは__Apache __®プロトコル互換のデータストリーミングプラットフォームを見ていました。 ストリーミングデータの場合は、それを使って何かする必要があります。 、 、 または 、または着陸前に飛行中のデータをクエリして強化および/またはフィルタリングします。後者にはいくつかのオプションがありますが、最大のものは間違いなくオープンソースプロジェクトです。 フリンクを見て私は これが今日のテーマです。DeltaStream とは何でしょうか? Flink とどのように連携し、Kafka とどのように連携するのでしょうか? Kafka ワープストリーム アパッチ アイスバーグ スノーフレーク データブリックス アパッチフリンク デルタストリーム Flinkとは何ですか? Flinkは2014年12月にApacheプロジェクトとして承認されたため、かなり前から存在していました。ストリーム処理の成長により、ここ数年で関心が高まり、利用が加速しました。Flinkは、社内で立ち上げて使用するにはやや難しいシステムであり、専任のエンジニアリング人材が必要です。 サービスは簡単ですが、それでもかなり複雑です。たとえば、Java を使用する場合は、Java クエリを記述し、jar ファイルを生成し、それを zip 形式で圧縮し、S3 にアップロードし、権限を設定して実行する必要があります。 AWS MSF ここでは、Apache Flink の Web ページから引用します。Apache Flink は、無制限および制限付きデータ ストリーム上でステートフルな計算を行うためのフレームワークおよび分散処理エンジンです。Flink は、一般的なすべてのクラスター環境で実行し、メモリ内速度であらゆる規模で計算を実行できるように設計されています。Web サイトに載っている内容をこれ以上繰り返すつもりはありませんので、Flink についてよくわからない場合は、調べてみてください。 DeltaStreamの使用 DeltaStreamは、Flinkを使わずにFlinkのパワーを提供します。私のテストでは、 Web UI 用。CLI もありますが、私はテストしていません。 クイックスタートガイド サインアップすると、14 日間の無料トライアルが提供されます。「trial_store」というサンプルの Kafka クラスターが起動し、自分のデータの代わりに試すことができます。デモには、試すためのトピックが多数含まれています。[アクション] の下のアイコンを使用すると、トピックを削除したり、トピックに関する詳細やコンテンツを表示したりできます。 後で使用する トピックの詳細を参考までに示します。 ページビューの さて、Kafka クラスターとトピックができました。では、興味深いことをしてみましょう。冒頭で述べたように、私が実行できる最も興味深いことは、データベース/ウェアハウス/レイクなどの最終目的地に到着する前に、データが転送中に強化および/またはフィルタリングすることです。そのために、ワークスペースに移動します。 この部分には、少し慣れる必要がありました。DeltaStream のデータベースとスキーマは、単なる組織フォルダです。n 個のデータベースを作成でき、データベース内に n 個のスキーマを持つことができます。スキーマには、STREAM、CHANGELOG、MATERIALIZED VIEW、および TABLE と呼ばれる DeltaStream オブジェクトの定義レイアウトが保持されます。テーブルは、PostgreSQL などのデータベース テーブルに関連し、マテリアライズド ビューは、特定の場所に置くことなく結果セットにデータを保持する方法です。このブログでは、どちらにも触れず、Stream と Changelog に焦点を当てます。 次のスクリーンショットでは、Kafka クラスターで トピックのストリームを作成しています。これは、トピックのテーブル定義を作成するものと考えます。フィールドの名前を割り当て、使用するトピックとデータ形式を指定しました。trial_store クラスターは上部のコンボ ボックスでデフォルトとして設定されているため、完全に正当化する必要はありません。このコマンドを実行すると、TestDB.public の下に表示されます。次に、SELECT * FROM PAGEVIEWS などのクエリを実行すると、下部の結果ペインにデータが表示されます。 ページビュー 次に、 トピックをバックにした、UserID 順に並べられた変更ログを宣言します。変更ログはストリームに似ていますが、トピック内のイベントを UPSERT イベントとして解釈できます。イベントには主キーが必要です。DeltaStream は、各イベントを指定された主キーの挿入または更新として解釈します。この場合、変更ログには、性別や興味など、ユーザーごとの特定の詳細が反映されます。 ユーザーの ここからが楽しいところです。userid 結合するキー値として使用して、 変更ログのデータで ストリームを拡充する新しいストリームを作成します。これで、2 つの異なるトピックのデータを含むクラスター内の一意のトピックが作成されます。ここから、regionid などを使用してフィルター処理し、そのクエリの結果をデータベース、ウェアハウス、レイクなどの最終宛先に書き込むことができます。これにより、データを着陸させる前に、飛行中のデータを拡充およびフィルター処理できるため、レイテンシが改善され、コンピューティングとストレージのコストが削減されます。 を users_log ページビュー まとめ では、DeltaStream とは一体何なのでしょうか? これは、Apache Flink について何も知らなくても、直接操作しなくても、Apache Flink を使用する非常に簡単な方法です。私の例から、Apache Kafka に接続して、データの読み取り、結合、フィルタリングがいかに簡単であるかがおわかりいただけたと思います。現在サポートされている他の接続は、Kinesis、PostgreSQL、Snowflake、Databricks で、ClickHouse と Iceberg もまもなく利用可能になると聞いています。 結局のところ、DeltaStream は Apache Flink を扱うことなく Apache Flink のパワーを提供し、Java の代わりに SQL を使用してそれを実行できます。ストリーミング データを扱っている場合、またはそれを実装しようとしている場合、これは間違いなく非常に賢明で便利なソリューションです。 以下のリンクから、私の他の「What the Heck is…」の記事をご覧ください。 DuckDB とは何ですか? マロイって一体何者? PRQL って一体何ですか? GlareDB とは何ですか? SeaTunnelって一体何ですか? LanceDB って一体何ですか? SDFって一体何ですか? パイモンって一体何? プロトンって一体何ですか? PuppyGraph って一体何ですか? GPTScript とは何ですか? WarpStream って何ですか? **