paint-brush
DeltaStream って一体何ですか?@progrockrec
231 測定値

DeltaStream って一体何ですか?

Shawn Gordon5m2024/12/12
Read on Terminal Reader

長すぎる; 読むには

DeltaStream は、Flink を操作せずに Flink を使用できるマネージド サービスです。
featured image - DeltaStream って一体何ですか?
Shawn Gordon HackerNoon profile picture


前回「一体何だ???」と尋ねたとき、私たちは__Apache Kafka __®プロトコル互換のデータストリーミングプラットフォームを見ていました。ワープストリームストリーミングデータの場合は、それを使って何かする必要があります。アパッチ アイスバーグスノーフレーク、 またはデータブリックス、または着陸前に飛行中のデータをクエリして強化および/またはフィルタリングします。後者にはいくつかのオプションがありますが、最大のものは間違いなくオープンソースプロジェクトです。アパッチフリンクフリンクを見て私はデルタストリームこれが今日のテーマです。DeltaStream とは何でしょうか? Flink とどのように連携し、Kafka とどのように連携するのでしょうか?

Flinkとは何ですか?

Flinkは2014年12月にApacheプロジェクトとして承認されたため、かなり前から存在していました。ストリーム処理の成長により、ここ数年で関心が高まり、利用が加速しました。Flinkは、社内で立ち上げて使用するにはやや難しいシステムであり、専任のエンジニアリング人材が必要です。 AWS MSFサービスは簡単ですが、それでもかなり複雑です。たとえば、Java を使用する場合は、Java クエリを記述し、jar ファイルを生成し、それを zip 形式で圧縮し、S3 にアップロードし、権限を設定して実行する必要があります。


ここでは、Apache Flink の Web ページから引用します。Apache Flink は、無制限および制限付きデータ ストリーム上でステートフルな計算を行うためのフレームワークおよび分散処理エンジンです。Flink は、一般的なすべてのクラスター環境で実行し、メモリ内速度であらゆる規模で計算を実行できるように設計されています。Web サイトに載っている内容をこれ以上繰り返すつもりはありませんので、Flink についてよくわからない場合は、調べてみてください。

DeltaStreamの使用

DeltaStreamは、Flinkを使わずにFlinkのパワーを提供します。私のテストでは、クイックスタートガイドWeb UI 用。CLI もありますが、私はテストしていません。


サインアップすると、14 日間の無料トライアルが提供されます。「trial_store」というサンプルの Kafka クラスターが起動し、自分のデータの代わりに試すことができます。デモには、試すためのトピックが多数含まれています。[アクション] の下のアイコンを使用すると、トピックを削除したり、トピックに関する詳細やコンテンツを表示したりできます。


DeltaStream トピック ブラウザ


後で使用するページビューのトピックの詳細を参考までに示します。

DeltaStream トピックインスペクター


さて、Kafka クラスターとトピックができました。では、興味深いことをしてみましょう。冒頭で述べたように、私が実行できる最も興味深いことは、データベース/ウェアハウス/レイクなどの最終目的地に到着する前に、データが転送中に強化および/またはフィルタリングすることです。そのために、ワークスペースに移動します。

DeltaStream ワークスペースの説明


この部分には、少し慣れる必要がありました。DeltaStream のデータベースとスキーマは、単なる組織フォルダです。n 個のデータベースを作成でき、データベース内に n 個のスキーマを持つことができます。スキーマには、STREAM、CHANGELOG、MATERIALIZED VIEW、および TABLE と呼ばれる DeltaStream オブジェクトの定義レイアウトが保持されます。テーブルは、PostgreSQL などのデータベース テーブルに関連し、マテリアライズド ビューは、特定の場所に置くことなく結果セットにデータを保持する方法です。このブログでは、どちらにも触れず、Stream と Changelog に焦点を当てます。


次のスクリーンショットでは、Kafka クラスターでページビュートピックのストリームを作成しています。これは、トピックのテーブル定義を作成するものと考えます。フィールドの名前を割り当て、使用するトピックとデータ形式を指定しました。trial_store クラスターは上部のコンボ ボックスでデフォルトとして設定されているため、完全に正当化する必要はありません。このコマンドを実行すると、TestDB.public の下に表示されます。次に、SELECT * FROM PAGEVIEWS などのクエリを実行すると、下部の結果ペインにデータが表示されます。


DeltaStream ストリーム作成例


次に、ユーザーのトピックをバックにした、UserID 順に並べられた変更ログを宣言します。変更ログはストリームに似ていますが、トピック内のイベントを UPSERT イベントとして解釈できます。イベントには主キーが必要です。DeltaStream は、各イベントを指定された主キーの挿入または更新として解釈します。この場合、変更ログには、性別や興味など、ユーザーごとの特定の詳細が反映されます。

DeltaStream 変更ログの例


ここからが楽しいところです。userid結合するキー値として使用して、 users_log変更ログのデータでページビューストリームを拡充する新しいストリームを作成します。これで、2 つの異なるトピックのデータを含むクラスター内の一意のトピックが作成されます。ここから、regionid などを使用してフィルター処理し、そのクエリの結果をデータベース、ウェアハウス、レイクなどの最終宛先に書き込むことができます。これにより、データを着陸させる前に、飛行中のデータを拡充およびフィルター処理できるため、レイテンシが改善され、コンピューティングとストレージのコストが削減されます。

DeltaStream 結合の例

まとめ

では、DeltaStream とは一体何なのでしょうか? これは、Apache Flink について何も知らなくても、直接操作しなくても、Apache Flink を使用する非常に簡単な方法です。私の例から、Apache Kafka に接続して、データの読み取り、結合、フィルタリングがいかに簡単であるかがおわかりいただけたと思います。現在サポートされている他の接続は、Kinesis、PostgreSQL、Snowflake、Databricks で、ClickHouse と Iceberg もまもなく利用可能になると聞いています。


結局のところ、DeltaStream は Apache Flink を扱うことなく Apache Flink のパワーを提供し、Java の代わりに SQL を使用してそれを実行できます。ストリーミング データを扱っている場合、またはそれを実装しようとしている場合、これは間違いなく非常に賢明で便利なソリューションです。


以下のリンクから、私の他の「What the Heck is…」の記事をご覧ください。




**