Oracle統合CDCコネクターの制限事項
ベータ版
この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。
このページでは、Databricks Lakeflow Connectを使用したOracleからの取り込みに関する制限事項と考慮事項を示します。
一般的なデータベースコネクタの制限事項
このセクションの制限は、 Lakeflowコネクトのすべてのデータベースコネクタに適用されます。 コネクタ固有の制限事項については、引き続きお読みください。
-
スケジュールされたパイプラインをランする場合、アラートはすぐにはTriggerされません。その代わり、次の更新がランするときにTriggerされます。
-
ソース テーブルを削除しても、宛先テーブルは自動的に削除されません。宛先テーブルを手動で削除する必要があります。この動作は、Lakeflow 上の Spark 宣言型パイプラインの動作と一致しません。
-
ステージングカタログをフォーリンカタログにすることはできません。
-
ソースのメンテナンス期間中は、Databricksがデータにアクセスできない場合があります。
-
ソーステーブル名が既存の宛先テーブル名と競合する場合、パイプラインの更新は失敗します。
-
マルチ送信先パイプラインのサポートはAPIのみです。
-
取り込むテーブルの名前は、オプションで変更できます。パイプライン内のテーブルの名前を変更すると、そのテーブルは API 専用パイプラインになり、UI でパイプラインを編集できなくなります。
-
パイプラインがすでに起動した後に列を選択した場合、コネクタはその新しい列のデータを自動的にバックフィルしません。ヒストリカルデータを取り込むには、テーブルで完全更新を手動でランします。 [[ ## completed ##]]
-
Databricks では、異なるソーススキーマからのテーブルであっても、同じパイプライン内で同じ名前のテーブルを 2 つ以上取り込むことはできません。
-
ソースシステムは、カーソル列が単調に増加することを前提としています。
-
ゲートウェイのスナップショットは再開できません。スナップショットの実行中にパイプラインを更新した場合(新しいテーブルの追加など)、現在のスナップショットはキャンセルされ、新しいスナップショットが起動します。新しいスナップショットには、キャンセルされたスナップショットのテーブルと、新しく追加されたテーブルの和集合が含まれます。
-
このコネクターは、変換を行わずに生データを取り込みます。変換には、LakeFlow Pipelines上のダウンストリームのSpark宣言型パイプラインを使用します。
認証
- このコネクタは、基本認証 (ユーザー名とパスワード) のみをサポートしています。
データベースのバリエーション
- このコネクタは、Oracle バージョン 12c 以降 (12c、18c、19c、21c、23ai、および 26ai) をサポートしています。
- このコネクタは、Amazon RDS for Oracle、および Amazon EC2、Azure 仮想マシン (VM)、または Oracle クラウド (OCI) 上で実行される Oracle をサポートしています。このコネクタは、Azure ExpressRoute、AWS Direct Connect、または VPN を使用したオンプレミスの Oracle もサポートしています。クロスクラウド接続の詳細については、ネットワーク接続を参照してください。
- Oracle Real Application クラスター (RAC) はサポートされていません(RAC 構成の Exadata を含む)。シングルインスタンスの Oracle データベースに接続します。
- 以下の Oracle デプロイメントもサポートされていません:物理スタンバイ、Oracle Autonomous Database、およびマルチテナント Amazon RDS for Oracle インスタンス。
- Transparent Data Encryption(TDE)で暗号化されたデータは、暗号化ウォレット(キーストア)が開いている場合にのみサポートされます。ウォレットが閉じている場合、LogMinerは暗号化された列に対して
Unsupported Typeを報告します。
ソースデータ
- サポートされていないデータ型:
XML(XMLTYPE)、JSON、BFILE、VECTOR、BOOLEAN、および空間データ型。 BLOB、CLOB、およびNCLOBの値は部分的にサポートされています。LogMinerは、変更Logs内のSQLステートメントとインラインでほとんどの値を配信し、コネクタはそれらを変更から直接読み取ります。インライン外に書き出されるため、LogMinerがREDOレコードに含めないラージオブジェクト値はキャプチャされません。ラージオブジェクト(LOB)列を参照してください。- LogMiner は、
BFILE、ネストされたテーブル、VARRAYコレクション、ID 列、時間的妥当性列、PKREF列、またはPKOID列を含むテーブルを無視します。LogMiner の制限事項を参照してください。 - LogMinerでは、テーブル名または列名が30文字を超えないようにする必要があります。
- Oracle は、引用符で囲まれていない識別子を大文字で保存します。
source_catalog(サービス名)、source_schema、およびsource_tableの名前では大文字と小文字が区別され、Oracle での保存方法と一致している必要があります。
スキーマ進化
このコネクタは、以下のスキーマ変更を自動的に処理します。
- 新しい列。ソースに新しい列が表示されると、Databricksは次回のパイプラインのランでそれを取り込みます。
- 削除された列。ソースからカラムが削除された場合、コネクタはそれを削除するのではなく、宛先で
inactiveとマークします。後でinactiveカラムと名前が競合する別のカラムが出現した場合、パイプラインは失敗します。この場合、テーブルの完全更新をランしてください、非アクティブなカラムを手動で削除してください。 - データ型の拡張(例:
NUMBER(10)からNUMBER(20)、またはVARCHAR2(50)からVARCHAR2(100))。 - スキーマ全体を取り込む場合の新しいテーブル。
以下のスキーマ変更は自動的に処理されないため、影響を受けるテーブルの完全更新が必要です:
- 列の名前変更。名前の変更は列の削除と追加として適用されるため、履歴値は新しい名前の下には引き継がれません。
- テーブルの名前変更。
- 非拡張(縮小)データ型の変更。
- 既存の列に
NOT NULL制約を追加します。
手動操作なしでこれらの変更から復旧するには、自動フル更新を有効にします。これにより、影響を受けるテーブルが自動的にフル更新されます。自動フル更新ポリシーを参照してください。
パイプライン
- Oracle統合CDCコネクターは、抽出と適用を単一のパイプラインに統合する統合CDCパイプラインを使用します。Oracle向けの統合CDCパイプラインの作成を参照してください。
- パイプラインが処理する前に Oracle がアーカイブ Logs をパージした場合は、影響を受けるテーブルに対して完全更新を実行してください。
ステージング
- ステージングカタログをフォーリンカタログにすることはできません。
テーブル
- パイプラインあたりの最大テーブル数は、Spark宣言型パイプラインの制限と同じです。