📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

PostgreSQL 統合タスク



このページでは、PostgreSQL データベースから TiDB Cloud Lake にデータを同期する PostgreSQL 統合タスクを作成する方法について説明します。PostgreSQL タスクは、完全な Snapshot ロード、継続的な Change Data Capture (CDC)、またはその両方の組み合わせをサポートします。

まず再利用可能な PostgreSQL 接続設定を作成する必要がある場合は、PostgreSQL - Credentials を参照してください。

同期モード

同期モード説明
Snapshotソーステーブルから 1 回限りの完全なデータロードを実行します。初期データ移行や定期的な一括インポートに最適です。
CDC OnlyPostgreSQL の論理レプリケーションを使用して、リアルタイムの変更(insert、update、delete)を継続的に取得します。マージ操作には主キーが必要です。
Snapshot + CDC最初に完全なスナップショットを実行し、その後シームレスに継続的な CDC に移行します。ほとんどのユースケースで推奨されます。

前提条件

PostgreSQL データ統合を設定する前に、PostgreSQL インスタンスが次の要件を満たしていることを確認してください。

  • PostgreSQL - Credentials データソースがすでに作成されていること
  • 対象の PostgreSQL インスタンスに TiDB Cloud Lake から到達できること
  • PostgreSQL バージョン 10 以降

論理レプリケーションを有効にする

CDC および Snapshot + CDC モードでは、PostgreSQL WAL (Write-Ahead Log) のレベルを logical に設定する必要があります。

wal_level = logical max_replication_slots = 4 max_wal_senders = 4

設定を変更した後、変更を有効にするために PostgreSQL を再起動してください。

データレプリケーションに必要な権限を持つ PostgreSQL ユーザーを作成します。

CREATE USER lake_cdc WITH PASSWORD 'your_password' REPLICATION; GRANT CONNECT ON DATABASE your_database TO lake_cdc; GRANT USAGE ON SCHEMA public TO lake_cdc; GRANT SELECT ON ALL TABLES IN SCHEMA public TO lake_cdc; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO lake_cdc;

パブリケーションとレプリケーションスロットを作成する(CDC に必須)

CDC および Snapshot + CDC モードでは、パブリケーションとレプリケーションスロットが存在している必要があります。CREATE PUBLICATION ... FOR ALL TABLES にはスーパーユーザー権限が必要であり、個別のテーブルを追加するにはテーブル所有者である必要があるため、これらのオブジェクトは CDC タスクを開始する前にデータベース所有者またはスーパーユーザーが作成する必要があります。

次のコマンドをスーパーユーザーまたはデータベース所有者として実行してください。

-- Create a publication that includes the tables you want to replicate CREATE PUBLICATION bend_cdc_pub FOR ALL TABLES; -- Create a logical replication slot SELECT * FROM pg_create_logical_replication_slot('bend_cdc_slot', 'pgoutput'); -- Grant the dedicated user permission to use the replication slot ALTER ROLE lake_cdc WITH REPLICATION;

ネットワークアクセス

PostgreSQL インスタンスに TiDB Cloud Lake からアクセスできることを確認してください。ファイアウォールルールとセキュリティグループを確認し、PostgreSQL ポートへの受信接続を許可してください。

PostgreSQL 統合タスクの作成

ステップ 1: 基本情報

  1. Data > Data Integration に移動し、Create Task をクリックします。

  2. 基本設定を構成します。

    フィールド必須説明
    Data Sourceはいドロップダウンから既存の PostgreSQL - Credentials データソースを選択します
    Nameはいこの統合タスクの名前
    Source Database—選択したデータソースに基づいて自動的に表示されます
    Source TableはいPostgreSQL データベースから同期するテーブルを選択します
    Sync ModeはいSnapshot、CDC Only、Snapshot + CDC から選択します
    Primary Key条件付きマージ操作に使用する一意識別カラムです。CDC Only および Snapshot + CDC モードで必須です
    Sync Intervalはい書き込み操作の間隔(秒)(デフォルト: 3)
    Batch Sizeいいえバッチごとの行数
    Allow DeleteいいえCDC で DELETE 操作を許可するかどうかを指定します。CDC Only および Snapshot + CDC モードで使用できます

Snapshot モードのオプション

Snapshot モードを使用する場合は、追加のオプションを利用できます。

  • Snapshot WHERE Condition: スナップショット中にデータをフィルタリングする SQL WHERE 句です(例: created_at > '2024-01-01')。これにより、ソースデータの一部のみをロードできます。

ステップ 2: データのプレビュー

基本設定を構成した後、Next をクリックしてソースデータをプレビューします。

システムは選択した PostgreSQL テーブルからサンプル行を取得し、カラム名とデータ型を表示します。続行する前に、正しいテーブルとカラムが選択されていることを確認してください。

ステップ 3: ターゲットテーブルの設定

TiDB Cloud Lake 内の宛先を構成します。

フィールド説明
Warehouse同期の実行先となる TiDB Cloud Lake Warehouse を選択します
Target DatabaseTiDB Cloud Lake 内の対象データベースを選択します
Target TableTiDB Cloud Lake 内のテーブル名です(デフォルトはソーステーブル名)

システムはソースカラムをターゲットテーブルスキーマに自動的にマッピングします。カラムマッピングを確認し、Create をクリックして統合タスクの作成を完了します。

同期モードごとのタスクの動作

同期モード動作
Snapshot1 回実行され、完全なデータロードが完了すると自動的に停止します。
CDC Only手動で停止するまで継続的に実行され、リアルタイムの変更を取得します。
Snapshot + CDC最初に初期スナップショットを完了し、その後、手動で停止するまで継続的な CDC に移行します。

CDC タスクでは、停止時に現在の LSN (Log Sequence Number) がチェックポイントとして保存されるため、再起動時に中断した位置からタスクを再開できます。

同期モードの詳細

Snapshot

Snapshot モードでは、ソーステーブルを 1 回だけ完全に読み取り、すべてのデータを TiDB Cloud Lake 内のターゲットテーブルにロードします。

ユースケース:

  • PostgreSQL から TiDB Cloud Lake への初期データ移行
  • 定期的な完全データ更新
  • WHERE 条件フィルタリングを使用した 1 回限りのデータインポート

特長:

  • WHERE 条件フィルタリングをサポートし、データの一部をロード可能
  • 完了後にタスクは自動的に停止

CDC (Change Data Capture)

CDC モードでは、論理レプリケーションを介して PostgreSQL WAL (Write-Ahead Log) を継続的に監視し、ソーステーブルのリアルタイムな行レベル変更(INSERT、UPDATE、DELETE)を取得します。

ユースケース:

  • リアルタイムデータレプリケーション
  • 運用中の PostgreSQL データベースと TiDB Cloud Lake の同期維持
  • イベント駆動型データパイプライン

仕組み:

  1. 論理レプリケーションスロットを使用して PostgreSQL に接続します
  2. pgoutput プラグインを介してリアルタイムに行レベルの変更を取得します
  3. 変更を TiDB Cloud Lake 内の生のステージングテーブルに書き込みます
  4. 主キーを使用して、変更を定期的にターゲットテーブルへマージします
  5. クラッシュリカバリのためにチェックポイント(LSN 位置)を保存します

Snapshot + CDC

このモードは両方のアプローチを組み合わせたものです。最初にソーステーブルの完全なスナップショットを実行し、その後シームレスに CDC モードへ移行して継続的に変更を取得します。これはほとんどのデータ統合シナリオで推奨されるモードであり、完全な初期データロードと、その後の継続的なリアルタイム同期を実現します。

詳細設定

Primary Key

主キーは、CDC 中の MERGE 操作に使用される一意識別カラムを指定します。変更イベントが取得されると、TiDB Cloud Lake はこのキーを使用して、新しい行を挿入するか既存の行を更新するかを判断します。通常は、ソーステーブルの主キーを指定します。

Sync Interval

同期間隔(秒)は、取得した変更をターゲットテーブルにどのくらいの頻度でマージするかを制御します。間隔を短くするとレイテンシーは低くなりますが、リソース使用量が増える可能性があります。デフォルト値の 3 秒は、ほとんどのワークロードに適しています。

Batch Size

データロード中にバッチごとに処理する行数を制御します。この値を調整することで、大きなテーブルに対するスループットを最適化できます。システムデフォルトを使用する場合は空欄のままにしてください。

Allow Delete

有効にすると(CDC モードのデフォルト)、PostgreSQL WAL から取得した DELETE 操作が TiDB Cloud Lake 内のターゲットテーブルに適用されます。無効にすると、削除は無視され、ターゲットテーブルにはすべての履歴レコードが保持されます。これは、完全な監査証跡を維持したいシナリオで役立ちます。

このページは役に立ちましたか?