PostgreSQLコネクタに関するよくある質問
プレビュー
LakeFlow ConnectのPostgreSQLコネクタはパブリック プレビュー段階です。 パブリック プレビューに登録するには、Databricks アカウント チームにお問い合わせください。
このページでは、 Databricks LakeFlow ConnectのPostgreSQLコネクタに関するよくある質問に回答します。
一般的なマネージドコネクタに関する FAQ
マネージドコネクタの FAQ の回答は、Lakeflowコネクトのすべてのマネージド コネクタに適用されます。コネクタ固有の FAQ については、引き続きお読みください。
Databricks はどのように PostgreSQL に接続しますか?
Databricks は、トランスポート層セキュリティ (TLS) と JDBC 接続を使用して PostgreSQL に接続します。資格情報は Unity Catalog に安全に保存され、取り込みフローを実行するユーザーが適切な権限を持っている場合にのみ取得できます。Databricks では、データを取り込むために PostgreSQL に別のレプリケーション ユーザーを作成することを推奨しています。このユーザーに公開したくないデータベースまたはテーブルがある場合は、組み込みの PostgreSQL 権限を使用できます。
パイプラインが失敗した場合、データの損失なしに取り込みが再開されますか?
はい。Databricks は、コネクタがソースから抽出し、宛先に適用した内容を追跡します。何か問題が発生した場合、レプリケーション スロットおよび先行書き込みログ (WAL) データがソース データベースに残っている限り、Databricks はその時点から再開できます。これは、WAL 保持期間またはレプリケーション スロットの制限に達する前にパイプラインが実行されず、ターゲット テーブルを完全に更新する必要がある場合に影響を受ける可能性があります。
コネクタはどの PostgreSQL バリエーションをサポートしていますか?
コネクタは、 AWS RDS PostgreSQL 、Aurora PostgreSQL 、 Amazon EC2 、 Azure Database for PostgreSQL 、 Azure仮想マシン、 GCPクラウドSQL for PostgreSQLをサポートしています。 これには、仮想マシン上で実行される PostgreSQL が含まれます。十分な帯域幅が利用できる場合、コネクタは Azure ExpressRoute、AWS Direct Connect、VPN を使用したオンプレミスの PostgreSQL もサポートします。
コネクタはどのようにしてデータを段階的に取得するのでしょうか?
コネクタは、 pgoutputプラグインを使用した PostgreSQL 論理レプリケーションを使用します。論理レプリケーションは、ソース データベースのパフォーマンスに大きな影響を与えることなく、先行書き込みログを通じてすべてのデータ変更操作 (挿入、更新、削除) をキャプチャします。
コネクタは日付と時刻の列のタイムゾーンをキャプチャしますか?
コネクタは、 TIMESTAMP WITH TIME ZONE列のタイム ゾーン情報を保持します。TIMESTAMP WITHOUT TIME ZONE列とTIME列は、タイムゾーン変換なしで元の形式の文字列として取り込まれます。
インジェストゲートウェイのスケジュールをカスタマイズできますか?
いいえ、インジェストゲートウェイは継続モードで実行する必要があります。これは、PostgreSQL にとって、Write-Ahead Log (WAL) の肥大化を防ぎ、レプリケーション スロットに未使用の変更が蓄積されないようにするために重要です。ゲートウェイが長期間停止すると、レプリケーション スロットにより WAL ファイルがソース データベースに蓄積され、ディスク領域がいっぱいになる可能性があります。
コネクタは主キーのないテーブルをどのように処理しますか?
レプリカ ID がFULLに設定されている場合、コネクタは主キーなしでテーブルを複製できます。この場合、コネクタは大きなオブジェクトを除くすべての列をバンドルされた主キーとして扱います。ソース テーブルに重複行がある場合、履歴追跡を有効にしない限り、これらの行は宛先テーブルに 1 つの行として取り込まれます。
取り込みパイプラインをどのくらいの頻度で実行するようにスケジュールできますか?
取り込みパイプラインの実行をスケジュールできる頻度に制限はありません。ただし、サーバレス コンピュートの起動には時間がかかるため、 Databricks間隔を 5 分以上空けることをお勧めします。 Databricks は、連続モードでの取り込みパイプラインの実行をサポートしていません。
最初のパイプライン実行でデータベースのすべての行が表示されないのはなぜですか?
インジェスチョン ゲートウェイは、実行を開始するとすぐに履歴データと CDC データを抽出します。すべてのデータが抽出される前に取り込みパイプラインが実行され、ターゲット テーブルにデータの一部しか適用されなくなる可能性があります。すべてのデータを抽出してターゲット テーブルに適用するには、取り込みパイプラインを数回実行する必要がある場合があります。
リードレプリカまたはスタンバイインスタンスから取り込むことはできますか?
いいえ。論理レプリケーションはリードレプリカまたはスタンバイインスタンスではサポートされていないため、サポートはプライマリ PostgreSQL インスタンスに限定されます。
パイプラインを削除すると、レプリケーション スロットはどうなりますか?
インジェスト パイプラインを削除しても、レプリケーション スロットはソース PostgreSQL データベースから自動的に削除されません。先行書き込みログ (WAL) の蓄積を防ぐには、レプリケーション スロットを手動で削除する必要があります。レプリケーション スロットをクリーンアップする手順については、「レプリケーション スロットのクリーンアップ」を参照してください。
必要な PostgreSQL バージョンは何ですか?
PostgreSQL 13 以上が必要です。
CDC 取り込みでは wal_level = logical は必須ですか?
はい。論理レプリケーションを有効にするには、 wal_level問題をlogicalに設定する必要があります。
1 つのパイプラインで複数の PostgreSQL データベースからテーブルを複製できますか?
はい。ingestion_definitionのsource_catalogフィールドには複数のソース データベースを指定できます。ただし、各ソース データベースには独自のUnity Catalog接続と公開構成が必要です。
1 つのパイプラインでいくつのテーブルを取り込むことができますか?
Databricks では、最適なパフォーマンスを得るために、パイプラインごとに 250 個以下のテーブルを取り込むことを推奨しています。ただし、これらのオブジェクト内でサポートされる行数や列数には厳密な制限はありません。
コネクタはユーザー定義型と拡張機能をサポートしていますか?
コネクタは、配列や JSONB を含むほとんどの PostgreSQL データ型をサポートしています。ユーザー定義型とサードパーティの拡張型は文字列として取り込まれます。サポートされている型マッピングの完全なリストについては、 PostgreSQL コネクタ リファレンスを参照してください。