Flink CDCコネクタを使用して、データとテーブルスキーマの変更をリアルタイムで同期できます。データ同期テンプレートを使用すると、データ同期用のFlink SQLデプロイメントコードを迅速に生成できます。このトピックでは、マルチデータベース、マルチテーブル同期テンプレートまたはシャーディングデータマージテンプレートを使用してデータを同期する方法について説明します。
背景情報
Realtime Compute for Apache Flinkは、マルチデータベース、マルチテーブル同期とシャーディングデータマージという2つのデータ同期方法をサポートしています。次の表に、これらの方法の違いを示します。
同期方法 | 説明 |
マルチデータベース、マルチテーブル同期 | 1つ以上のデータベースから1つ以上のビジネスデータテーブルを別のデータベースにリアルタイムで同期する場合、マルチデータベース、マルチテーブル同期テンプレートを使用できます。Flink CDCコネクタは、データベース全体のフルデータと増分データを自動的に同期できます。Flink CDCコネクタは、追加された列など、各ソーステーブルのスキーマ変更をデスティネーションテーブルにリアルタイムで同期することもできます。マルチデータベース、マルチテーブル同期テンプレートは、パラメータをCREATE DATABASE ASステートメントに変換します。 CREATE DATABASE ASステートメントの詳細については、「CREATE DATABASE ASステートメント」をご参照ください。 |
シャーディングデータマージ | ビジネスデータが異なるデータベースまたはビジネステーブルに分散している場合は、シャーディングデータベース内の複数のテーブルをマージして、同様のスキーマを持つテーブルから1つのデスティネーションテーブルにデータを同期する必要があります。Flink CDCコネクタは、ソースデータベースからシャーディングデータベース内のすべてのテーブルシャードのフルデータと増分データを自動的に同期できます。テーブルには、正規表現に一致する新しいテーブルが含まれます。Flink CDCコネクタは、追加された列など、各ソーステーブルのテーブルスキーマ変更をデスティネーションテーブルにリアルタイムで同期することもできます。シャーディングデータマージテンプレートは、パラメータをCREATE TABLE ASステートメントに変換します。CREATE TABLE ASステートメントの詳細については、「CREATE TABLE ASステートメント」をご参照ください。 |
制限事項
Flink CDCコネクタは、MySQLからHologresへのデータのみを同期できます。
注意事項
Flink CDCコネクタを使用してMySQLからHologresにデータを同期する場合、テーブルスキーマの変更も同期されます。詳細については、「CREATE TABLE ASステートメント」をご参照ください。MySQLからHologresにデータを同期する場合は、次の点に注意してください。
Hologresに手動でテーブルを作成する必要はありません。
Realtime Compute for Apache Flinkは、Hologresにテーブルを自動的に作成します。ただし、必要なテーブルがHologresに既に存在する場合、Realtime Compute for Apache Flinkは、プランの作成時に選択したデスティネーションデータベースとテーブルに基づいてデータを同期します。
Hologresでは、列のデータ型を変更することはできません。
現在のフィールドのデータ型がHologresテーブルのデータ型と異なる場合、データの書き込みは失敗します。この場合、列のデータ型を変更し、データを再度同期する必要があります。
Hologres結果テーブルの詳細については、「Hologres結果テーブルの作成」をご参照ください。
手順
Realtime Compute for Apache Flinkコンソール にログインします。
管理するワークスペースを見つけ、コンソール[アクション] 列の をクリックします。
左側のナビゲーションペインで、 をクリックします。 SQLエディターページで、[新規] をクリックします。
[新規ドラフト] ダイアログボックスで、[flink CDC] タブをクリックします。
[mysqlからhologresへのデータ同期] カードをダブルクリックするか、カードをクリックしてダイアログボックスの右下隅にある [次へ] をクリックします。
データ同期情報を設定します。
ソースとシンクのパラメータを設定し、[次へ] をクリックします。
カテゴリ
パラメータ
説明
ソース
MySQLカタログ
作成したMySQLカタログを選択できます。MySQLカタログが存在しない場合は、[カタログの作成] をクリックします。MySQLカタログの作成方法の詳細については、「MySQLカタログの管理」をご参照ください。
MySQL server-id
各MySQLデータベースクライアントの一意のIDを入力します。有効な値:5400~6400。このパラメータは、5400-5408などのID範囲に設定することもできます。増分読み取りモードで並列読み取りを有効にする場合は、各並列スレッドのサーバーIDが一意になるように、このパラメータを値の範囲に設定することをお勧めします。
重要データベースにアクセスする異なるデプロイメントまたはサービスに同じサーバーIDを使用しないことをお勧めします。
シンク
Hologresカタログ
作成したHologresカタログを選択できます。Hologresカタログが存在しない場合は、[カタログの作成] をクリックします。詳細については、「Hologresカタログの管理」をご参照ください。
プランを作成します。
マルチデータベース、マルチテーブル同期
[単一データベースへ] タブで、ソースデータベースとテーブル名を選択します。
[プランの保存] をクリックして、プランリストを表示します。
説明マルチデータベース、マルチテーブル同期を実行すると、システムはこのテンプレートを使用して、デスティネーションカタログにソースカタログのデータベースとテーブルと同じ名前のデータベースとテーブルを作成します。デフォルトでは、作成されたデータベースとテーブルはpublicスキーマに同期されます。データベース名、テーブル名、またはスキーマを変更する場合は、SQLステートメントを使用することをお勧めします。データベースまたはテーブルの名前の変更方法の詳細については、「CREATE TABLE ASステートメント」および「CREATE DATABASE ASステートメント」をご参照ください。スキーマの指定方法の詳細については、「CREATE DATABASE ASステートメントで使用されるデスティネーションストアのカタログとして、作成したHologresカタログを使用する」をご参照ください。スキーマを指定した後、関連カタログを使用すると、テーブル名の形式が変更されます。詳細については、「Hologresカタログの管理」をご参照ください。
[次へ] をクリックします。
選択したデスティネーションデータベースとテーブルに基づいて生成されたSQLコードを表示します。
ビジネス要件に基づいて、[名前]、[場所]、または [エンジンバージョン] パラメータを変更できます。
シャーディングデータマージ
[複数データベースへ] タブで、ソースデータベースとテーブルの名前を選択するか、デスティネーションデータベースとテーブルの名前を入力します。
説明正規表現を使用してソースデータベースとソーステーブルを指定することをお勧めします。
[プランの保存] をクリックして、プランリストを表示します。
ドラフトでは、マルチデータベース、マルチテーブル同期とシャーディングデータマージの複数のプランを同時に作成できます。次の図は例を示しています。
[次へ] をクリックします。
選択したデスティネーションデータベースとテーブルに基づいて生成されたSQLコードを表示します。
ビジネス要件に基づいて、[名前]、[場所]、または [エンジンバージョン] パラメータを変更できます。
[作成] をクリックします。
[作成] をクリックすると、SQLエディターページにリダイレクトされます。後続の操作は、一般的なデプロイメントの開発に必要な操作と同じです。パラメータ設定と後続の操作の詳細については、「SQLドラフトの開発」および「デプロイメントの開始」をご参照ください。