パイプラインを使用したデータの読み込み、変換、書き込み
このセクションの記事では、DLT パイプラインでのデータ取り込みと変換、および変換されたデータの外部サービスへの書き込みの一般的なパターン、推奨事項、および例について説明します。 ソース データを取り込んでパイプラインに初期データセットを作成する場合、これらの初期データセットは一般に ブロンズ テーブルと呼ばれ、多くの場合、単純な変換を実行します。 対照的に、パイプライン内の最終テーブル (一般に ゴールド テーブルと呼ばれます) では、多くの場合、複雑な集計や、 APPLY CHANGES INTO
操作のターゲットであるソースからの読み取りが必要になります。
データの読み込み
DLT を使用して、 Apache Spark on Databricks でサポートされている任意のデータソースからデータをロードできます。 クラウドオブジェクトストレージ、Kafka などのメッセージバス、PostgreSQL などの外部システムなど、さまざまなソースからデータをロードするパターンの例については、「 DLT を使用したデータのロード」を参照してください。これらの例では、最適化されたインジェスト エクスペリエンスのために DLT で Auto Loader と共にストリーミングテーブルを使用するなどの推奨事項を特徴としています。
データフロー
DLT では、 フロー は、ソース データを増分的に処理してターゲット ストリーミングテーブルを更新するストリーミング クエリです。 DLT パイプラインを実装するために必要な多くのストリーミング クエリでは、クエリ定義の一部として暗黙的なフローが作成されます。DLT では、より特殊な処理が必要な場合にフローを明示的に宣言することもできます。DLT フローの詳細と、フローを使用してデータ処理タスクを実装する例については、「 DLT フローを使用してデータを段階的に読み込み、処理する」を参照してください。
チェンジデータキャプチャ (CDC)
チェンジデータキャプチャ (CDC) は、ソース システム内のデータに加えられた変更 (挿入、更新、削除など) をキャプチャするデータ統合パターンです。 CDC は、ソース システムから Databricks にテーブルを効率的にレプリケートするために一般的に使用されます。 DLT は、 APPLY CHANGES
API を使用して CDC を簡素化します。DLTの APPLY CHANGES
APIは、順不同のレコードを自動的に処理することで、CDCレコードの正しい処理を保証し、順不同のレコードを処理するための複雑なロジックを開発する必要がなくなります。チェンジデータキャプチャとは(CDC)を参照してください。 と APPLY CHANGES APIs: DLT でチェンジデータキャプチャを簡略化します。
データの変換
DLT を使用すると、データセットに対する変換を宣言し、クエリ ロジックを通じてレコードの処理方法を指定できます。DLT パイプラインを構築する際の一般的な変換パターン (ストリーミングテーブル、マテリアライズドビュー、ストリーム-static 結合、パイプラインの MLflow モデルの使用など) の例については、「 パイプラインを使用したデータの変換」を参照してください。
DLTのステートフル処理をウォーターマークで最適化
ステートに保持されるデータを効果的に管理するために、DLT でステートフル ストリーム処理 (集計、結合、重複排除など) を実行するときにウォーターマークを使用できます。ストリーム処理では、ウォーターマークは、ステートフル操作を実行するときにデータを処理するための時間ベースのしきい値を定義できる Apache Spark 機能です。 到着したデータは、しきい値に達するまで処理され、しきい値に達すると、しきい値で定義された時間枠が閉じられます。 ウォーターマークは、主に大規模なデータセットの処理や実行時間の長い処理など、クエリ処理中の問題を回避するために使用できます。
例と推奨事項については、「 ウォーターマークを使用して DLT のステートフル処理を最適化する」を参照してください。
DLT シンクを使用して外部サービスにレコードを書き込む
プレビュー
DLT sink
API は パブリック プレビュー段階です。
変換されたデータをDatabricks DeltaUnity Catalogと のHive metastore マネージド テーブルに永続化するだけでなく、DLTApacheKafka Azureシンクを使用して、 や Event Hubs などのイベント ストリーミング サービスや、Unity Catalog または によって管理される外部テーブルなどの外部ターゲットに永続化できます。Hive metastore「DLT シンクを使用して外部サービスにレコードをストリームする」を参照してください。