クエリベースコネクタの制限
このページでは、ソーステーブルの要件、パーティショニングとインデックス作成の推奨事項、API を通じてのみ利用可能な機能など、Databricks Lakeflow Connect におけるクエリーベースのコネクタの制限事項と考慮事項について説明します。
一般的な制限事項
ソースに関係なく、すべてのクエリーベースのコネクタに次の制限が適用されます。
- クエリベースのコネクタは、スケジュールに基づいてソースにクエリを実行します。それらは継続的な摂取を促しません。レイテンシを低減する必要がある場合は、マネージドCDCデータベースコネクタを使用してください。
- カーソル列は単一の列でなければなりません。複合カーソル(複数の列を組み合わせたもの)はサポートされていません。列の値は単調増加でなければならない。カーソル値が保存されている最高水位マーク以下の行は再取り込みされません。
- カーソル列がNULLの行は取り込まれません。
ソーステーブルの要件と推奨事項
クエリベースのインジェストワークロードを設計する際には、次のソーステーブルの特性を考慮してください。テーブルの取り込み方法とワークロードのパフォーマンスに影響します。
「主キー、一意キー、およびカーソル」
クエリベースのコネクタは、主キー (PK) または一意キー (UK) を使用して行を識別し、カーソル列を使用して変更を検出します。取り込み動作は、ソーステーブルで利用可能な項目によって異なります。
ソーステーブル | データ取り込み動作 |
|---|---|
カーソル付きのPKまたはUK | 定期的なスナップショットおよび増分取り込み |
カーソルなしのプライマリキーまたはユニークキー | バッチ スナップショット モード( |
PKまたはUKがありませんが、カーソルは利用可能です。 | コネクタはすべての列から合成キーを生成します。これは重複する行がないテーブルに有効です。完全に重複した行があるテーブルでは、 |
PKまたはUKがなく、カーソルもありません。 | コネクタはすべての列から合成キーを生成します。 |
パーティショニングとインデックス作成の推奨事項
コネクタが読み取りを並列化し、増分クエリーを効率的に実行できるように、これらの推奨事項に従ってください。
-
コネクタは、並列読み取りのためにソースクエリーをパーティション分割する列を自動的に選択します。まず先頭の主キー列を試行します(数値、文字列、日付、またはTimestamp型である必要があります)。その列が適していない場合は、代わりに一意のキー列が選択されます。バランスの取れたパーティション分割を行うには、列に以下が必要です:
- 高カーディナリティ :1 TBに近づくテーブルには、少なくとも1,000個の異なる値が推奨されます。
- データスキューが低い場合 :値がいくつかの値に大きく偏っている列は避けてください。歪度が高い列により、サイズが大きすぎるパーティションが作成され、クエリのタイムアウトが発生したり、実行が再起動されたときに進行状況が失われたりする可能性があります。
自動的に選択された列がこれらの基準を満たさない場合、パーティショニング列のオーバーライドをリクエストするには、Databricksアカウントチームにお問い合わせください。
-
ソースデータベース上のカーソル列に B-tree インデックスを作成します。増分フェーズ中、コネクタはカーソル列 (
cursor_column > last_value) でフィルタリングを行います。カーソル列に B-tree インデックスがない場合、増分読み取りのたびにテーブル全体がスキャンされるため、テーブルの拡大に伴ってパフォーマンスが低下します。
API専用機能
クエリベースのコネクタでは、以下の機能がサポートされていますが、APIを使用する場合に限ります。
- 行フィルタリング
- ソフト削除追跡(
deletion_condition) - ハード削除追跡(ベータ版)。タイムスタンプカーソル列のみをサポートしています。
- 追記専用取り込み(
APPEND_ONLYSCDモード) - 複数宛先カタログおよびスキーマ