Delta Live Tables でデータをロードおよび変換する

このセクションの記事ではDelta Live Tablesパイプラインでのデータ収集と変換の一般的なパターン、推奨事項、例を示します。 ソース データを取り込んでパイプラインの初期データセットを作成する場合、これらの初期データセットは一般にブロンズテーブルと呼ばれ、多くの場合、単純な変換を実行します。 対照的に、パイプラインの最終テーブル (一般にゴールドテーブルと呼ばれる) では、複雑な集計や、 APPLY CHANGES INTO操作のターゲットであるソースからの読み取りが必要になることがよくあります。

データの読み込み

を使用して、Apache Spark 上の でサポートされている任意のデータソースからデータをロードできます。DatabricksDelta Live Tablesクラウド オブジェクト ストレージ、Kafka などのメッセージ バス、PostgreSQL などの外部システムなど、さまざまなソースからデータをロードするためのパターンの例については、 「Delta Live Tables を使用したデータのロード」を参照してください。 これらの例では、最適化された取り込みエクスペリエンスを実現するために、Delta Live Tables の Auto Loader でストリーミング テーブルを使用するなどの推奨事項が紹介されています。

データフロー

Delta Live Tables では、フローはソース データを段階的に処理してターゲット ストリーミング テーブルを更新するストリーミング クエリです。 Delta Live Tables パイプラインを実装するために必要な多くのストリーミング クエリは、クエリ定義の一部として暗黙的なフローを作成します。 Delta Live Tables では、より特殊な処理が必要な場合にフローを明示的に宣言することもサポートされています。 Delta Live Tables フローの詳細と、フローを使用してデータ処理タスクを実装する例については、 「Delta Live Tables フローを使用してデータを段階的にロードおよび処理する」を参照してください。

チャールズデータキャプチャ ( CDC )

Delta Live Tablesを使用して、チェンジデータキャプチャ (CDC )APPLY CHANGESAPI を簡素化します。Delta Live Tables のAPPLY CHANGES API は、順序が正しくないレコードを自動的に処理することで、CDC レコードが正しく処理されることを保証し、順序が正しくないレコードを処理するための複雑なロジックを開発する必要がなくなります。 APPLY CHANGES API参照してください: Delta Live Tablesでのチェンジデータキャプチャの簡素化

データの変換

Delta Live Tables を使用すると、データセットの変換を宣言し、クエリ ロジックを通じてレコードを処理する方法を指定できます。 パイプラインでのストリーミング テーブル、マテリアライズド ビュー、ストリーム静的結合、MLflow モデルの使用など、Delta Live Tables パイプラインを構築する際の一般的な変換パターンの例については、 「Delta Live Tables を使用したデータの変換」を参照してください。

ウォーターマークを使用して Delta Live Tables のステートフル処理を最適化する

状態が保持されているデータを効果的に管理するには、集計、結合、重複排除などの Delta Live Tables でのステートフル ストリーム処理の実行時にウォーターマークを使用できます。 ストリーム処理において、ウォーターマークは、ステートフル操作を実行するときにデータ処理の時間ベースのしきい値を定義できる Apache Spark 機能です。 到着したデータは、しきい値に達するまで処理され、しきい値に達した時点で、しきい値によって定義された時間枠が閉じられます。 ウォーターマークは、主に大規模なデータセットや長時間実行される処理を処理する場合に、クエリ処理中の問題を回避できます。

例と推奨事項については、 「ウォーターマークを使用した Delta Live Tables でのステートフル処理の最適化」を参照してください。