データ統合は、MySQL などのソースから Elasticsearch へデータベース全体をリアルタイムで同期することをサポートしています。このトピックでは、MySQL から Elasticsearch へのシナリオを例に、フル同期と増分同期を組み合わせたリアルタイム同期の実行方法について説明します。
前提条件
データソースの準備
リソースグループ:サーバーレスリソースグループを購入済みであること。
ネットワーク接続:リソースグループとデータソース間のネットワーク接続が確立されていること。詳細については、「ネットワーク接続ソリューションの概要」をご参照ください。
タスクの設定
ステップ 1:同期タスクの作成
DataWorks コンソールにログインします。対象のリージョンで、左側のナビゲーションウィンドウにあるをクリックします。ドロップダウンリストからワークスペースを選択し、入力 データ統合をクリックします。
左側のナビゲーションウィンドウで Synchronization Task をクリックします。表示されたページで Create Synchronization Task をクリックし、タスク情報を設定します。
Source Type:
MySQL。Destination Type:
Elasticsearch。Specific Type:
データベース全体のリアルタイム同期。Synchronization Mode:
Schema Migration:送信先で一致するインデックス構造 (インデックスやフィールドマッピングなど) を自動的に作成します。このステップではデータは移行されません。
Full Synchronization (任意):テーブルなどの指定されたソースオブジェクトからすべての既存データを一度に送信先にコピーします。これは通常、初期データ移行や初期化に使用されます。
Incremental Sync (オプション): 完全同期が完了した後、ソースからデータの変更 (挿入、更新、削除) を継続的に取得し、送信先に同期します。
ステップ 2:データソースと計算リソースの設定
Source で
MySQLデータソースを選択します。Destination でElasticsearchデータソースを選択します。Running Resources セクションで、同期タスクの Resource Group を選択し、タスクに Resource Group の CU を割り当てます。
説明タスクログに
Please confirm whether there are enough resources...のようなメッセージが表示された場合、現在のリソースグループで利用可能な計算ユニット (CU) がタスクの開始または実行に不足していることを示します。Configure Resource Group パネルでタスクに割り当てられた CU の数を増やして、より多くの計算リソースを割り当てることができます。推奨されるリソースサイズの詳細については、「データ統合の推奨 CU」をご参照ください。実際のご利用要件に基づいて値を調整してください。
ソースデータソースと送信先データソースの両方が 接続チェック に合格することを確認します。
ステップ 3:同期計画の設定
1. データソースの設定
このステップでは、[ソーステーブル] セクションでソースデータソースから同期するテーブルを選択し、
アイコンをクリックして右側の [選択されたテーブル] セクションに移動できます。テーブルが多い場合は、Database Filtering または Table filtering を使用して、正規表現を設定することで同期するテーブルを選択できます。
複数のシャーディングされたテーブル (同じスキーマを持つ) からのデータを単一の送信先テーブルに書き込むには、[正規表現でテーブルを選択] できます。

ソーステーブルの設定で正規表現を入力します。DataWorks は、一致するすべてのソーステーブルを自動的に識別して収集し、そのデータを式によってマッピングされた送信先テーブルに書き込みます。説明この方法は、シャーディングされたテーブルのマージ同期シナリオ (シャーディングベースの同期に類似) に適用でき、設定効率を向上させ、多数対 1 の同期ルールを繰り返し追加する必要がなくなります。
2. 送信先インデックスマッピングの設定
アクション | 説明 | ||||||||||||
Refresh | システムは、選択したソーステーブルを自動的にリストアップします。ただし、送信先インデックスのプロパティは、リフレッシュして確認した後にのみ適用されます。
| ||||||||||||
Custom Mapping Rule for Destination Index Name (任意) | システムはデフォルトのルールを使用してインデックス名を生成します:
この機能は、以下のシナリオをサポートします:
| ||||||||||||
フィールドデータ型のマッピングを編集 (任意) | システムは、[ソースタイプ] と [送信先タイプ] の間にデフォルトのマッピングを提供します。テーブルの右上隅にある Edit Mapping of Field Data Types をクリックして、ソーステーブルと送信先インデックス間のフィールドデータ型のマッピングをカスタマイズできます。設定が完了したら、Apply and Refresh Mapping をクリックします。 フィールドデータ型のマッピングを編集する際は、型変換ルールが有効であることを確認してください。そうしないと、型変換の失敗が発生し、ダーティデータが生成され、タスクが中断される可能性があります。 | ||||||||||||
送信先インデックスを編集 (任意) | カスタムインデックス名マッピングルールに基づいて、システムは自動的に新しい送信先インデックスを作成するか、一致する名前の既存のインデックスを再利用します。 DataWorks は、ソーステーブルの構造に基づいて送信先インデックスの構造を自動的に生成します。ほとんどの場合、手動での介入は必要ありません。 送信先インデックスのステータスが [作成予定] の場合、元のテーブル構造に基づいて送信先インデックスに新しいフィールドを追加できます。次の操作を実行します:
| ||||||||||||
Value assignment | ネイティブフィールドは、ソースと送信先の間で一致するフィールド名に基づいて自動的にマッピングされます。追加した 新しいフィールドと送信先インデックスのプロパティ には手動で値を割り当てる必要があります。次の操作を実行します:
Value Type を変更することで、定数と変数を割り当てることができます。以下のオプションがサポートされています:
| ||||||||||||
[ソース分割列] | [ソース分割列] ドロップダウンリストからソーステーブルのフィールドを選択するか、Not Split を選択できます。同期タスクが実行されると、この列に基づいて複数のサブタスクに分割され、データをバッチで並行して読み取ります。 テーブルのプライマリキーをソース分割列として使用することを推奨します。文字列、浮動小数点、日付型はサポートされていません。 ソース分割列は、ソースが MySQL の場合にのみサポートされます。 | ||||||||||||
[フル同期をスキップ] | ステップ 3 でフル同期を設定した場合、個々のテーブルに対してフル同期をスキップすることを選択できます。これは、他の方法で既に完全なデータを送信先に同期している場合に便利です。 | ||||||||||||
Full condition | フル同期フェーズ中にソースデータにフィルターを適用します。 | ||||||||||||
Configure DML Rule | DML メッセージ処理は、ソースからキャプチャされた変更データ ( |
ステップ 4:詳細設定
詳細パラメーターの設定
タスクをカスタマイズするには、Advanced Parameters タブでパラメーターを変更します。
右上隅の [詳細設定] をクリックして、詳細パラメーター設定ページに移動します。
提供されている説明に基づいてパラメーター値を変更します。
AI を活用した設定も利用できます。タスクの同時実行数を調整するコマンドなど、自然言語でコマンドを入力すると、AI モデルが推奨パラメーター値を生成します。AI が生成したパラメーターを受け入れるかどうかを選択できます。
提案を受け入れるか拒否するかに加えて、[再生成] をクリックして Copilot に新しいパラメーターの推奨を提供させることもできます。
これらのパラメーターは、その目的を完全に理解している場合にのみ変更してください。これにより、タスクの遅延、他のタスクをブロックする過剰なリソース消費、データ損失などの予期しない問題を回避できます。
DDL 機能の設定
一部のリアルタイム同期チャネルは、ソーステーブルスキーマのメタデータ変更を検出し、送信先に更新を同期するように通知したり、アラート、無視、タスクの終了などの他のアクションを実行したりできます。
右上隅の Configure DDL Capability をクリックして、各変更タイプの処理ポリシーを設定できます。サポートされている処理ポリシーはチャネルによって異なります。
通常処理:送信先はソースからの DDL 変更情報を処理します。
無視:変更メッセージは無視され、送信先は変更されません。
エラー:リアルタイムのデータベース全体の同期タスクが終了し、ステータスが [エラー] に設定されます。
アラート:ソースでこのタイプの変更が発生したときにアラートが送信されます。Configure Alert Rule で DDL 通知ルールを設定する必要があります。
ソースで新しい列が追加され、DDL 同期を通じて送信先で作成された後、システムは送信先テーブルの既存データに対してデータのバックフィルを行いません。
ステップ 5:タスクのデプロイと実行
すべての設定が完了したら、ページ下部の Save をクリックしてタスク設定を保存します。
データベース全体の同期タスクは直接のデバッグをサポートしていません。実行のためには Operation Center にデプロイする必要があります。したがって、新規または編集されたタスクを有効にするには Deploy 操作を実行する必要があります。
デプロイ中に Start immediately after deployment を選択すると、タスクはデプロイと同時に開始されます。そうでない場合、デプロイ後、 に移動し、対象タスクの [操作] 列で手動でタスクを開始する必要があります。
Tasks の対応するタスクの Name/ID をクリックして、タスクの詳細な実行プロセスを表示します。
ステップ 6:アラート設定
1. アラートの作成
リストで、リアルタイムのデータベース全体のタスクを見つけ、[操作] 列の をクリックして、タスクのアラートポリシーを設定します。

(1) Create Rule をクリックしてアラートルールを設定します。
Alert Reason を設定して、Business delay、[フェイルオーバー]、Task status、DDL Notification、Task Resource Utilization などのタスクメトリックを監視し、指定されたしきい値に基づいて CRITICAL または WARNING のアラートレベルを設定できます。
Configure Advanced Parameters を設定することで、アラートメッセージ間の時間間隔を制御し、一度に多くのメッセージを送信することによる無駄やメッセージの蓄積を防ぐことができます。
アラート理由が Business delay、Task status、または Task Resource Utilization に設定されている場合、タスクが正常に戻ったときに受信者に通知する復旧通知を有効にすることもできます。
(2) アラートルールの管理
既存のアラートルールについては、アラートスイッチを使用してアラートルールを有効または無効にできます。また、アラートレベルに基づいて異なる担当者にアラートを送信することもできます。
2. アラートの表示
タスクリストで をクリックしてパネルを展開し、アラートイベントページに移動して、発生したアラートを表示できます。
タスクの管理
タスクの編集
ページで、作成した同期タスクを見つけます。Operation 列で、More > Edit を選択してタスク情報を変更します。手順は新しいタスクを設定する場合と同じです。
実行中でないタスクについては、設定を直接変更して保存し、タスクをオペレーションセンターにデプロイして変更を適用できます。
Running のタスクについては、Start immediately after deployment を選択せずにタスクを編集してデプロイすると、元のアクションボタンが Apply Updates に変わります。変更をオペレーションセンターで有効にするには、このボタンをクリックする必要があります。
[更新を適用] をクリックすると、システムはタスクを停止、デプロイ、再起動して変更を適用します。
新しいテーブルを追加または既存のテーブルを切り替える場合:
更新を適用する際に位置を選択することはできません。更新を確認すると、システムは新しいテーブルに対して スキーマ移行 と フル同期 を実行します。初期化が完了すると、これらのテーブルは元のテーブルと共に増分同期を開始します。
その他の情報を変更する場合:
更新を適用する際に位置を選択できます。確認後、タスクは指定された位置から再開します。位置を指定しない場合、最後に停止した位置 (最後のチェックポイント) から再開します。
変更されていないテーブルは影響を受けません。更新と再起動後、最後のチェックポイントから再開します。
タスクの表示
同期タスクを作成した後、[同期タスク] ページで作成されたタスクのリストとその基本情報を表示できます。
[操作] 列で、同期タスクを Start または Stop できます。[その他] メニューでは、Edit や View などの他の操作を実行できます。
実行中のタスクについては、Execution Overview セクションでそのステータスを表示できます。また、概要の特定のエリアをクリックして実行の詳細を表示することもできます。[表示] をクリックして同期タスクの詳細ページに移動します。上部の [基本情報] セクションには、タスク ID、データソース (例:MySQL_Source → Elasticsearch_Source)、作成時間、同期リソースグループ、ステータス (実行中)、同期計画 (データベース全体のリアルタイム同期)、およびタスクが占有する CU が表示されます。中央の [実行ステータス] セクションでは、プログレスバーを使用して、スキーマ移行、フル同期、リアルタイムデータ同期の 3 つのステージの完了率と実行ステータスが表示されます。
MySQL から Elasticsearch へのリアルタイム同期タスクは、3 つのステージで構成されます:
スキーマ移行:送信先インデックスがどのように作成されたか (既存のインデックスからか、自動作成か) を示します。インデックスが自動作成された場合、DDL ステートメントが表示されます。
フル同期:オフライン同期で同期されたテーブル、その進捗状況、および書き込まれたレコード数を表示します。
リアルタイムデータ同期:進捗状況、DDL および DML レコード、アラート情報などのリアルタイム統計を表示します。
タスクの再実行
テーブルの追加や削除、送信先テーブルのスキーマやテーブル名情報の変更など、特定のシナリオでは、同期タスクの Operations 列にある Rerun をクリックできます。システムは、新しく追加または変更されたテーブルのみを同期します。以前に同期された、または変更されていないテーブルは再度同期されません。
-
Rerun をクリックして、完全な初期化とリアルタイム同期を再実行します。
-
タスクを編集してテーブルを追加または削除し、タスクを保存してからデプロイします。デプロイ後、[操作] 列に Apply Updates ボタンが表示されます。Apply Updates をクリックして、変更されたタスクの再実行をトリガーします。新しく追加または変更されたテーブルのみが同期されます。以前に同期されたテーブルは再度同期されません。
チェックポイントから再開
ユースケース
タスクの開始位置をリセットすることは、以下のシナリオで役立ちます:
タスクの回復とデータの再開:タスクが中断された場合、中断時間を新しい開始位置として手動で指定し、正しいポイントからデータ同期を再開します。
データのトラブルシューティングとロールバック:同期後にデータが欠落または異常であることが判明した場合、問題が発生する前の時間に位置をロールバックして、データを再生および修正します。
タスク設定の大きな変更:送信先インデックスの構造やフィールドマッピングなど、タスク設定に大幅な調整を行った後、特定の位置から同期を開始するように位置をリセットします。これにより、新しい設定下でのデータの精度が保証されます。
操作手順
Start をクリックします。表示されるダイアログボックスで、Whether to reset the site を選択します。
チェックボックスを選択しない場合、タスクは最後に停止したポイント (最後のチェックポイント) から再開します。
チェックボックスを選択して時間を指定した場合、タスクは指定された時間から開始します。選択した時間が、ソース Binlog で利用可能な最も古い位置よりも前でないことを確認してください。
無効な位置または存在しない位置に関するエラーが発生した場合は、以下の解決策を使用してください:
位置をリセットする:リアルタイム同期タスクを開始する際に、位置をリセットし、ソースデータベースで利用可能な最も古い位置を選択します。
ログの保持期間を調整する:データベースの位置が期限切れになっている場合は、データベースのログ保持期間を、例えば 7 日間に延長します。
データを再同期する:データが失われた場合は、再度フル同期を実行するか、オフライン同期タスクを設定して欠落したデータを手動で同期します。
よくある質問
リアルタイムデータベース同期に関するよくある質問については、「データ統合に関するよくある質問」および「データ統合のエラー」をご参照ください。
ボタンをクリックし、Manual Input と Built-in Variable の値を組み合わせて送信先インデックス名を構築できます。サポートされている変数には、ソースデータソース名、ソースデータベース名、ソーステーブル名が含まれます。
アイコンをクリックし、Statement Used to Create Index を編集してフィールドを追加します。