すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:ApsaraDB RDS for PostgreSQL から ApsaraDB for SelectDB へのデータ移行

最終更新日:Dec 28, 2025

Data Transmission Service (DTS) は、自主管理 PostgreSQL データベースや ApsaraDB RDS for PostgreSQL インスタンスなどの PostgreSQL データベースから、大規模なデータ分析のために ApsaraDB for SelectDB へのデータ移行をサポートします。このトピックでは、ソースデータベースとして ApsaraDB RDS for PostgreSQL インスタンスを使用した手順について説明します。

前提条件

ソースの ApsaraDB RDS for PostgreSQL インスタンスよりも多くのストレージ容量を持つ、移行先の ApsaraDB for SelectDB インスタンスを作成します。詳細については、「インスタンスの作成」をご参照ください。

注意事項

タイプ

説明

ソースデータベースの制限

  • 帯域幅の要件:ソースデータベースが存在するサーバーには、十分なアウトバウンド帯域幅が必要です。そうでない場合、データ移行速度に影響が出ます。

  • 移行オブジェクトの要件:

    • 移行するすべてのテーブルにプライマリキーまたは一意制約がある場合:

      テーブルフィールドが一意であることを確認してください。そうでない場合、ターゲットデータベースに重複データが存在する可能性があります。

      説明

      宛先テーブルが DTS によって作成されていない場合 (つまり、移行タイプスキーマ移行 を選択しなかった場合)、テーブルにソーステーブルと同じプライマリキーまたは空でない一意制約があることを確認する必要があります。そうでない場合、ターゲットデータベースに重複データが出現する可能性があります。

    • 移行オブジェクトにプライマリキーも一意制約もないテーブルが含まれる場合:

      インスタンスを設定する際、移行タイプスキーマ移行 を選択し、テーブル・列設定 ステップで、テーブルの エンジンの選択[duplicate] に設定することを推奨します。そうでない場合、インスタンスが失敗したり、データ損失が発生したりする可能性があります。

      説明

      スキーマ移行中、DTS は宛先テーブルにフィールドを追加します。詳細については、「追加列に関する情報」をご参照ください。

    • 移行するデータベースの名前にハイフン (-) を含めることはできません (例:dts-testdata)。

  • テーブルレベルでオブジェクトを移行し、列名のマッピングなどで編集する必要がある場合、単一のデータ移行タスクは最大 1,000 テーブルまでサポートします。この制限を超えると、タスクを送信した後にエラーが報告されます。この場合、テーブルを複数の移行タスクに分割するか、データベース全体を移行するタスクを設定してください。

  • 増分移行の場合、先行書き込みログ (WAL):

    • 有効にする必要があります。wal_level パラメーターを logical に設定します。

    • 増分移行タスクの場合、DTS はソースデータベースの WAL ログを 24 時間以上保持することを要求します。完全移行と増分移行の両方を含むタスクの場合、DTS は WAL ログを少なくとも 7 日間保持することを要求します。完全移行が完了した後、ログ保持期間を 24 時間以上に変更できます。そうでない場合、DTS が WAL ログを取得できないため、タスクが失敗する可能性があります。極端な場合、これによりデータ不整合やデータ損失が発生する可能性があります。DTS が要求するよりも短いログ保持期間に起因する問題は、DTS サービスレベル契約 (SLA) の対象外です。

  • ソースデータベースでの操作上の制限:

    • ソースデータベースが自主管理 PostgreSQL データベースであり、プライマリ/セカンダリのスイッチオーバーが実行された場合、データ移行タスクは失敗します。

    • 移行タスクが期待どおりに実行され、フェールオーバーによる論理レプリケーションの中断を防ぐために、RDS for PostgreSQL は論理レプリケーションスロットのフェールオーバーをサポートし、有効にする必要があります。これを設定する方法については、「論理レプリケーションスロットのフェールオーバー」をご参照ください。

    • 完全移行中は、データベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。そうでない場合、データ移行タスクは失敗します。

    • ソースデータベースの論理レプリケーションの制限により、移行中に移行される単一の増分データが 256 MB を超える場合、DTS インスタンスが失敗し、回復できなくなる可能性があります。DTS インスタンスを再設定する必要があります。

    • 完全データ移行のみを実行する場合、ソースデータベースに新しいデータを書き込まないでください。そうでない場合、ソースデータベースとターゲットデータベースの間でデータ不整合が発生します。リアルタイムのデータ整合性を確保するには、[完全データ移行] と [増分データ移行] を選択してください。

  • ソースデータベースに長時間トランザクションがあり、インスタンスが増分移行を実行する場合、トランザクションコミット前の先行書き込みログ (WAL) がクリアされないことがあります。これにより、ログが蓄積され、ソースデータベースのディスク領域が不足する可能性があります。

  • DTS インスタンスの実行中にソースデータベースでメジャーエンジンバージョンのアップグレードを実行すると、インスタンスは失敗し、回復できなくなります。DTS インスタンスを再設定する必要があります。

その他の制限

  • 現在、SelectDB インスタンスでは Unique または Duplicate エンジンを使用するテーブルにのみデータを移行できます。

    宛先テーブルが Unique エンジンを使用する場合

    宛先テーブルが Unique エンジンを使用する場合、宛先テーブルのすべての一意キーがソーステーブルにも存在し、移行オブジェクトに含まれていることを確認してください。そうでない場合、データ不整合が発生する可能性があります。

    宛先テーブルが Duplicate エンジンを使用する場合

    宛先テーブルが Duplicate エンジンを使用する場合、以下のケースでターゲットデータベースに重複データが存在する可能性があります。追加列 (_is_deleted、_version、および _record_id) に基づいて重複データを削除できます:

    • 移行インスタンスがリトライされた。

    • 移行インスタンスが再起動された。

    • 移行インスタンスの開始後、移行対象の同じデータレコードに対して 2 つ以上の DML 操作が実行された。

      説明

      宛先テーブルが Duplicate エンジンを使用する場合、DTS は UPDATE または DELETE 文を INSERT 文に変換します。

  • 選択中のオブジェクト ボックスでパラメーターを設定する場合、現在設定できるのは bucket_count パラメーター (バケット数) のみです。

    説明

    bucket_count パラメーターの値は正の整数のみです。デフォルト値は [auto] です。

  • SelectDB インスタンスは、文字で始まるデータベース名とテーブル名のみをサポートします。移行するデータベースまたはテーブルの名前が文字で始まらない場合は、マッピング機能を使用して名前を変更する必要があります。

  • 移行オブジェクト (データベース、テーブル、または列) の名前に中国語の文字が含まれている場合は、マッピング機能を使用して名前を英語などに変更する必要があります。そうでない場合、タスクが失敗する可能性があります。

  • 一度に複数の列を変更する DDL 操作や、同じテーブルを連続して変更する DDL 操作は移行できません。

  • 1 つの移行インスタンスで移行できるデータベースは 1 つだけです。複数のデータベースを移行するには、データベースごとに移行インスタンスを設定する必要があります。

  • DTS は、TimescaleDB 拡張テーブルやクロススキーマ継承を持つテーブルの移行をサポートしていません。

  • DTS インスタンスが増分データ移行タスクを実行する場合、データを書き込む前に、ソースデータベースの移行対象テーブルで ALTER TABLE schema.table REPLICA IDENTITY FULL; コマンドを実行する必要があります。これは、以下の 2 つのシナリオに適用され、データ整合性を確保します。このコマンドの実行中は、テーブルロック操作を実行しないことを推奨します。そうしないと、テーブルがロックされる可能性があります。事前チェックで関連するチェックをスキップした場合、DTS はインスタンスの初期化中にこのコマンドを自動的に実行します。

    • インスタンスが初めて実行されるとき。

    • 移行オブジェクトの粒度がスキーマであり、移行対象のスキーマに新しいテーブルが作成されるか、RENAME コマンドを使用して移行対象のテーブルが再構築されるとき。

    説明
    • コマンドでは、schematable を移行するデータのスキーマ名とテーブル名に置き換えてください。

    • この操作はオフピーク時に実行することを推奨します。

  • 完全データ移行中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースの一部を消費します。これにより、データベースの負荷が増加する可能性があります。データ移行を開始する前に、ソースデータベースとターゲットデータベースのパフォーマンスを評価してください。データ移行はオフピーク時に実行してください。たとえば、ソースデータベースとターゲットデータベースの CPU 負荷が 30% 未満のときにデータ移行を実行します。

  • データ移行中に、SelectDB データベースにバックエンド (BE) ノードを追加しないでください。そうしないと、タスクが失敗します。移行インスタンスを再起動して、失敗したタスクを回復できる場合があります。

  • データ移行中に、移行先の SelectDB インスタンスに新しいクラスターを作成しないでください。そうしないと、タスクが失敗します。移行インスタンスを再起動して、失敗したタスクを回復できる場合があります。

  • 複数のソーステーブルから単一の宛先テーブルにデータを移行する複数テーブルのマージシナリオでは、ソーステーブルが同じスキーマを持つことを確認してください。そうでない場合、データ不整合やタスクの失敗が発生する可能性があります。

  • DTS はデータ内容を検証しますが、現在、シーケンスなどのメタデータの検証はサポートしていません。このメタデータはご自身で検証する必要があります。

  • DTS は、増分データの DDL 文、増分テーブルの構造、およびハートビート情報を取得するために、ソースデータベースに以下の一時テーブルを作成します。移行中にこれらの一時テーブルを削除しないでください。そうしないと、DTS タスクが異常になります。一時テーブルは、DTS インスタンスがリリースされた後に自動的に削除されます。

    public.dts_pg_classpublic.dts_pg_attributepublic.dts_pg_typepublic.dts_pg_enumpublic.dts_postgres_heartbeatpublic.dts_ddl_commandpublic.dts_args_session、および public.aliyun_dts_instance

  • 増分データ移行中、DTS はデータをレプリケートするために、ソースデータベースにプレフィックス dts_sync_ を持つレプリケーションスロットを作成します。このレプリケーションスロットを使用して、DTS は過去 15 分以内のソースデータベースから増分ログを取得できます。データ移行が失敗した場合、または移行インスタンスがリリースされた場合、DTS はこのレプリケーションスロットを自動的にクリアしようとします。

    説明
    • データ移行中にタスクが使用するソースデータベースアカウントのパスワードを変更したり、ソースデータベースのホワイトリストから DTS の IP アドレスを削除したりすると、レプリケーションスロットは自動的にクリアできません。この場合、ソースデータベースで手動でレプリケーションスロットをクリアして、それが蓄積されてディスク領域を占有し、ソースデータベースが利用できなくなるのを防ぐ必要があります。

    • ソースデータベースでフェールオーバーが発生した場合は、セカンダリデータベースにログインして手動でスロットをクリアする必要があります。

  • パーティションテーブルを移行する場合、親テーブルとその子パーティションの両方を同期オブジェクトとして含める必要があります。そうでない場合、パーティションテーブルでデータ不整合が発生する可能性があります。

    説明

    PostgreSQL パーティションテーブルの親テーブルは直接データを保存しません。すべてのデータは子パーティションに保存されます。同期タスクには、親テーブルとそのすべての子パーティションを含める必要があります。そうでない場合、子パーティションのデータが同期されず、ソースと宛先の間でデータ不整合が発生する可能性があります。

  • インスタンスが失敗した場合、DTS ヘルプデスクは 8 時間以内にインスタンスの回復を試みます。回復プロセス中に、インスタンスの再起動やパラメーターの調整などの操作が実行される場合があります。

    説明

    パラメーターが調整される場合、DTS インスタンスのパラメーターのみが変更され、データベースのパラメーターは変更されません。変更される可能性のあるパラメーターには、「インスタンスパラメーターの変更」で説明されているものが含まれますが、これらに限定されません。

特殊なケース

  • ソースインスタンスが RDS for PostgreSQL インスタンスの場合、移行中にそのエンドポイントまたはゾーンを変更しないでください。そうしないと、移行が失敗します。

  • ソースインスタンスが自主管理 PostgreSQL データベースの場合、`max_wal_senders` および `max_replication_slots` パラメーターの値が、現在使用中のレプリケーションスロットの数と、このデータベースをソースとして作成される DTS インスタンスの数の合計よりも大きいことを確認してください。

  • ソースインスタンスが Google Cloud Platform Cloud SQL for PostgreSQL の場合、ソースデータベースの データベースアカウント に `cloudsqlsuperuser` 権限を持つアカウントを指定する必要があります。移行オブジェクトを選択する際には、このアカウントが管理権限を持つオブジェクトを選択するか、移行するオブジェクトに対してこのアカウントに Owner 権限を付与する必要があります (たとえば、GRANT <owner_of_objects_to_migrate> TO <source_db_account_for_task> コマンドを実行して、このアカウントがオブジェクトの所有者として関連操作を実行できるようにします)。

    説明

    `cloudsqlsuperuser` 権限を持つアカウントは、別の `cloudsqlsuperuser` 権限を持つアカウントが所有するデータを管理できません。

課金

移行タイプ

リンク設定料金

データ転送料金

スキーマ移行と完全データ移行

無料。

この例では無料です。

増分データ移行

有料です。詳細については、「課金の概要」をご参照ください。

増分移行でサポートされる SQL 操作

操作タイプ

SQL 文

DML

INSERT、UPDATE、DELETE

DDL

ADD COLUMN、DROP COLUMN

データベースアカウントに必要な権限

データベース

必要な権限

アカウントの作成と権限付与の方法

ソース ApsaraDB RDS for PostgreSQL インスタンス

移行対象データベースの所有者である特権アカウント。

アカウントの作成 および データベースの作成

宛先 SelectDB インスタンス

クラスターへのアクセス権限 (Usage_priv) およびデータベースに対する読み取り/書き込み権限 (Select_priv、Load_priv、Alter_priv、Create_priv、および Drop_priv)。

クラスター権限管理 および 基本権限管理

操作手順

  1. 次のいずれかの方法で [データ移行] ページに移動し、データ移行インスタンスが存在するリージョンを選択します。

    DTS コンソール

    1. DTS コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、データの移行 をクリックします。

    3. ページの左上隅で、データ移行インスタンスが存在するリージョンを選択します。

    DMS コンソール

    説明

    実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。

    1. DMS コンソールにログインします。

    2. 上部のナビゲーションバーで、ポインターを [データ + AI] > [DTS] > [データ移行] に移動します。

    3. [データ移行タスク] の右側にあるドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。

  2. タスクの作成 をクリックして、タスク設定ページに移動します。

  3. ソースデータベースとターゲットデータベースを設定します。次の表にパラメーターを示します。

    カテゴリ

    設定

    説明

    なし

    タスク名

    DTS は自動的にタスク名を生成します。簡単に識別できるように、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。

    移行元データベース

    既存の接続情報の選択

    • DTS に登録されているデータベースインスタンスを使用する場合、ドロップダウンリストからインスタンスを選択します。DTS はインスタンスの次のデータベースパラメーターを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • DTS へのインスタンス登録に失敗した場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を設定する必要があります。

    データベースタイプ

    PostgreSQL を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    ソース ApsaraDB RDS for PostgreSQL インスタンスが存在するリージョンを選択します。

    Alibaba Cloud アカウント間でデータを複製

    この例では、現在の Alibaba Cloud アカウントのデータベースインスタンスが使用されます。× を選択します。

    インスタンス ID

    ソース ApsaraDB RDS for PostgreSQL インスタンスの ID を選択します。

    データベース名

    ソース ApsaraDB RDS for PostgreSQL インスタンスで移行するオブジェクトを含むデータベースの名前を入力します。

    データベースアカウント

    ソース ApsaraDB RDS for PostgreSQL インスタンスのデータベースアカウントを入力します。必要な権限の詳細については、「データベースアカウントに必要な権限」をご参照ください。

    データベースのパスワード

    データベースアカウントに対応するパスワードを入力します。

    移行先データベース

    既存の接続情報の選択

    • DTS に登録されているデータベースインスタンスを使用する場合、ドロップダウンリストからインスタンスを選択します。DTS はインスタンスの次のデータベースパラメーターを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • DTS へのインスタンス登録に失敗した場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を設定する必要があります。

    データベースタイプ

    [SelectDB] を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    宛先 SelectDB インスタンスが存在するリージョンを選択します。

    Alibaba Cloud アカウント間でデータを複製

    この例では、現在の Alibaba Cloud アカウントのデータベースインスタンスが使用されます。× を選択します。

    インスタンス ID

    宛先 SelectDB インスタンスの ID を選択します。

    データベースアカウント

    宛先 SelectDB インスタンスのデータベースアカウントを入力します。必要な権限の詳細については、「データベースアカウントに必要な権限」をご参照ください。

    データベースのパスワード

    データベースインスタンスへのアクセスに使用するパスワード。

  4. ページの下部で、[接続をテストして続行] をクリックします。

    説明
    • DTS サーバーからのアクセスを許可するために、DTS サーバーの CIDR ブロックがソースデータベースとターゲットデータベースのセキュリティ設定に自動または手動で追加されていることを確認してください。詳細については、「DTS サーバーの IP アドレスをホワイトリストに追加する」をご参照ください。

    • ソースまたはターゲットデータベースが自己管理データベースであり、その アクセス方法Alibaba Cloud インスタンス に設定されていない場合、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックします。

  5. 移行するオブジェクトを設定します。

    1. オブジェクト設定 ページで、移行するオブジェクトを設定します。

      設定

      説明

      移行タイプ

      • 完全データ移行のみを実行する場合は、スキーマ移行完全データ移行 を選択します。

      • ゼロダウンタイム移行を実行するには、スキーマ移行完全データ移行、および 増分データ移行 を選択します。

      重要
      • PostgreSQL データベースから SelectDB インスタンスへのデータ移行中、データ型が変換されます。スキーマ移行 を選択しない場合は、事前に宛先の SelectDB インスタンスに Unique または Duplicate モデルを使用し、必要な構造を持つテーブルを作成する必要があります。詳細については、「データ型のマッピング」、「追加列に関する情報」、および「データモデル」をご参照ください。

      • 増分データ移行 を選択した場合、データ整合性を確保するために、データ移行中にソースインスタンスに新しいデータを書き込まないでください。

      競合するテーブルの処理モード

      • エラーの事前チェックと報告:ターゲットデータベースに同じ名前のテーブルが存在するかどうかをチェックします。同じ名前のテーブルが存在しない場合、このチェック項目は合格します。同じ名前のテーブルが存在する場合、事前チェックフェーズでエラーが報告され、データ移行タスクは開始されません。

        説明

        ターゲットデータベースで同じ名前のテーブルを削除または名前変更できない場合は、ターゲットデータベースでテーブルの名前を変更できます。詳細については、「テーブル名と列名のマッピング」をご参照ください。

      • エラーを無視して続行:ターゲットデータベースに同じ名前のテーブルが存在するかどうかのチェックをスキップします。

        警告

        エラーを無視して続行 を選択すると、データ不整合が発生し、ビジネスにリスクをもたらす可能性があります。例:

        • テーブルスキーマが一致し、DTS がターゲットデータベースでソースデータベースのレコードと同じプライマリキー値を持つレコードに遭遇した場合、DTS は宛先クラスターのレコードを保持しません。ソースデータベースのレコードがターゲットデータベースのレコードを上書きします。

        • テーブルスキーマが一致しない場合、一部の列のデータのみが移行されるか、移行が失敗する可能性があります。注意して進めてください。

      移行先インスタンスでのオブジェクト名の大文字化

      宛先インスタンスのデータベース名、テーブル名、列名の大文字/小文字。デフォルトでは、[DTS のデフォルトポリシー] が選択されています。オブジェクト名の大文字/小文字がソースまたはターゲットデータベースのものと一致するように、他のオプションを選択できます。詳細については、「宛先インスタンスのオブジェクト名の大文字/小文字を指定する」をご参照ください。

      ソースオブジェクト

      ソースオブジェクト セクションから 1 つ以上のオブジェクトを選択します。向右小箭头 アイコンをクリックして、オブジェクトを 選択中のオブジェクト セクションに追加します。

      説明

      スキーマまたはテーブルレベルで移行オブジェクトを選択できます。

      選択中のオブジェクト

      • 宛先インスタンスで移行するオブジェクトの名前を指定したり、宛先インスタンスでデータを受信するオブジェクトを指定したりするには、選択中のオブジェクト セクションでオブジェクトを右クリックします。詳細については、「オブジェクト名のマッピング」をご参照ください。

      • 移行対象として選択されている 1 つ以上のオブジェクトを削除するには、選択中のオブジェクト セクションでオブジェクトをクリックし、image アイコンをクリックしてオブジェクトを ソースオブジェクト セクションに移動します。

      • 移行タイプ として スキーマ移行 を選択した場合、テーブルレベルで移行するオブジェクトを選択する必要があります。次に、バケット数 (bucket_count パラメーター) を設定する必要があります。これを行うには、選択中のオブジェクト リストでテーブルを右クリックします。パラメーター設定 セクションで、パラメーター設定の有効化 に設定し、要件に基づいて パラメーター値 を指定してから、[OK] をクリックします。

      説明
      • オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの移行が失敗する可能性があります。

      • WHERE 条件を指定してデータをフィルタリングするには、選択中のオブジェクト セクションでテーブルを右クリックします。表示されるダイアログボックスで、条件を指定します。詳細については、「フィルター条件の設定」をご参照ください。

      • 増分移行の SQL 操作を選択するには、選択中のオブジェクト セクションでオブジェクトを右クリックします。表示されるダイアログボックスで、移行する SQL 操作を選択します。

    2. 詳細設定へ をクリックして、詳細設定を行います。

      設定

      説明

      タスクのスケジュールに使用する専用クラスターの選択

      デフォルトでは、専用クラスターを指定しない場合、DTS はデータ移行タスクを共有クラスターにスケジュールします。データ移行タスクの安定性を向上させたい場合は、専用クラスターを購入してください。詳細については、「DTS 専用クラスターとは」をご参照ください。

      失敗した接続の再試行時間

      接続失敗時のリトライ時間範囲。データ移行タスク開始後にソースまたはターゲットデータベースへの接続に失敗した場合、DTS はリトライ時間範囲内ですぐに接続をリトライします。有効な値:10~1,440。単位:分。デフォルト値:720。パラメーターを 30 より大きい値に設定することを推奨します。指定されたリトライ時間範囲内に DTS がソースおよびターゲットデータベースに再接続された場合、DTS はデータ移行タスクを再開します。そうでない場合、データ移行タスクは失敗します。

      説明
      • 同じソースまたはターゲットデータベースを共有する複数のデータ移行タスクに異なるリトライ時間範囲を指定した場合、後で指定された値が優先されます。

      • DTS が接続をリトライする際、DTS インスタンスに対して課金されます。ビジネス要件に基づいてリトライ時間範囲を指定することを推奨します。また、ソースデータベースと宛先インスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースすることもできます。

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。

      その他の問題に対するリトライ時間範囲。たとえば、データ移行タスク開始後に DDL または DML 操作の実行に失敗した場合、DTS はリトライ時間範囲内ですぐに操作をリトライします。有効な値:1~1440。単位:分。デフォルト値:10。パラメーターを 10 より大きい値に設定することを推奨します。指定されたリトライ時間範囲内に失敗した操作が正常に実行された場合、DTS はデータ移行タスクを再開します。そうでない場合、データ移行タスクは失敗します。

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメーターの値は、失敗した接続の再試行時間 パラメーターの値より小さくする必要があります。

      完全移行率を制限するかどうか

      完全データ移行の速度制限を有効にするかどうかを指定します。完全データ移行中、DTS はソースおよびターゲットデータベースの読み取り/書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。ビジネス要件に基づいて、完全データ移行の速度制限を有効にできます。速度制限を設定するには、1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを設定する必要があります。これにより、ターゲットデータベースサーバーの負荷が軽減されます。

      説明

      このパラメーターは、移行タイプ パラメーターで 完全データ移行 を選択した場合にのみ設定できます。

      増分移行率を制限するかどうか

      増分データ移行の速度制限を有効にするかどうかを指定します。速度制限を設定するには、1 秒あたりの増分移行の行数 RPS および 1 秒あたりの増分移行データ量 (MB) BPS パラメーターを設定する必要があります。これにより、ターゲットデータベースサーバーの負荷が軽減されます。

      説明

      このパラメーターは、移行タイプ パラメーターで 増分データ移行 を選択した場合にのみ設定できます。

      環境タグ

      インスタンスを識別するために環境タグを選択できます。この例では、タグを選択する必要はありません。

      ETL 機能の設定

      抽出・変換・書き出し (ETL) 機能を有効にするかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効な値:

      監視アラート

      データ移行タスクのアラートを設定するかどうかを指定します。タスクが失敗した場合、または移行遅延が指定されたしきい値を超えた場合、アラート連絡先は通知を受け取ります。有効な値:

      • [いいえ]:アラートを設定しません。

      • はい: アラートを設定します。 この場合、アラートのしきい値とアラート通知設定も設定する必要があります。 詳細については、監視とアラートの設定 Topic の「DTS タスクの作成時に監視とアラートを設定する」セクションをご参照ください。

    3. オプション:上記の設定を完了した後、次:データベースおよびテーブルのフィールド設定 をクリックして、宛先テーブルの プライマリキー列の追加配布キー、および エンジンの選択 を設定します。

      説明
      • このステップは、タスクオブジェクトを設定する際に 移行タイプ として スキーマ移行 を選択した場合にのみ利用可能です。定義ステータスすべて に設定して変更を行うことができます。

      • プライマリキー列の追加 は、複数の列で構成される複合プライマリキーにすることができます。配布キー として機能させるために、プライマリキー列の追加 から 1 つ以上の列を選択する必要があります。

      • プライマリキーも一意制約もないテーブルの場合、エンジンの選択[duplicate] に設定してください。そうしないと、インスタンスの障害やデータ損失が発生する可能性があります。

  6. タスク設定を保存し、事前チェックを実行します。

    • DTS タスクを設定するために該当する API 操作を呼び出す際に指定するパラメーターを表示するには、次:タスク設定の保存と事前チェック にポインターを合わせ、OpenAPI パラメーターのプレビュー をクリックします。

    • パラメーターを表示する必要がない場合、または表示済みの場合、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。

    説明
    • データ移行タスクを開始する前に、DTS は事前チェックを実行します。タスクが事前チェックに合格した後にのみ、データ移行タスクを開始できます。

    • タスクが事前チェックに合格しなかった場合、失敗した各項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析した後、問題をトラブルシューティングします。その後、再度事前チェックを実行します。

    • 事前チェック中に項目に対してアラートがトリガーされた場合:

      • アラート項目が無視できない場合、失敗した項目の横にある [詳細の表示] をクリックし、問題をトラブルシューティングします。その後、再度事前チェックを実行します。

      • アラート項目が無視できる場合、[アラート詳細の確認] をクリックします。[詳細の表示] ダイアログボックスで、[無視] をクリックします。表示されるメッセージで、[OK] をクリックします。その後、[再度事前チェック] をクリックして、再度事前チェックを実行します。アラート項目を無視すると、データ不整合が発生し、ビジネスに潜在的なリスクがもたらされる可能性があります。

  7. インスタンスを購入します。

    1. [成功率][100%] になるまで待ちます。その後、[次へ:インスタンスの購入] をクリックします。

    2. [インスタンスの購入] ページで、データ移行インスタンスの [インスタンスクラス] パラメーターを設定します。次の表にパラメーターを示します。

      セクション

      パラメーター

      説明

      新しいインスタンスクラス

      リソースグループ

      データ移行インスタンスが属するリソースグループ。デフォルト値:[デフォルトリソースグループ]。詳細については、「Resource Management とは」をご参照ください。

      インスタンスクラス

      DTS は、移行速度が異なるインスタンスクラスを提供します。ビジネスシナリオに基づいてインスタンスクラスを選択できます。詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。

    3. チェックボックスを選択して、[Data Transmission Service (従量課金) 利用規約] を読み、同意します。

    4. [購入して開始] をクリックします。表示されたメッセージで、、[OK] をクリックします。

      [データ移行] ページでタスクの進行状況を表示できます。

      説明
      • データ移行タスクが増分データを移行するために使用できない場合、タスクは自動的に停止します。[ステータス] セクションに [完了] が表示されます。

      • データ移行タスクが増分データを移行するために使用できる場合、タスクは自動的に停止しません。増分データ移行タスクは決して停止または完了しません。[ステータス] セクションに [実行中] が表示されます。

データ型のマッピング

カテゴリ

PostgreSQL データ型

SelectDB データ型

NUMERIC

SMALLINT

SMALLINT

INTEGER

INT

BIGINT

BIGINT

DECIMAL

DECIMAL

NUMERIC

DECIMAL

REAL

DOUBLE

DOUBLE

DOUBLE

SMALLSERIAL

SMALLINT

SERIAL

INT

BIGSERIAL

BIGINT

MONETARY

MONEY

STRING

CHARACTER

  • CHAR(n)

  • VARCHAR(n)

VARCHAR

重要

データ損失を防ぐため、CHAR(n) および VARCHAR(n) 型のデータは、SelectDB インスタンスに移行された後、VARCHAR(4*n) に変換されます。

  • データ長が指定されていない場合、SelectDB のデフォルト値である VARCHAR(65533) が使用されます。

  • データ長が 65533 を超える場合、データは SelectDB に移行された後、STRING に変換されます。

TEXT

STRING

BINARY

BYTEA

STRING

DATE AND TIME

TIMESTAMP [(P)] [WITHOUT TIME ZONE]

DATETIMEV2

TIMESTAMP [(P)] WITH TIME ZONE

DATETIMEV2

DATE

DATEV2

TIME [(P)] [WITHOUT TIME ZONE]

VARCHAR(50)

TIME [(P)] WITH TIME ZONE

VARCHAR(50)

INTERVAL [FIELDS] [(P)]

STRING

BOOLEAN

BOOLEAN

BOOLEAN

GEOMETRIC

  • POINT

  • LINE

  • LSEG

  • BOX

  • PATH

  • POLYGON

  • CIRCLE

STRING

NETWORK ADDRESS

  • CIDR

  • INET

  • MACADDR

  • MACADDR8

STRING

TEXT SEARCH

TSVECTOR

STRING

XML

XML

STRING

JSON

JSON

JSON

追加列に関する情報

説明

次の表は、DTS によって自動的に追加されるか、Duplicate モデルを使用する宛先テーブルに手動で追加する必要がある追加列について説明しています。

名前

データ型

デフォルト値

説明

_is_deleted

Int

0

データが削除されたかどうかを示します。

  • Insert:値は 0 です。

  • Update:値は 0 です。

  • Delete:値は 1 です。

_version

Bigint

0

  • 完全データ移行の場合:値は 0 です。

  • 増分データ移行の場合:値は、ソースデータベースのバイナリログ内の対応するタイムスタンプ (秒単位) です。

_record_id

Bigint

0

  • 完全データ移行の場合:値は 0 です。

  • 増分データ移行の場合:値は増分ログ内のレコード ID です。この ID はログを一意に識別します。

    説明

    ID 値は一意で増分します。