AI データ準備機能を使用すると、MySQL データベースから AnalyticDB for PostgreSQL インスタンスにデータを転送できます。このトピックでは、ソース RDS MySQL インスタンスを例として、この手順について説明します。
範囲
宛先の AnalyticDB for PostgreSQL インスタンスを作成済みであること。宛先インスタンスのストレージ容量は、ソース RDS MySQL インスタンスで使用されているストレージ容量よりも大きい必要があります。
説明[エンジンバージョン] を [7.0 Standard Edition] に設定します。[ノード仕様 (セグメント)] を [4C16G] 以上の仕様に設定します。[AI ノードスイッチ] を [有効] に設定します。[AI ノード数] を少なくとも [1] に設定します。
インスタンスの作成方法の詳細については、「インスタンスの作成」をご参照ください。
ターゲットの AnalyticDB for PostgreSQL インスタンスで ベクトル検索エンジンの最適化 が有効になっていること。
データを受信するために、宛先の AnalyticDB for PostgreSQL インスタンスにデータベース、スキーマ、およびプライマリキーを持つテーブルを作成済みであること。詳細については、「SQL 構文」および「データ型マッピング」をご参照ください。
説明宛先の AnalyticDB for PostgreSQL インスタンスのテーブル名と列名が、ソースデータベースのものと同じであることを確認してください。
注意事項
ソースデータベースの制限
帯域幅の要件: ソースデータベースをホストするサーバーには、少なくとも 100 Mbps の十分なアウトバウンド帯域幅が必要です。そうでない場合、データ転送速度が影響を受けます。
バイナリログの要件:
RDS MySQL インスタンスでは、バイナリログがデフォルトで有効になっています。
binlog_row_imageパラメーターがfullに設定されていることを確認してください。そうでない場合、事前チェックでエラーが報告され、データ準備タスクを開始できません。パラメーターの設定方法の詳細については、「インスタンスパラメーターの設定」をご参照ください。重要ソースインスタンスが自己管理 MySQL データベースの場合は、バイナリログを有効にします。次に、
binlog_formatパラメーターをrowに、binlog_row_imageパラメーターをfullに設定します。ソースがデュアルプライマリクラスター内の自己管理 MySQL データベースの場合は、
log_slave_updatesパラメーターを有効にします。これにより、DTS がすべてのバイナリログを取得できるようになります。詳細については、「自己管理 MySQL データベースのアカウントを作成し、バイナリログを構成する」をご参照ください。
RDS MySQL インスタンスのローカルバイナリログは、少なくとも 3 日間保持する必要があります。7 日間保持することをお勧めします。自己管理 MySQL データベースのローカルバイナリログは、少なくとも 7 日間保持する必要があります。そうでない場合、DTS がバイナリログを取得できないため、データ準備タスクが失敗する可能性があります。極端な場合には、データの不整合やデータ損失が発生する可能性があります。DTS の要件を満たさないバイナリログの保持期間に起因する問題は、DTS のサービスレベルアグリーメント (SLA) の対象外です。
説明RDS MySQL インスタンスのローカルバイナリログの [保持期間] の設定方法の詳細については、「ローカルログの自動削除」をご参照ください。
転送するオブジェクトの制限:
物理バックアップやリカバリ、カスケード操作によって生成されたデータなど、バイナリログに記録されない変更操作によって生成されたデータは、ターゲットデータベースに転送されません。
VARBIT、GEOMETRY、ARRAY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT、POINT 型のデータはサポートされていません。
プレフィックスインデックスは転送できません。
テーブルレベルでオブジェクトを転送し、テーブル名または列名をマッピングして編集する必要がある場合、1 つのデータ準備タスクでサポートされるテーブルは最大 1,000 個です。この制限を超える場合は、タスクを複数のタスクに分割するか、データベース全体に対してタスクを構成する必要があります。
ソースデータベースに日付型
0000-00-00 00:00:00のデータが含まれている場合、データ準備タスクが失敗する可能性があります。説明DTS は、ターゲットデータベースへの転送中にこの日付を
nullに変換します。ソースデータを一時的に0001-01-01 00:00:00に変更するか、ターゲットデータベースの対応するフィールドを null 値を許可するように設定できます。ソースデータベースが MySQL 8.0.23 以降で、転するデータに不可視列が含まれている場合、これらの列のデータを取得できないため、データ損失が発生する可能性があります。
説明ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;コマンドを使用して、不可視列を可視にします。詳細については、「不可視列」をご参照ください。プライマリキーのないテーブルは、自動的に不可視プライマリキーを生成します。この不可視プライマリキーも可視にする必要があります。詳細については、「生成された不可視プライマリキー」をご参照ください。
ソースデータベース操作の制限:
ソースデータベースが自己管理 MySQL データベースで、プライマリ/セカンダリフェールオーバーが発生した場合、データ準備タスクは失敗します。
データ準備タスク中は、
ALTER TABLE table_name COMMENT='table_comment';のようにプライマリキーを変更したり、コメントを追加したりする DDL 操作を実行しないでください。そうしないと、DDL 操作が失敗する可能性があります。
その他の制限
追記最適化 (AO) テーブルは、宛先テーブルとしてサポートされていません。
転送するテーブルにプライマリキーがある場合、宛先テーブルのプライマリキー列はソーステーブルのプライマリキー列と同じでなければなりません。転送するテーブルにプライマリキーがない場合、宛先テーブルにはプライマリキーが必要であり、それは分散キーと同じでなければなりません。
宛先テーブルの一意キー (プライマリキー列を含む) には、分散キーのすべての列が含まれている必要があります。
データ準備タスクを作成する前に、ソースデータベースとターゲットデータベースのパフォーマンスを評価してください。データ準備タスクはオフピーク時に開始してください。
DTS は、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS `test` コマンドを実行して、バイナリログのオフセットを進めます。
宛先テーブルの構造がソーステーブルと異なる場合、データ損失やタスクの失敗が発生する可能性があります。
DTS は、7 日未満実行されている失敗したデータ準備タスクを再開しようとします。したがって、ビジネスを宛先インスタンスに切り替える前に、タスクを停止またはリリースするか、
revokeコマンドを使用して、宛先インスタンスへのアクセスに使用される DTS アカウントの書き込み権限を取り消す必要があります。これにより、タスクが自動的に再開された後に、ソースデータが宛先インスタンスのデータを上書きするのを防ぎます。増分タスクのレイテンシは、現在の時刻とターゲットデータベースに書き込まれた最後のレコードのタイムスタンプとの差です。ソースデータベースが長期間更新されていない場合、レイテンシ情報が不正確になることがあります。タスクのレイテンシが高すぎる場合は、ソースデータベースで更新操作を実行してレイテンシ情報を更新できます。
インスタンスに障害が発生した場合、DTS ヘルプデスクは 8 時間以内にインスタンスの回復を試みます。回復プロセス中に、インスタンスの再起動やパラメーターの調整などの操作が実行される場合があります。
説明パラメーターが調整されるとき、DTS インスタンスのパラメーターのみが変更されます。データベースのパラメーターは変更されません。変更される可能性のあるパラメーターには、インスタンスパラメーターの変更で説明されているものが含まれますが、これらに限定されません。
課金
詳細については、「AI データ準備の課金方法」をご参照ください。
サポートされている SQL 操作
操作タイプ | SQL 操作文 |
DML | INSERT, UPDATE, DELETE |
データベースアカウントの権限要件
データベース | 必要な権限 | アカウントを作成して権限を付与する方法 |
ソース RDS MySQL インスタンス | 転送するデータに対する読み取りおよび書き込み権限。 | アカウントの作成 および アカウントの権限の変更。 |
宛先 AnalyticDB for PostgreSQL インスタンス | ターゲットデータベースに対する読み取りおよび書き込み権限。 | ユーザーの作成と管理 および ユーザー権限管理。 説明 初期アカウントまたは RDS_SUPERUSER 権限を持つアカウントを使用できます。 |
使用しているソースデータベースアカウントが RDS MySQL コンソールで作成および権限付与されていない場合は、そのアカウントに REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、および SELECT 権限があることを確認する必要があります。
手順
宛先リージョンのデータ準備タスクページに移動します。
左側のナビゲーションウィンドウで、データの準備 をクリックします。
ページの左上隅で、データ準備インスタンスが配置されているリージョンを選択します。
任意: データ準備タスク タブをクリックします。
タスクの作成 をクリックして、タスク構成ページに移動します。
ソースデータベースとターゲットデータベースを構成します。次の表にパラメーターを示します。
カテゴリ
構成
説明
なし
タスク名
DTS タスクの名前。DTS は自動的にタスク名を生成します。タスクを簡単に識別できるような、わかりやすい名前を指定することをお勧めします。一意のタスク名を指定する必要はありません。
移行元データベース
既存の接続情報の選択
システムに保存されているデータベースインスタンスを使用する場合は、ドロップダウンリストから選択します。データベース情報は自動的に構成されます。
データベースインスタンスをシステムに保存していない場合、または保存されているインスタンスを使用しない場合は、データベース情報を手動で構成する必要があります。
データベースタイプ
MySQL を選択します。
アクセス方法
Alibaba Cloud インスタンス を選択します。
インスタンスのリージョン
ソース RDS MySQL インスタンスのリージョンを選択します。
Alibaba Cloud アカウント間でデータを複製
この例では、現在の Alibaba Cloud アカウントのデータベースインスタンスが使用されます。× を選択します。
RDS インスタンス ID
ソース RDS MySQL インスタンスの ID を選択します。
データベースアカウント
ソース RDS MySQL インスタンスのデータベースアカウントを入力します。権限要件の詳細については、「データベースアカウントの権限要件」をご参照ください。
データベースのパスワード
データベースインスタンスへのアクセスに使用されるパスワード。
暗号化
データベースの構成に基づいて、非暗号化 または SSL 暗号化 を選択します。
説明RDS MySQL インスタンスの SSL 暗号化機能の詳細については、「クラウド証明書を使用して SSL 暗号化を迅速に有効にする」をご参照ください。
移行先データベース
既存の接続情報の選択
システムに保存されているデータベースインスタンスを使用する場合は、ドロップダウンリストから選択します。データベース情報は自動的に構成されます。
データベースインスタンスをシステムに保存していない場合、または保存されているインスタンスを使用しない場合は、データベース情報を手動で構成する必要があります。
データベースタイプ
AnalyticDB for PostgreSQL を選択します。
アクセス方法
Alibaba Cloud インスタンス を選択します。
インスタンスのリージョン
宛先の AnalyticDB for PostgreSQL インスタンスのリージョンを選択します。
インスタンス ID
宛先の AnalyticDB for PostgreSQL インスタンスの ID を選択します。
データベース名
データを受信する宛先の AnalyticDB for PostgreSQL インスタンス内のデータベースの名前を入力します。
データベースアカウント
宛先の AnalyticDB for PostgreSQL インスタンスのデータベースアカウントを入力します。権限要件の詳細については、「データベースアカウントの権限要件」をご参照ください。
データベースのパスワード
データベースへのアクセスに使用されるパスワード。
ページの下部で、[接続性のテストと続行] をクリックします。
説明DTS サーバーからのアクセスを許可するために、DTS サーバーの CIDR ブロックがソースデータベースとターゲットデータベースのセキュリティ設定に自動または手動で追加できることを確認してください。詳細については、「DTS サーバーの IP アドレスをホワイトリストに追加する」をご参照ください。
ソースまたはターゲットデータベースが自己管理データベースで、その アクセス方法 が Alibaba Cloud インスタンス に設定されていない場合は、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックします。
移行するオブジェクトを構成します。
オブジェクト設定 セクションで、転送するオブジェクトを構成します。
構成
説明
タスクステージ
必要なステップを選択します。完全な同期 と 増分同期 がサポートされています。
同期する DDL および DML 操作
インスタンスレベルで増分転送の SQL 操作を選択できます。
競合するテーブルの処理モード
構成は不要です。デフォルト設定のままにします。
ソースオブジェクト
ソースオブジェクト ボックスで、転送するオブジェクトをクリックし、
アイコンをクリックして 選択中のオブジェクト ボックスに移動します。説明ターゲットデータベースのテーブル名と列名がソースデータベースと同じ場合は、データベースまたはテーブルレベルでオブジェクトを選択できます。そうでない場合は、テーブルレベルでのみオブジェクトを選択できます。
選択中のオブジェクト
選択中のオブジェクト ボックスで、ソースオブジェクト ボックスから移動したデータベースを右クリックします。
[データベースの編集] ダイアログボックスで、[宛先データベース名] を、データを受信する宛先の AnalyticDB for PostgreSQL インスタンスのスキーマの名前に変更します。
[OK] をクリックします。
説明宛先の AnalyticDB for PostgreSQL インスタンスのテーブル名または列名がソースデータベースと異なる場合は、テーブルと列名のマッピング を使用して変更します。
データベースまたはテーブルレベルで転送する SQL 操作を選択するには、選択中のオブジェクト ボックスでオブジェクトを右クリックし、表示されるダイアログボックスで目的の SQL 操作を選択します。
WHERE 句を設定してデータをフィルタリングするには、選択中のオブジェクト ボックスでテーブルを右クリックし、表示されるダイアログボックスで フィルター条件を設定 します。
マッピング列 セクションで、データ準備操作によって生成されたベクトルデータを格納するマッピング列を構成します。
マッピング列の追加 をクリックします。
ソース (ライブラリ/テーブル/列) 列で、階層的にマッピングするソース列を選択します。
DTS は、ソース (ライブラリ/テーブル/列) での選択から、ターゲット (ライブラリ/テーブル) および ターゲットマッピング列 フィールドにデータベース、テーブル、および列を自動的に入力します。
任意: 必要に応じて、ターゲット (ライブラリ/テーブル) および ターゲットマッピング列 フィールドの情報を、ベクトルデータを格納する宛先の AnalyticDB for PostgreSQL インスタンスのデータベース、テーブル、および列の名前に変更します。
任意: 前の手順を繰り返して、複数のマッピング列を追加します。
[次のベクトル構成] をクリックします。
マッピング列の解析、チャンキング、および埋め込みポリシーを構成するには、次の手順に従います。
宛先マッピング列の行で、操作 列の 編集設定 をクリックします。
表示される 編集設定 パネルで、対応するポリシーセクションの 推奨されるポリシー を選択します。
推奨ポリシーを変更します。
ポリシー名
パラメーター名
説明
解析ポリシー
要素の保持
マッピング列のデータを要素レベルでフィルタリングします。これには、保持する要素と除外する要素が含まれます。準拠したデータは、宛先の AnalyticDB for PostgreSQL インスタンスのマッピング列に転送されます。
説明複数の要素はカンマ (,) で区切ります。
要素の除外
チャンキングポリシー
Chunk アルゴリズム
テキストをチャンクに分割するために使用されるアルゴリズム。
各 Chunk ブロックの最大文字数
テキストをチャンクに分割するときの各チャンクに含めることができる最大文字数 (ChunkSize)。
2つの Chunk ブロック間の最大重複文字数
テキストをチャンクに分割するときの隣接する 2 つのチャンク間で許容される最大重複文字数 (ChunkOverlap)。
Chunk 原文を保持する
元のチャンクテキストを保持するには、元のチャンクテキストを格納する宛先の AnalyticDB for PostgreSQL インスタンスの列の名前も入力する必要があります。
Chunk ID を保持する
チャンク ID を保持するには、チャンク ID を格納する宛先の AnalyticDB for PostgreSQL インスタンスの列の名前も入力する必要があります。
埋め込みポリシー
埋め込みモデルの選択
デフォルト値は [AnalyticDB-PostgreSQL] で、変更できません。
構成が完了したら、[OK] をクリックします。
次へ:詳細設定 をクリックして、詳細設定を構成します。
構成
説明
失敗した接続の再試行時間
データ準備タスクが開始された後、ソースまたはターゲットデータベースへの接続に失敗した場合、DTS はエラーを報告し、すぐに接続をリトライします。デフォルトのリトライ期間は 720 分です。10 から 1,440 分のカスタム期間を指定することもできます。期間を 30 分以上に設定することをお勧めします。指定された期間内に DTS がソースおよびターゲットデータベースに再接続すると、データ準備タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
説明DTS インスタンス A と DTS インスタンス B など、同じソースまたは宛先を持つ複数の DTS インスタンスの場合、A のネットワークリトライ期間を 30 分、B を 60 分に設定すると、短い方の 30 分が使用されます。
接続リトライ中はタスクの実行時間に対して課金されるため、必要に応じてカスタムリトライ期間を指定してください。ソースおよびターゲットデータベースインスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースすることもできます。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
データ準備タスクが開始された後、DDL または DML 実行エラーなどの接続以外の問題がソースまたはターゲットデータベースで発生した場合、DTS はエラーを報告し、すぐに操作をリトライします。デフォルトのリトライ期間は 10 分です。1 から 1,440 分のカスタム期間を指定することもできます。期間を 10 分以上に設定することをお勧めします。指定された期間内に操作が成功すると、データ準備タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。
増分同期率を制限するかどうか
必要に応じて増分タスクのレート制限を設定して、ターゲットデータベースへの圧力を軽減できます。1 秒あたりの増分同期の行数 RPS と 1 秒あたりの増分同期データ量 (MB) BPS を設定します。
引用符でオブジェクト名を囲みます。
宛先オブジェクトに引用符を追加するかどうかを選択します。
○ を選択します。ソースデータベースが次の条件を満たす場合、DTS は増分データ転送中に対応するスキーマ、テーブル、または列の名前に自動的に単一 (') または二重 (") 引用符を追加します。
ソースデータベースのビジネス環境では、大文字と小文字が区別され、大文字と小文字が混在しています。
ソーステーブル名が文字で始まらず、文字、数字、または特殊文字以外の文字を含んでいる。
説明特殊文字には、アンダースコア (_)、番号記号 (#)、およびドル記号 ($) のみが含まれます。
転送するスキーマ、テーブル、または列の名前が、ターゲットデータベースのキーワード、予約語、または無効な文字である。
× を選択します。DTS は宛先オブジェクトに引用符を追加しません。
順方向および逆方向タスクのハートビートテーブル SQL を削除
DTS インスタンスの実行中に、ハートビートテーブルに対する SQL 操作をソースデータベースに書き込むかどうかを指定します。有効な値:
[はい]: ハートビートテーブルに対する SQL 操作を書き込みません。この場合、DTS インスタンスのレイテンシが表示されることがあります。
[いいえ]: ハートビートテーブルに対する SQL 操作を書き込みます。この場合、ソースデータベースの物理バックアップやクローニングなどの機能が影響を受ける可能性があります。
環境タグ
必要に応じて、インスタンスを識別するための環境タグを選択できます。この例では必須ではありません。
ETL の設定
この例では、ETL 機能は使用しません。デフォルト設定のままにします。ETL 機能を使用してデータ処理を行うには、○ を選択し、テキストボックスに対応する データ処理文 を入力します。
監視アラート
アラートを構成するかどうかを選択します。データ準備タスクが失敗した場合、またはレイテンシがしきい値を超えた場合、アラート通知がアラート連絡先に送信されます。
×: アラートは構成されません。
○: アラートを有効にします。アラートのしきい値と アラート通知も構成する必要があります。詳細については、「監視アラートの構成」をご参照ください。
タスクを保存して事前チェックを実行します。
API 操作を呼び出してこのインスタンスを構成するためのパラメーター情報を表示するには、次:タスク設定の保存と事前チェック ボタンの上にマウスポインターを移動し、表示されるツールチップで OpenAPI パラメーターのプレビュー をクリックします。
API パラメーターを表示する必要がない場合、または表示が完了した場合は、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。
説明データ準備タスクが開始される前に、事前チェックが実行されます。タスクは、事前チェックに合格した場合にのみ開始されます。
事前チェックが失敗した場合は、失敗したチェック項目の横にある [詳細の表示] をクリックします。原因に基づいて問題を解決し、事前チェックを再度実行します。
事前チェック中に警告が報告された場合:
無視できないチェック項目については、警告の横にある [詳細の表示] をクリックします。原因に基づいて問題を解決し、事前チェックを再度実行します。
無視できるチェック項目については、[アラート詳細の確認]、[無視の確認]、[OK]、[事前チェックの再実行] を順にクリックして警告をスキップし、事前チェックを再度実行します。警告を無視することを選択した場合、データの不整合やその他のビジネス上のリスクが発生する可能性があります。
インスタンスを購入します。
成功率 が [100%] になったら、次:インスタンスの購入 をクリックします。
購入 ページで、データ準備インスタンスの課金方法とリンク仕様を選択します。次の表にパラメーターを示します。
カテゴリ
パラメーター
説明
新しいインスタンスクラス
リソースグループの構成
インスタンスが属するリソースグループ。デフォルト値は [デフォルトリソースグループ] です。詳細については、「Resource Management とは」をご参照ください。
リンク仕様
デフォルト値は [large] で、変更できません。
構成が完了したら、Data Transmission Service (従量課金) 利用規約 を読んで選択します。
購入して起動 をクリックし、OK ダイアログボックスで [OK] をクリックします。
データ準備ページでタスクの進捗状況を表示できます。