SelectDB は、大量データクエリに対するサブ秒レベルの応答、最大 10,000 QPS の高同時実行ポイントクエリ、および高スループットの複雑な分析をサポートします。Data Transmission Service (DTS) を使用すると、PolarDB for MySQL クラスターから SelectDB インスタンスにデータを同期して、ビッグデータ分析のニーズを満たすことができます。
前提条件
宛先の SelectDB インスタンスが作成されていること。インスタンスの利用可能なストレージ容量が、ソースの PolarDB for MySQL クラスターが使用するストレージ容量よりも大きいこと。詳細については、「インスタンスの作成」をご参照ください。
注意事項
タイプ | 説明 |
ソースデータベースの制限 |
|
その他の制限 |
|
課金
| 同期タイプ | タスク設定料金 |
| スキーマ同期と完全データ同期 | 無料。 |
| 増分データ同期 | 有料です。詳細については、「課金の概要」をご参照ください。 |
増分同期をサポートする SQL 操作
操作タイプ | SQL 文 |
DML | INSERT、UPDATE、DELETE |
DDL |
|
データベースアカウントに必要な権限
データベース | 必要な権限 | 作成および権限付与方法 |
ソース PolarDB for MySQL | 同期するオブジェクトに対する読み書き権限 | |
ターゲット:SelectDB | クラスターに対する USAGE_PRIV 権限、およびデータベースに対する SELECT_PRIV、LOAD_PRIV、ALTER_PRIV、CREATE_PRIV、DROP_PRIV 権限 |
操作手順
宛先リージョンのデータ同期タスクリストページに移動します。以下のいずれかの方法を使用できます。
DTS コンソールから
DTS コンソールにログインします。
左側のナビゲーションウィンドウで、データ同期 をクリックします。
ページの左上隅で、同期インスタンスが配置されているリージョンを選択します。
DMS コンソールから
説明実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモードコンソール」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
DMS コンソールにログインします。
トップメニューバーから、 を選択します。
データ同期タスク の右側で、同期インスタンスのリージョンを選択します。
タスクの作成 をクリックして、タスク構成ページに移動します。
ソースデータベースとターゲットデータベースを設定します。以下の表にパラメーターを説明します。
カテゴリ
設定
説明
なし
タスク名
DTS は自動的にタスク名を生成します。簡単に識別できるように、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。
移行元データベース
既存の接続情報の選択
システムに登録されているデータベースインスタンス (新規作成または保存済み) を使用するには、ドロップダウンリストから目的のデータベースインスタンスを選択します。以下のデータベース情報は自動的に設定されます。
説明DMS コンソールでは、この設定項目は DMS データベースインスタンスの選択 です。
データベースインスタンスをシステムに登録していない場合、または登録済みのインスタンスを使用する必要がない場合は、以下のデータベース情報を手動で設定します。
データベースタイプ
PolarDB for MySQL を選択します。
アクセス方法
Alibaba Cloud インスタンス を選択します。
インスタンスのリージョン
ソース PolarDB for MySQL クラスターが存在するリージョンを選択します。
Alibaba Cloud アカウント間でデータを複製
この例では、同一の Alibaba Cloud アカウント内で同期を行います。× を選択します。
PolarDB クラスター ID
ソース PolarDB for MySQL クラスターの ID を選択します。
データベースアカウント
ソース PolarDB for MySQL クラスターのデータベースアカウントを入力します。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
データベースのパスワード
データベースアカウントに対応するパスワードを入力します。
暗号化
必要に応じてメソッドを選択します。Secure Sockets Layer (SSL) 暗号化の詳細については、「SSL 暗号化の設定」をご参照ください。
移行先データベース
既存の接続情報の選択
システムに登録されているデータベースインスタンス (新規作成または保存済み) を使用するには、ドロップダウンリストから目的のデータベースインスタンスを選択します。以下のデータベース情報は自動的に設定されます。
説明DMS コンソールでは、この設定項目は DMS データベースインスタンスの選択 です。
データベースインスタンスをシステムに登録していない場合、または登録済みのインスタンスを使用する必要がない場合は、以下のデータベース情報を手動で設定します。
データベースタイプ
[SelectDB] を選択します。
アクセス方法
Alibaba Cloud インスタンス を選択します。
インスタンスのリージョン
宛先 SelectDB インスタンスが存在するリージョンを選択します。
Alibaba Cloud アカウント間でデータを複製
この例では、同一 Alibaba Cloud アカウント内での同期を示します。× を選択します。
インスタンス ID
宛先 SelectDB インスタンスの ID を選択します。
データベースアカウント
宛先 SelectDB インスタンスのデータベースアカウントを入力します。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
データベースのパスワード
データベースアカウントに対応するパスワードを入力します。
構成が完了したら、ページ下部の接続をテストして続行をクリックします。
説明DTS サーバーからのアクセスを許可するために、DTS サービスの IP アドレスブロックがソースおよびターゲットデータベースのセキュリティ設定に自動または手動で追加されていることを確認してください。詳細については、「DTS サーバーの IP アドレスホワイトリストの追加」をご参照ください。
ソースデータベースまたはターゲットデータベースが自己管理データベース (アクセス方法 が Alibaba Cloud インスタンス ではない) の場合、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト もクリックする必要があります。
タスクオブジェクトを設定します。
オブジェクト設定 ページでは、同期するオブジェクトを設定できます。
設定
説明
同期タイプ
[増分同期] はデフォルトで選択されています。また、[スキーマ同期] と [完全データ同期] を選択する必要もあります。事前チェックが完了すると、DTS はソースインスタンスの完全データで宛先クラスターの同期オブジェクトを初期化します。このデータは、後続の増分同期のベースラインとなります。
重要PolarDB for MySQL クラスターから SelectDB にデータが同期されると、データの型が変換されます。スキーマ同期 を選択しない場合は、事前に宛先の SelectDB インスタンスに適切なスキーマを持つ Unique モデルまたは Duplicate モデルのテーブルを作成する必要があります。詳細については、「データ型のマッピング」、「追加の列情報」、および「データモデル」をご参照ください。
競合するテーブルの処理モード
エラーの事前チェックと報告: ターゲットデータベースに同じ名前のテーブルが存在するかどうかをチェックします。同じ名前のテーブルが存在しない場合、チェックは成功します。同じ名前のテーブルが存在する場合、事前チェックは失敗し、データ同期タスクは開始されません。
説明ターゲットデータベースで同名のテーブルを削除または名前変更できない場合は、ターゲットデータベースで別のテーブル名にマッピングできます。詳細については、「スキーマ、テーブル、列のマッピング」をご参照ください。
エラーを無視して続行: ターゲットデータベースに同じ名前のテーブルがあるかどうかのチェックをスキップします。
警告エラーを無視して続行 を選択すると、データ不整合が発生し、ビジネスにリスクが生じる可能性があります。例:
テーブルスキーマが同じで、ターゲットデータベースのレコードがソースデータベースのレコードと同じプライマリキーまたは一意キーの値を持つ場合、ソースデータベースのレコードがターゲットデータベースのレコードを上書きします。
テーブルスキーマが異なる場合、データの初期化に失敗したり、一部の列のデータしか同期できなかったり、同期が失敗したりする可能性があります。注意して進めてください。
移行先インスタンスでのオブジェクト名の大文字化
宛先インスタンスのデータベース、テーブル、および列オブジェクトの名前の大文字/小文字のポリシーを設定できます。デフォルトでは、[DTS デフォルトポリシー] が選択されています。ソースまたは宛先データベースのデフォルトポリシーを使用することもできます。詳細については、「宛先オブジェクト名の大文字/小文字のポリシー」をご参照ください。
ソースオブジェクト
ソースオブジェクト ボックスでオブジェクトをクリックし、
をクリックして 選択中のオブジェクト ボックスに移動します。説明データベースまたはテーブルを同期オブジェクトとして選択できます。
選択中のオブジェクト
宛先インスタンスの同期オブジェクトの名前を変更するには、選択中のオブジェクト ボックスでオブジェクトを右クリックします。名前の設定方法に関する詳細については、「スキーマ、テーブル、カラムのマッピング」をご参照ください。
同期タイプ に スキーマ同期 を選択し、テーブルレベルでオブジェクトを選択し、バケット数 (
bucket_countパラメーター) を設定する必要がある場合は、選択中のオブジェクト ボックスでテーブルを右クリックします。パラメーター設定 セクションで、パラメーター設定の有効化 を ○ に設定し、必要に応じて パラメーター値 を設定してから、[OK] をクリックします。
説明データベースまたはテーブルレベルで増分同期の SQL 操作を選択するには、選択中のオブジェクト ボックスで同期オブジェクトを右クリックし、表示されるダイアログボックスで目的の SQL 操作を選択します。
WHERE 句を設定してデータをフィルターするには、選択中のオブジェクト ボックスで同期するテーブルを右クリックし、表示されるダイアログボックスでフィルター条件を設定します。詳細については、「フィルター条件を設定する」をご参照ください。
オブジェクト名マッピング機能を使用すると、マッピングされたオブジェクトに依存する他のオブジェクトの同期が失敗する可能性があります。
詳細設定へ をクリックします。
設定
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、DTS は共有クラスターでタスクをスケジュールするため、選択する必要はありません。タスクの安定性を高めるために、専用クラスターを購入して DTS 同期タスクを実行できます。詳細については、「DTS 専用クラスターとは」をご参照ください。
失敗した接続の再試行時間
同期タスクの開始後、ソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、すぐに接続のリトライを開始します。デフォルトのリトライ時間は 720 分です。リトライ時間は 10 分から 1,440 分の間でカスタマイズできます。30 分以上の設定を推奨します。指定されたリトライ時間内に DTS が再接続すると、タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
説明DTS インスタンス A と DTS インスタンス B のように、同じソースまたは宛先を持つ複数の DTS インスタンスの場合、A のネットワークリトライ時間が 30 分、B が 60 分に設定されている場合、短い方の 30 分が適用されます。
DTS は接続リトライ中にタスク実行時間に対して課金するため、ビジネスニーズに基づいてリトライ時間をカスタマイズするか、ソースおよびターゲットデータベースインスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースすることを推奨します。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
同期タスクの開始後、DDL または DML の実行エラーなど、ソースまたはターゲットデータベースで接続以外の問題が発生した場合、DTS はエラーを報告し、すぐに連続的なリトライ操作を開始します。デフォルトのリトライ時間は 10 分です。リトライ時間は 1 分から 1,440 分の間でカスタマイズすることもできます。10 分以上の設定を推奨します。設定されたリトライ時間内に関連操作が成功すると、同期タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。
完全同期レートを制限するかどうか
完全データ同期フェーズ中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを消費するため、それらの負荷が増加する可能性があります。1 秒あたりのソースデータベースのクエリ率 QPS、1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS を設定することで、完全データ同期タスクにレート制限を設定して、ターゲットデータベースの負荷を軽減できます。
説明この設定項目は、同期タイプ が 完全データ同期 に設定されている場合にのみ利用できます。
同期インスタンスの実行後に 完全データ同期のレートを調整することもできます。
増分同期率を制限するかどうか
また、1 秒あたりの増分同期の行数 RPS と 1 秒あたりの増分同期データ量 (MB) BPS を設定することで、増分同期タスクにレート制限をかけ、ターゲットデータベースの負荷を軽減することもできます。
環境タグ
必要に応じて、インスタンスを識別するための環境タグを選択できます。この例では、タグは選択されていません。
順方向および逆方向タスクのハートビートテーブル SQL を削除
ビジネスニーズに基づき、DTS インスタンスの実行中にハートビート SQL 情報をソースデータベースに書き込むかどうかを選択します。
はい: ハートビート SQL 情報はソースデータベースに書き込まれません。 これにより、DTS インスタンスが遅延を報告する可能性があります。
いいえ: ソースデータベースにハートビート SQL 情報を書き込みます。このため、ソースデータベースの物理バックアップやクローニングなどの機能に干渉する可能性があります。
ETL 機能の設定
抽出、変換、ロード (ETL) 機能を有効にするかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効な値:
はい: ETL 機能を設定します。コードエディタにデータ処理文を入力できます。詳細については、「データ移行タスクまたはデータ同期タスクで ETL を設定する」をご参照ください。
いいえ: ETL 機能を設定しません。
監視アラート
アラートを設定するかどうかを指定します。同期が失敗した場合や、遅延が指定されたしきい値を超えた場合に、アラート連絡先に通知が送信されます。
設定しない:アラートは設定されません。
設定: アラートを設定します。アラートのしきい値とアラート通知も設定する必要があります。詳細については、「タスク設定中に監視とアラートを設定する」をご参照ください。
任意: 前述の構成が完了したら、次:データベースおよびテーブルのフィールド設定 をクリックして、同期先で同期したいテーブルの プライマリキー列の追加、配布キー、エンジンの選択 を設定します。
説明このステップは、タスクオブジェクトを設定する際に、同期タイプ で スキーマ同期 を選択した場合にのみ使用できます。定義ステータス を すべて に設定して設定を変更できます。
プライマリキー列の追加では、複数の列を選択して複合プライマリキーを構成できます。プライマリキー列の追加から 1 つ以上の列を配布キーとして選択する必要があります。
プライマリキーも一意キーもないテーブルの場合、エンジンの選択 を [duplicate] に設定する必要があります。そうしないと、インスタンスに障害が発生するか、データ損失が発生する可能性があります。
タスクを保存して事前チェックを実行します。
API 操作でこのインスタンスを設定するパラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにマウスオーバーし、ツールチップに表示される OpenAPI パラメーターのプレビュー をクリックします。
API パラメーターの確認が完了したら、ページ下部の次:タスク設定の保存と事前チェック をクリックします。
説明同期ジョブが開始される前に、事前チェックが実行されます。ジョブは事前チェックに合格した後にのみ開始できます。
事前チェックが失敗した場合は、失敗した項目の横にある詳細を表示 をクリックして、プロンプトに従って問題を解決し、その後、事前チェックを再実行してください。
事前チェック中に警告が生成された場合:
チェック項目が失敗し、無視できない場合は、項目の横にある詳細を表示をクリックします。その後、指示に従って問題を修正し、事前チェックを再実行します。
無視できるチェック項目については、アラートの詳細を確認、無視、OK、再度事前チェックを実行 の順にクリックして、警告をスキップし、事前チェックを再実行します。 チェック項目の警告を無視すると、データの不整合などの問題につながり、ビジネスにリスクをもたらす可能性があります。
インスタンスを購入します。
成功率 が 100% になったら、次:インスタンスの購入 をクリックします。
購入 ページで、データ同期インスタンスの課金方法とリンク仕様を選択します。詳細については、次の表をご参照ください。
カテゴリ
パラメーター
説明
新しいインスタンスクラス
課金方法
サブスクリプション:インスタンス作成時に支払います。長期的なニーズに適しており、従量課金よりも手頃で、サブスクリプション期間が長いほど割引率が高くなります。
従量課金:時間単位で課金されます。短期的なニーズに適しています。使用後すぐにインスタンスをリリースしてコストを節約できます。
リソースグループ設定
インスタンスが属するリソースグループです。デフォルトは [デフォルトリソースグループ] です。詳細については、「Resource Management とは」をご参照ください。
リンク仕様
DTS は、異なるパフォーマンスレベルの同期仕様を提供します。リンク仕様は同期レートに影響します。ビジネスシナリオに基づいて選択できます。詳細については、「データ同期リンク仕様」をご参照ください。
サブスクリプション期間
サブスクリプションモードでは、サブスクリプションインスタンスの期間と数量を選択します。月次サブスクリプションの場合は 1〜9 か月、年次サブスクリプションの場合は 1、2、3、または 5 年から選択できます。
説明このオプションは、課金方法がサブスクリプションの場合にのみ表示されます。
構成を完了したら、Data Transmission Service (従量課金) 利用規約 を読み、選択します。
購入して起動 をクリックし、OK ダイアログボックスで [OK] をクリックします。
データ同期ページでタスクの進捗状況を確認できます。
データ型のマッピング
カテゴリ | PolarDB for MySQL のデータ型 | SelectDB のデータ型 |
数値 | TINYINT | TINYINT |
TINYINT UNSIGNED | SMALLINT | |
SMALLINT | SMALLINT | |
SMALLINT UNSIGNED | INT | |
MEDIUMINT | INT | |
MEDIUMINT UNSIGNED | BIGINT | |
INT | INT | |
INT UNSIGNED | BIGINT | |
BIGINT | BIGINT | |
BIGINT UNSIGNED | LARGEINT | |
BIT(M) | INT | |
Decimal | Decimal 説明 zerofill 属性はサポートされていません。 | |
Numeric | Decimal | |
Float | Float | |
Double | DOUBLE | |
| BOOLEAN | |
日付と時刻 | DATE | DATEV2 |
DATETIME[(fsp)] | DATETIMEV2 | |
Timestamp[(fsp)] | DATETIMEV2 | |
Time[(fsp)] | VARCHAR | |
YEAR[(4)] | INT | |
文字列 |
| VARCHAR 重要 データ損失を防ぐため、CHAR および VARCHAR(n) 型のデータは、SelectDB に同期された後、VARCHAR(4*n) 型に変換されます。
|
| STRING | |
| STRING | |
| STRING | |
ENUM | STRING | |
SET | STRING | |
JSON | STRING |
追加の列情報
次の表は、DTS が自動的に追加するか、Duplicate モデルを使用するターゲットテーブルに手動で追加する必要がある追加の列について説明しています。
名前 | データ型 | デフォルト値 | 説明 |
_is_deleted | Int | 0 | データが削除されたかどうかを示します。
|
_version | Bigint | 0 |
|
_record_id | Bigint | 0 |
|