Data Transmission Service (DTS) を使用して、PolarDB for PostgreSQL クラスターからの INSERT、UPDATE、DELETE 操作をリアルタイムで追跡します。タスクが実行中になると、ダウンストリームのコンシューマーは SDK、Flink、または Kafka クライアントを用いて変更ストリームをサブスクライブできます。
制限事項
開始前にこれらの制限事項を確認してください。本セクションにおける誤設定は、タスク失敗およびデータの不整合を引き起こす最も一般的な原因です。
ソースデータベース
| 制限事項 | 影響 | 操作 |
|---|---|---|
| 主キーまたは一意制約 | ソーステーブルには、すべてのフィールドが一意である PRIMARY KEY または一意制約 (UNIQUE constraint) が必要です。該当する制約がない場合、一部の追跡対象変更が重複する可能性があります。 | タスク作成前に、各追跡対象テーブルに PRIMARY KEY または一意制約を追加してください。 |
| テーブル数 | 1 つの変更追跡タスクでは最大 500 テーブルまで追跡可能です。この上限を超えるとリクエストエラーが発生します。 | 異なるテーブルグループごとに個別のタスクを作成するか、個々のテーブルではなくデータベース全体を追跡してください。 |
| WAL ログ保持期間 | WAL ログは 24 時間以上保持する必要があります。保持期間が短いと、DTS がログの読み取りに失敗し、タスク失敗またはデータの不整合を招く可能性があります。 | タスク開始前に、ソースクラスターの WAL ログ保持期間を最低でも 24 時間に設定してください。 |
| 読み取り専用または一時インスタンス | ソースが読み取り専用または一時インスタンスの場合、トランザクションログの記録を有効にする必要があります。 | インスタンス上でトランザクションログの記録を有効にしてください。 |
その他の制限事項
| 制限事項 | 詳細 |
|---|---|
| 1 タスクあたり 1 データベース | 1 つの変更追跡タスクでは、1 つのデータベースからのみデータを追跡できます。データベースごとに個別のタスクを作成してください。 |
| ハートビートテーブル | DTS は、正確な遅延測定を維持するために、ソースデータベースに dts_postgres_heartbeat という名前のハートビートテーブルを追加します。 |
| FLOAT および DOUBLE 精度 | DTS は FLOAT および DOUBLE 値を ROUND(COLUMN,PRECISION) を用いて取得します。精度が指定されていない場合、FLOAT はデフォルトで 38 桁、DOUBLE はデフォルトで 308 桁となります。タスク開始前に、これらのデフォルト値が要件を満たすことを確認してください。 |
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
PolarDB for PostgreSQL クラスター。詳細については、「クラスターの作成」をご参照ください。
クラスターの
wal_levelパラメーターがlogicalに設定されていること。詳細については、「クラスターのパラメーターの指定」をご参照ください。クラスターの WAL ログ保持期間が 24 時間以上に設定されていること。
変更追跡タスクの作成
ステップ 1:変更追跡タスクページへ移動
Data Management (DMS) コンソール にログインします。
上部ナビゲーションバーで、DTS をクリックします。
左側ナビゲーションウィンドウで、DTS (DTS) > 変更追跡 を選択します。
DMS コンソールでシンプルモードを使用している場合、左上隅のアイコンにポインターを合わせ、すべての機能 > DTS > 変更追跡 の順に選択します。あるいは、DTS コンソール を直接開いても構いません。
ステップ 2:リージョンの選択
変更追跡タスク の右側にあるドロップダウンリストから、タスクを作成するリージョンを選択します。
DTS コンソールでは、変更追跡タスクページの Workbench の右側にあるドロップダウンリストからリージョンを選択します。
ステップ 3:ソースデータベースおよびコンシューマーネットワークの設定
タスクの作成 をクリックします。表示されたページで、以下のパラメーターを設定します。
続行する前に、ページ上部に表示される 制限事項 を必ずご確認ください。この手順をスキップすると、タスクが失敗したり、追跡されたデータがコンシュームされなくなる可能性があります。
ソースデータベース
| パラメーター | 説明 |
|---|---|
| タスク名 | 変更追跡タスクの名前です。DTS によりデフォルト名が自動的に割り当てられます。タスクを容易に識別できるよう、意味のある名前を付けてください。名前は一意である必要はありません。 |
| 既存のデータベース接続を選択 | 任意項目です。既存の接続を選択すると、DTS がその設定を自動的に適用します。この項目をスキップした場合は、以下のパラメーターを手動で設定してください。 |
| データベースタイプ | PolarDB for PostgreSQL を選択します。 |
| アクセス方法 | Alibaba Cloud インスタンス を選択します。 |
| インスタンスリージョン | ソース PolarDB for PostgreSQL クラスターが配置されているリージョンです。 |
| Alibaba Cloudアカウント全体でのデータの複製 | いいえ を選択します。選択可能なオプションは いいえ のみです。 |
| インスタンス ID | PolarDB for PostgreSQL クラスターの ID です。 |
| データベース名 | ソースデータベースの名前です。 |
| データベースアカウント | PolarDB for PostgreSQL データベースの特権アカウントです。 |
| データベースパスワード | データベースアカウントのパスワードです。 |
消費者ネットワークタイプ
| パラメーター | 説明 |
|---|---|
| ネットワークタイプ | 固定値は VPC です。VPC と vSwitch を選択します。詳細については、「VPC」をご参照ください。 |
タスク作成後にコンシューマーネットワークタイプを変更することはできません。変更追跡クライアントが VPC 内で実行される場合、ネットワーク遅延を最小限に抑えるため、同じ VPC および vSwitch を選択してください。
ステップ 4:接続性のテスト
接続性のテストと続行 をクリックします。
DTS は、Alibaba Cloud データベースインスタンスのホワイトリスト、または ECS でホストされるデータベースのセキュリティグループルールに、自動的にその CIDR ブロックを追加します。データセンター内またはサードパーティプロバイダーがホストする自己管理データベースの場合、DTS の CIDR ブロックをデータベースのセキュリティ設定に手動で追加してください。詳細については、「DTS サーバーの CIDR ブロックをオンプレミスデータベースのセキュリティ設定に追加する」をご参照ください。
DTS の CIDR ブロックをホワイトリストまたはセキュリティグループに追加すると、セキュリティリスクが高まります。DTS を使用する前に、リスクを認識し、強力な認証情報の使用、公開ポートの制限、API 呼び出しの認証、ホワイトリストルールの定期的なレビュー、不正な CIDR ブロックの削除など、適切な対策を講じてください。インターネット経由ではなく、Express Connect、VPN Gateway、または Smart Access Gateway を介してデータベースと DTS を接続することも検討してください。
ステップ 5:オブジェクトの選択
追跡対象のデータベースまたはテーブルを選択します。
| パラメーター | 説明 |
|---|---|
| データ変更タイプ | データ更新 に固定されており、INSERT、DELETE、UPDATE 操作をカバーします。 |
| ソースオブジェクト | ソースオブジェクト リストからオブジェクトを選択し、 |
追跡範囲:
データベースレベル: DTS は、タスク開始後に追加されたテーブルを含むデータベース内のすべてのオブジェクトを追跡します。
テーブルレベル: DTS は指定されたテーブルのみを追跡します。後からテーブルを追加するには、「変更追跡の対象オブジェクトを変更する」をご参照ください。
ステップ 6:高度な設定の構成
次へ:高度な設定 をクリックします。
| パラメーター | 説明 |
|---|---|
| モニタリングおよびアラート | タスク失敗時または遅延がしきい値を超えた際に通知を受信する場合は、はい を選択します。アラートのしきい値および連絡先を指定してください。いいえ を選択すると、アラートはスキップされます。 |
| 失敗した接続の再試行時間 | タスクが失敗するまでの失敗接続に対する DTS の再試行期間です。範囲:10~1440 分。デフォルト:120 分。少なくとも 30 分に設定してください。この期間内に DTS が再接続できた場合、タスクは自動的に再開されます。 |
| ETL の構成 | ETL (抽出・変換・書き出し) 変換を適用するには、[はい] を選択します。コードエディタに処理ステートメントを入力します。詳細については、「データ移行または同期タスクで ETL を設定する」をご参照ください。[いいえ] を選択すると、ETL をスキップします。 |
1 つのデータベースインスタンスが複数の変更追跡タスクのソースとして使用される場合、それらのタスクで設定された最短の再試行時間が、すべてのタスクに適用されます。再試行中は DTS インスタンスの課金が継続されます。
ステップ 7:事前チェックの実行
次へ:タスク設定の保存と事前チェック をクリックします。
DTS はタスク開始前に事前チェックを実行します。事前チェックが成功した場合にのみ、タスクが開始されます。
事前チェック項目のいずれかが失敗した場合:
失敗した項目の横にある 詳細の表示 をクリックし、エラーメッセージに基づいて問題を修正した後、再チェック をクリックします。
無視可能なアラートをトリガーする項目の場合は、アラートの詳細の確認 をクリックします。ダイアログで 無視 をクリックし、OK をクリックした後、再チェック をクリックします。
このタスク設定に対応する OpenAPI パラメーターをプレビューするには、次へ:タスク設定の保存と事前チェック の上にポインターを合わせ、OpenAPI パラメーターのプレビュー をクリックします。
ステップ 8:事前チェックの完了を待機
成功率 が 100% になるまで待機し、その後 次へ:インスタンスの購入 をクリックします。
ステップ 9:課金方法の選択
インスタンスの購入 ページで、課金方法を選択します。
| 課金方法 | 推奨用途 | 詳細 |
|---|---|---|
| サブスクリプション | 長期利用 | 一定期間分の料金を前払いします。継続的なワークロードに対しては、従量課金よりもコスト効率が優れています。サブスクリプション期間(1~9 か月または 1~3 年)を設定し、必要に応じて自動更新を有効化できます。 |
| 従量課金 | 短期利用 | 時間単位で課金されます。不要になった時点でインスタンスを解放すれば、課金を停止できます。 |
ステップ 10:サービス利用規約への同意
Data Transmission Service (従量課金) サービス利用規約 を読み、チェックボックスをオンにしてください。
ステップ 11:タスクの開始
購入と開始 をクリックします。タスクはタスクリストに表示され、進行状況をモニターできます。
次のステップ
変更追跡タスクが実行中になったら、コンシューマーグループを設定し、追跡されたデータの消費を開始します。
コンシューマーグループを作成します。詳細については、「コンシューマーグループの作成」をご参照ください。
消費方法を選択します: