ストリームとタスクの紹介

Snowflakeはストリームとタスクで連続データパイプラインをサポートします。

ストリーム:

ストリーム オブジェクトは、挿入やその他のデータ操作言語(DML)の変更を含む、テーブル(ステージングテーブルなど)の変更データキャプチャ(CDC)のデルタ情報を記録します。ストリームを使用すると、2つのトランザクションポイント間で、行レベルによるテーブルの一連の変更をクエリおよび利用できます。

連続データパイプラインでは、連続データロードを使用してステージングテーブルおよびダウンストリームテーブルにビジネスアプリケーションからのデータが入力され、 SQL ステートメントを使用してさらに処理できる状態になると、テーブルストリームが記録します。

詳細については、 ストリームの紹介 をご参照ください。

タスク:

タスク オブジェクトは、ストアドプロシージャの呼び出しを含む SQL ステートメントを実行します。タスクはスケジュールに基づいて、またはデータの到着など、定義したトリガーに基づいて実行できます。より複雑な期間処理をサポートするために、有向非巡回グラフ(DAGs)を定義し、タスクを連鎖させるためにタスクグラフを使用することができます。詳細については、 タスクの紹介 および タスクグラフでタスクの依存関係を管理する をご参照ください。

タスクとテーブルストリームを組み合わせることは、新しいデータや変更されたデータを継続的に処理する便利で強力な方法です。タスクは、ストリームが表面化した新しい行や変更された行を、 SYSTEM$STREAM_HAS_DATA を使って変換することができます。タスクが実行されるたびに、変更データを消費するか、変更データが存在しない場合は現在の実行をスキップします。

その他の連続データパイプライン機能については、こちらをご参照ください: