Lakeflow Connect のクエリ ベースのコネクタは、変更データ キャプチャ (CDC) 構成を必要とせずに、ソースに直接クエリを実行してデータベースからデータを取り込みます。 ビンログや CDC インフラストラクチャに依存する代わりに、カーソル列 (単調に増加するタイムスタンプまたは整数列) を使用して、最後のパイプラインの実行後に新規または更新された行を追跡します。
クエリベースのコネクタでは、Unity カタログ接続と Lakehouse フェデレーション を使用してソース データベースに接続し、結果 をストリーミング テーブルに書き込みます。
どのように機能するのか
各パイプライン実行で、クエリベースのコネクタはソース データベースに対してクエリを実行し、カーソル列の値が前回の実行の高基準値を超えるすべての行を取得します。 コネクタは、正常に実行されるたびにカーソル列の高い基準値を格納し、次の実行で下限として使用します。
コネクタはソースに直接クエリを実行するため、インジェスト ゲートウェイやステージング ボリュームは必要ありません。 パイプラインは、継続的ではなく、定義したスケジュールで実行されます。
CDC データベース コネクタと比較したクエリ ベースのコネクタ
クエリ ベースのコネクタは、次の点で CDC データベース コネクタと異なります。
- インジェスト ゲートウェイなし: CDC コネクタでは、binlog イベントをキャプチャするためのゲートウェイが必要です。 クエリ ベースのコネクタでは、ゲートウェイは使用されません。
- ステージング ボリュームなし: CDC コネクタは、ステージング ボリューム内の抽出されたデータをバッファーします。 クエリ ベースのコネクタは、ソース クエリから変換先テーブルに直接書き込みます。
- 連続ではなくスケジュール済み: クエリ ベースのコネクタはスケジュールに従って実行されます。 実行間のすべての中間行の状態をキャプチャするわけではありません。 変更された行の最新の状態のみがキャプチャされます。
- より広範なソース互換性: 適切なカーソル列を持つデータベースは、CDC または binlog アクセスをサポートしていない場合でも、有効なソースです。
トレードオフとして、クエリのパフォーマンスが低下する可能性があり、クエリはソース テーブルで直接実行されるため、binlog に対してクエリを実行する CDC コネクタと比較して、ソース データベースに負荷がかかる可能性があります。 論理的な削除の追跡は、deletion_condition を使用してサポートされています。
Betaではハードデリクショントラッキングもサポートされています。 どちらも API 構成が必要です。
サポートされているデータ取り込みアプローチ
クエリ ベースのコネクタでは、複数のインジェスト アプローチがサポートされています。 使用する方法によって、必要な構成パラメーターが決まります。
| 方法 | 接続方法 | 必須のパラメーター |
|---|---|---|
| 外部接続取り込み | ソース データベースの認証資格情報を格納する接続を使用します。 コネクタは、接続を使用してソース データベースに直接クエリを実行します。 |
connection_name、source_catalog、source_schema、source_table、cursor_column |
| 外部カタログ取り込み | Lakehouse Federation データ ソースによって支えられている外国カタログを使用します。 コネクタは、ソース データベースに直接接続するのではなく、外部カタログを使用してソース データを読み取ります。 |
ingest_from_uc_foreign_catalog: true、 cursor_columns、 primary_keys ( APPEND_ONLY モードを使用しない場合は必須) |
サポートされているソース
次のデータベース ソースがサポートされています。
外部接続インジェスト ソース:
- Oracle
- Teradata
- SQL Server
- MySQL
- マリアDB
- PostgreSQL
外部カタログ インジェスト ソース:
すべての Lakehouse フェデレーション データ ソースは、外部カタログ インジェストを使用してサポートされます。 完全な一覧については、「 Lakehouse Federation」を参照してください。
サポートされているインターフェイス
Azure Databricks UI または宣言型オートメーション バンドルを使用して、クエリベースのパイプラインを作成できます。
コンピューティングの要件
クエリベースのインジェスションパイプラインはデフォルトでサーバーレスコンピュート上で動作しますが、クラシックなコンピュートデプロイメントもサポートされています。 Databricks では、サーバーレス コンピューティングを使用することをお勧めします。 クエリベースのインジェスト パイプラインの作成を参照してください。
サーバーレス コンピューティングでクエリ ベースのコネクタを使用するには、コンピューティング環境でソース データベースへのネットワーク接続を許可する必要があります。 Lakehouse フェデレーション のネットワーク と ネットワークに関する推奨事項を参照してください。
履歴追跡 (SCD) モード
クエリベースのコネクタでは、次の履歴追跡モード (緩やかに変化するディメンション (SCD) モードとも呼ばれます) が、変換先テーブルに対してサポートされます。
- SCD_TYPE_1: コピー先テーブルの既存の行を最新のソース行で上書きします。 コピー先テーブルは履歴を保持しません。
- SCD_TYPE_2: バージョン メタデータを含む新しい行を追加することで、行の変更の完全な履歴を保持します。 「 履歴追跡の有効化 (SCD タイプ 2)」を参照してください。
- APPEND_ONLY: マージまたは上書きせずに、取り込まれたすべての行をコピー先テーブルに追加します。
スキーマの展開
クエリベースのコネクタは、Lakeflow Connect の他のマネージド コネクタと同じようにスキーマの進化を処理します。 マネージド コネクタでスキーマの進化を処理する方法を参照してください。