メインコンテンツまでスキップ

クエリベースコネクタの制限

一般的な制限事項

  • クエリベースのコネクタは、スケジュールに基づいてソースにクエリを実行します。それらは継続的な摂取を促しません。レイテンシを低減する必要がある場合は、マネージドCDCデータベースコネクタを使用してください。
  • カーソル列は単一の列でなければなりません。複合カーソル(複数の列を組み合わせたもの)はサポートされていません。列の値は単調増加でなければならない。カーソル値が保存されている最高水位マーク以下の行は再取り込みされません。
  • カーソル列がNULLの行は取り込まれません。

ソーステーブルの要件と推奨事項

クエリベースのインジェストワークロードを設計する際には、次のソーステーブルの特性を考慮してください。テーブルの取り込み方法とワークロードのパフォーマンスに影響します。

「主キー、一意キー、およびカーソル」

クエリベースのコネクタは、主キー (PK) または一意キー (UK) を使用して行を識別し、カーソル列を使用して変更を検出します。取り込み動作は、ソーステーブルで利用可能な項目によって異なります。

ソーステーブル

データ取り込み動作

カーソル付きのPKまたはUK

定期的なスナップショットおよび増分取り込み

カーソルなしのプライマリキーまたはユニークキー

バッチ スナップショット モード(APPLY CHANGES FROM SNAPSHOT)。コネクタは実行ごとに全テーブルを再読み込みするため、このモードは小さいテーブルに最適です。

PKまたはUKがありませんが、カーソルは利用可能です。

コネクタはすべての列から合成キーを生成します。これは重複する行がないテーブルに有効です。完全に重複した行があるテーブルでは、APPEND_ONLYストレージモードを使用します。

PKまたはUKがなく、カーソルもありません。

コネクタはすべての列から合成キーを生成します。APPEND_ONLY ストレージモードを、任意の列をカーソルとして使用し、常に完全更新します。完全に重複する行があるテーブルの場合、合成キーが同じ行を区別できないため、APPEND_ONLYが必要です。

パーティショニングとインデックス作成の推奨事項

  • パーティション列 :コネクタは、並行読み込みのためにソースクエリをパーティション分割する列を自動的に選択します。先頭の主キー列が最初に試行されます。ただし、それが数値、文字列、日付、またはタイムスタンプ型である場合に限ります。その列が適切でない場合、代わりに一意のキー列を選択します。バランスの取れたパーティション分割の場合、列は以下を備えている必要があります。

    • 高カーディナリティ :1 TBに近づくテーブルには、少なくとも1,000個の異なる値が推奨されます。
    • データスキューが低い場合 :値がいくつかの値に大きく偏っている列は避けてください。歪度が高い列により、サイズが大きすぎるパーティションが作成され、クエリのタイムアウトが発生したり、実行が再起動されたときに進行状況が失われたりする可能性があります。

    自動的に選択された列がこれらの基準を満たさない場合、パーティショニング列のオーバーライドをリクエストするには、Databricksアカウントチームにお問い合わせください。

  • インデックス付きカーソル列 :ソースデータベースでカーソル列にインデックスを作成します。インデックスが作成されていないカーソル列は、増分クエリのパフォーマンスを低下させます。

API専用機能

クエリベースのコネクタでは、以下の機能がサポートされていますが、APIを使用する場合に限ります。

  • 行フィルタリング
  • ソフト削除追跡( deletion_condition
  • 完全削除追跡機能(ベータ版
  • 追記専用取り込み( APPEND_ONLY SCDモード)
  • 複数宛先カタログおよびスキーマ