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

DataWorks:データベース全体のリアルタイム同期タスクの設定

最終更新日:Jan 20, 2026

データベース全体のリアルタイム同期は、完全移行と増分キャプチャを組み合わせ、ソースデータベース (MySQL や Oracle など) からターゲットシステムへ低レイテンシーでデータを同期します。このタスクは、履歴データ全体の同期をサポートし、ターゲットのスキーマとデータを自動的に初期化します。その後、シームレスにリアルタイム増分モードに切り替わり、CDC などの技術を使用してデータの変更をキャプチャし、同期します。この機能は、リアルタイムデータウェアハウジングやデータレイク構築などのシナリオに適しています。このトピックでは、MySQL データベースから MaxCompute へリアルタイムで同期する例を用いて、タスクの設定方法を説明します。

前提条件

  • データソースの準備

    • ソースとターゲットのデータソースを作成します。設定の詳細については、「データソース管理」をご参照ください。

    • データソースがデータベース全体のリアルタイム同期をサポートしていることを確認します。「サポートされるデータソースタイプと同期操作」をご参照ください。

    • Hologres や Oracle などの特定のデータソースのログを有効にします。方法はデータソースによって異なります。詳細については、データソースの設定:「データソースリスト」をご参照ください。

  • リソースグループServerless リソースグループを購入し、設定します。

  • ネットワーク接続性:リソースグループとデータソース間のネットワーク接続設定が確立されていることを確認します。

エントリポイント

DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、データ統合 > データ統合を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ統合へ移動] をクリックします。

制限事項

DataWorks は、データベース全体のリアルタイム同期とデータベース全体の完全+増分 (ニアリアルタイム) 同期の 2 つのモードをサポートしています。どちらのモードも既存データを同期し、自動的にリアルタイム増分モードに切り替わります。ただし、レイテンシーとターゲットテーブルの要件が異なります:

  • レイテンシー:データベース全体のリアルタイム同期は、秒から分単位のレイテンシーを提供します。データベース全体の完全+増分 (ニアリアルタイム) 同期は、T+1 のレイテンシーを提供します。

  • ターゲットテーブル (MaxCompute):データベース全体のリアルタイム同期は、Delta Table テーブルタイプのみをサポートします。データベース全体の完全+増分 (ニアリアルタイム) 同期は、すべてのタイプをサポートします。

タスクの設定

ステップ 1:同期タスクの作成

以下のいずれかの方法で同期タスクを作成します:

  • 方法 1:[同期タスク] ページで、[ソース][ターゲット] を選択し、Create Synchronization Task をクリックします。この例では、ソースとして MySQL を、ターゲットとして MaxCompute を選択します。

  • 方法 2:[同期タスク] ページで、タスクリストが空の場合は Create をクリックします。

image

ステップ 2:基本情報の設定

  1. タスク名、タスクの説明、オーナーなどの基本情報を設定します。

  2. 同期タイプを選択します:DataWorks は、ソースとターゲットのデータベースタイプに基づいて、サポートされている Task Type を表示します。この例では、[データベース全体のリアルタイム移行] を選択します。

  3. 同期ステップ:

    • [構造移行]:ソースに一致するターゲットデータベースオブジェクト (テーブル、フィールド、データ型) を自動的に作成します。データは転送されません。

    • [完全初期化] (オプション):指定されたソースオブジェクト (テーブルなど) の既存データをターゲットに複製します。これは通常、初期データ移行または初期化に使用されます。

    • [増分同期] (オプション):完全同期の完了後、ソースからの変更データ (挿入、更新、削除) を継続的にキャプチャし、ターゲットに同期します。

ステップ 3:ネットワークとリソースの設定

  1. [ネットワークおよびリソース設定] セクションで、同期タスクで使用する Resource Group を選択します。タスクに [タスクリソース使用量] (CU) を割り当てることができます。

  2. 追加したMySQL データソースを[ソース]に、追加したMaxCompute データソースを[宛先]に選択し、[接続テスト]をクリックします。image

  3. 両方のデータソースの接続テストが成功したことを確認し、[次へ] をクリックします。

ステップ 4:同期するテーブルの選択

[ソーステーブル] エリアで、ソースデータソースから同期するテーブルを選択します。image アイコンをクリックして、テーブルを [選択されたテーブル] リストに移動します。

image

テーブル数が多い場合は、[データベースフィルタリング] または [テーブルの検索] を使用して、正規表現でテーブルを選択します。

ステップ 5:ターゲットテーブルのマッピング

ソーステーブルとターゲットテーブル間のマッピングルールを定義し、プライマリキー、動的パーティション、DDL/DML 処理などのオプションを設定して、データの書き込み方法を決定します。

パラメーター

説明

マッピング結果の更新

システムは選択されたソーステーブルをリスト表示します。ただし、ターゲットの属性は、マッピングを更新して確認した後にのみ有効になります。

  • 一括で同期するテーブルを選択し、[マッピングの一括更新] をクリックします。

  • ターゲットテーブル名:ターゲットテーブル名は、[ターゲットテーブル名のマッピングルールのカスタマイズ] ルールに基づいて自動的に生成されます。デフォルトは ${Source DB Name}_${Table Name} です。ターゲットテーブルが存在しない場合、システムはそれらを作成します。

宛先テーブル名のマッピングルールのカスタマイズ (任意)

システムは、デフォルトのルールを使用してテーブル名を生成します: ${Source DB Name}_${Table Name}。 また、[宛先テーブル名のマッピングルールのカスタマイズ] 列で [編集] をクリックして、カスタムの宛先テーブル名ルールを追加することもできます。

  • ルール名:ルール名を定義します。ビジネス上の意味が明確な名前を使用してください。

  • ターゲットテーブル名:image ボタンをクリックし、[手動入力] または [組み込み変数] を選択して連結することで、ターゲットテーブル名を生成します。サポートされている変数には、ソースデータソース名、ソースデータベース名、ソーステーブル名が含まれます。

  • 組み込み変数の編集:組み込み変数に対して文字列変換を実行できます。

サポートされているシナリオ:

  1. プレフィックス/サフィックスの追加:定数を設定して、ソーステーブル名にプレフィックスまたはサフィックスを追加します。

    ルールの設定

    適用効果

    image

    image

  2. 統一された文字列置換:ソーステーブル名の文字列 "dev_" を "prd_" に置き換えます。

    ルールの設定

    適用効果

    image

    image

  3. 複数テーブルから単一テーブルへ。

    ルールの設定

    適用効果

    image

    image

[フィールドデータ型のマッピングを編集] (オプション)

システムは、ソースとターゲットのフィールドタイプ間のデフォルトマッピングを提供します。テーブルの右上隅にある [フィールドデータ型のマッピングを編集] をクリックしてマッピング関係をカスタマイズし、[適用してマッピングを更新] をクリックします。

注意:フィールドタイプの変換ルールが正しくないと、変換の失敗、データ破損、またはタスクの中断を引き起こす可能性があります。

[ターゲットテーブル構造の編集] (オプション)

システムは、カスタムのテーブル名マッピングルールに基づいて、存在しないターゲットテーブルを自動的に作成するか、同じ名前の既存のテーブルを再利用します。

DataWorks はソーススキーマに基づいてターゲットスキーマを生成します。通常、手動での介入は不要です。以下の方法でテーブルスキーマを変更することもできます:

  • 単一テーブルへのフィールドの追加:[同期先テーブル名] 列の image.png ボタンをクリックして、フィールドを追加します。

  • フィールドの一括追加:同期するすべてのテーブルを選択し、テーブルの下部にある [一括変更] > [ターゲットテーブル構造 - フィールドの一括変更と追加] を選択します。

  • 列の名前変更はサポートされていません。

既存のテーブルの場合、フィールドの追加のみが可能です。新しいテーブルの場合、フィールド、パーティションフィールドの追加、およびテーブルタイプやプロパティの設定ができます。詳細については、インターフェイスの編集可能なエリアをご参照ください。

値の割り当て

ネイティブフィールドは、ソーステーブルとターゲットテーブルの同じ名前のフィールドに基づいて自動的にマッピングされます。追加フィールドとパーティションフィールドには手動で値を割り当てる必要があります。手順は次のとおりです:

  • 単一テーブルの割り当て: [値の割り当て] 列の [設定] をクリックして、ターゲットテーブルのフィールドに値を割り当てます。

  • 一括割り当て:リストの下部にある [一括変更] > [値の割り当て] を選択して、ターゲットテーブルの同じフィールドに一括で値を割り当てます。

定数または変数を割り当て、[割り当て方法] でタイプを切り替えます。サポートされている方法は次のとおりです。

  • テーブルフィールド

    • 手動割り当て:abc のように定数値を直接入力します。

    • 変数の選択:ドロップダウンリストからサポートされているシステム変数を選択します。変数の具体的な意味は、インターフェイスの image ツールチップで確認できます。

    • 関数:関数を使用してターゲットフィールドの簡単な変換をサポートします。使用方法の詳細については、「関数式を使用したターゲットテーブルフィールドへの値の割り当て」をご参照ください。

  • パーティションフィールドソースフィールドまたはイベント時間の列挙値に基づいて動的にパーティションを作成することをサポートします。

    • 手動割り当てabc のように定数値を直接入力します。

    • ソースフィールド:ソーステーブルのフィールドの値をパーティションフィールドの値として使用します。値のタイプはフィールド値または時間値にすることができます。

      • フィールド値:ソースフィールドの列挙値。パーティションが過剰に作成され、データが分散するのを防ぐため、列挙値の数が限られているフィールドを使用することを推奨します。

      • 時間値:ソースフィールドの値が時間の場合、さまざまなフォーマットに従って処理し、[宛先フォーマット] を指定してパーティション値をフォーマットできます。

        • 時間文字列:「2018-10-23 02:13:56」や「2021/05/18」など、時間を表す文字列。ソースとターゲットのパターンを指定することで、時間フォーマットにシリアル化できます。上記の文字列の例では、yyyy-MM-dd HH:mm:ss および yyyy/MM/dd のフォーマットを使用してシリアル化および識別できます。

        • 時間オブジェクト:ソース値がすでに DateDatetime などの時間タイプのフォーマットである場合、このタイプを直接選択します。

        • UNIX タイムスタンプ (秒):秒レベルのタイムスタンプ。1610529203"1610529203" のような 10 桁のタイムスタンプ形式に準拠する数値または文字列もサポートします。

        • UNIX タイムスタンプ (ミリ秒):ミリ秒レベルのタイムスタンプ。1610529203002"1610529203002" のような 13 桁のタイムスタンプ形式に準拠する数値または文字列もサポートします。

    • 変数の選択:ソースイベントの変更時間 EVENT_TIME をパーティション値のソースとして使用できます。使用方法はソースフィールドと同様です。

    • 関数:関数を使用してソースフィールドを簡単に変換してから、パーティション値として使用することをサポートします。使用方法の詳細については、「関数式を使用したターゲットテーブルフィールドへの値の割り当て」をご参照ください。

説明

注意:パーティションが多すぎると、同期効率が低下します。1 日に 1,000 を超えるパーティションを作成すると、障害が発生してタスクが終了します。割り当てを定義する際には、生成されるパーティションを推定してください。秒レベルまたはミリ秒レベルのパーティション作成方法は、注意して使用してください。

ソース分割列

ドロップダウンリストからソーステーブルのフィールドを選択するか、[分割しない] を選択できます。同期タスクが実行されると、このフィールドに基づいて複数のタスクに分割され、データの同時並行およびバッチ読み取りが可能になります。

テーブルのプライマリキーをソース分割キーとして使用することを推奨します。文字列、浮動小数点、日付などのタイプはサポートされていません。

現在、ソース分割キーはソースが MySQL の場合にのみサポートされています。

完全同期の実行

ステップ 3 で完全同期が設定されている場合、特定のテーブルの完全データ同期を個別にキャンセルできます。これは、完全データがすでに他の手段でターゲットに同期されているシナリオに適用されます。

すべての条件

完全フェーズ中にソースデータをフィルタリングします。ここでは WHERE キーワードなしで where 句を記述するだけです。

DML ルールの設定

DML メッセージ処理により、キャプチャされたデータ変更 (InsertUpdateDelete) をデータがターゲットに書き込まれる前に、詳細にフィルタリングおよび制御できます。このルールは増分フェーズ中にのみ適用されます。

その他

  • [テーブルタイプ]:MaxCompute は標準テーブルと Delta Table をサポートしています。ターゲットテーブルのステータスが「作成予定」の場合、ターゲットテーブル構造の編集時にテーブルタイプを選択できます。既存のテーブルのタイプは変更できません。

    データベース全体のリアルタイム同期は、ターゲットテーブルタイプとして Delta Table のみをサポートします。標準テーブルタイプについては、「完全+増分同期タスクの設定」をご参照ください。
  • テーブルタイプが Delta Table の場合、[テーブルバケット数][履歴データ保持期間 (時間)] を定義できます。

Delta Table の詳細については、「Delta Table」をご参照ください。

ステップ 6:DDL 機能の設定

特定のリアルタイム同期タスクは、ソーステーブル構造のメタデータ変更を検出し、更新を同期するか、アラート、無視、または実行終了などの他のアクションを実行します。

インターフェイスの右上隅にある [DDL 機能の設定] をクリックして、各変更タイプの処理ポリシーを設定します。サポートされているポリシーはチャネルによって異なります。

  • 通常処理:ターゲットはソースからの DDL 変更情報を処理します。

  • 無視:変更メッセージは無視され、ターゲットでは変更は行われません。

  • エラー:データベース全体のリアルタイム同期タスクは終了し、ステータスは [エラー] に設定されます。

  • アラート:ソースでこのような変更が発生した場合、ユーザーにアラートが送信されます。Configure Alert Rule で DDL 通知ルールを設定する必要があります。

説明

DDL 同期によってソース列がターゲットに追加された場合、既存のレコードには新しい列のデータはバックフィルされません。

ステップ 7:その他の設定

アラーム設定

1. アラームの追加

image

(1) Create Rule をクリックしてアラームルールを設定します。

Alert Reason を設定して、Business delay[フェイルオーバー]Task statusDDL NotificationTask Resource Utilization などのタスクのメトリックを監視します。指定されたしきい値に基づいて、CRITICAL または WARNING のアラームレベルを設定できます。

  • Configure Advanced Parameters を設定することで、アラート疲れやメッセージのバックログを防ぐために、アラームメッセージの送信間隔を制御できます。

  • アラート理由として Business delayTask status、または Task Resource Utilization を選択した場合、タスクが正常に戻ったときに受信者に通知する回復通知を有効にすることもできます。

(2) アラームルールの管理。

作成されたアラームルールについては、アラームスイッチを使用してアラームルールが有効かどうかを制御できます。アラームレベルに基づいて、特定の受信者にアラームを送信します。

2. アラームの表示

タスクリストの More > Configure Alert Rule を展開してアラームイベントページに入り、発生したアラーム情報を表示します。

リソースグループの設定

インターフェイスの右上隅にある [リソースグループの設定] パネルで、タスクが使用するリソースグループとその設定を管理できます。

1. リソースグループの表示と切り替え

  • [リソースグループの設定] をクリックして、現在タスクにバインドされているリソースグループを表示します。

  • リソースグループを変更するには、ここで別の利用可能なリソースグループに切り替えます。

2. リソースの調整と「リソース不足」エラーのトラブルシューティング

  • タスクログに Please confirm whether there are enough resources... のようなメッセージが表示された場合、現在のリソースグループの利用可能なコンピューティングユニット (CU) がタスクの開始または実行に不足しています。[リソースグループの設定] パネルでタスクが占有する CU 数を増やして、より多くのコンピューティングリソースを割り当てることができます。

推奨されるリソース設定については、「データ統合の推奨 CU」をご参照ください。実際状況に基づいて設定を調整してください。

詳細パラメーター設定

カスタムの同期要件がある場合は、[詳細設定] 列の [設定] をクリックして詳細パラメーターを変更します。

  1. インターフェイスの右上隅にある [詳細設定] をクリックして、詳細パラメーター設定ページに入ります。

  2. プロンプトに従ってパラメーター値を変更します。各パラメーターの意味はパラメーター名の後に説明されています。

重要

タスクの遅延、他のタスクをブロックする過剰なリソース消費、またはデータ損失などの問題を避けるため、変更前にパラメーターを十分に理解してください。

ステップ 8:同期タスクの実行

  1. 設定が完了したら、[保存] または Complete をクリックしてタスクを保存します。

  2. データ統合 > 同期タスク で、作成した同期タスクを見つけ、Operation 列の Deploy をクリックします。表示されるダイアログボックスで [デプロイ後すぐに開始] を選択し、[確認] をクリックすると、タスクはすぐに実行されます。そうでない場合は、手動でタスクを開始する必要があります。

    説明

    Data Integration タスクは、実行する前に本番環境にデプロイする必要があります。したがって、変更を有効にするには、新しいタスクまたは変更されたタスクをデプロイする必要があります。

  3. Tasks のタスクの Name/ID をクリックして、実行の詳細を表示します。

タスクの編集

  1. データ統合 > Synchronization Task ページで、作成した同期タスクを見つけ、Operation 列の More をクリックし、次に Edit をクリックします。タスク設定の手順に従ってタスク情報を変更します。

  2. 未実行のタスクについては、設定を変更、保存、公開します。

  3. [実行中] 状態のタスクについて、タスクの編集とデプロイ時に [デプロイ後すぐに開始] を選択しなかった場合、元の操作ボタンは [更新を適用] になります。これをクリックして変更をオンラインで適用します。

  4. [更新を適用] をクリックすると、変更に対して「停止公開再起動」のシーケンスがトリガーされます。

    • 変更がテーブルの追加または既存テーブルの切り替えを含む場合:

      更新を適用する際にチェックポイントを選択することはできません。[確認] をクリックすると、新しいテーブルに対してスキーマ移行と完全初期化が実行されます。完全初期化が完了した後、他の元のテーブルとともに増分操作が開始されます。

    • その他の情報が変更された場合:

      更新を適用する際にチェックポイントの選択がサポートされます。[確認] をクリックすると、タスクは指定されたチェックポイントから実行を継続します。指定されていない場合は、最後の停止時間のチェックポイントから実行を開始します。

    変更されていないテーブルは影響を受けず、更新再起動後に最後の停止時点から実行を継続します。

タスクの表示

同期タスクを作成した後、[同期タスク] ページで作成された同期タスクのリストとその基本情報を表示できます。

image

  • [操作] 列で同期タスクを Start または [停止] できます。[その他] では、編集View などの操作を実行できます。

  • 開始されたタスクについては、Execution Overview で基本的な実行ステータスを表示するか、対応する概要エリアをクリックして実行の詳細を表示できます。

    image

ブレークポイントからの再開

適用シナリオ

以下のシナリオで、起動または再起動中にチェックポイントをリセットします:

  • タスクの回復:エラー後の正確なデータ回復を保証するために、中断時点を指定します。

  • トラブルシューティングとバックトラッキング:データ損失または異常を検出した場合、問題が発生する前の時間にチェックポイントをリセットして、データをリプレイおよび修復できます。

  • タスク設定の大きな変更:タスク設定に大きな調整 (ターゲットテーブル構造やフィールドマッピングなど) を加えた後、新しい設定下でのデータ精度を保証するために、明確な時点から同期を開始するようにチェックポイントをリセットすることを推奨します。

操作の説明

Start をクリックします。ダイアログボックスで、Whether to reset the site を選択します:

image

  • リセットしない:タスクは停止前に記録された最後のチェックポイントから再開します。

  • リセットして時間を選択:指定された時間のチェックポイントから実行を開始します。時間がソースの Binlog の範囲内であることを確認してください。

重要

同期タスクの実行時にチェックポイントエラーまたは存在しないというメッセージが表示された場合は、次の解決策を試してください:

  • チェックポイントのリセット:リアルタイム同期タスクを開始するときに、チェックポイントをリセットし、ソースデータベースで利用可能な最も古いチェックポイントを選択します。

  • ログ保持期間の調整:データベースのチェックポイントが期限切れになっている場合は、データベースのログ保持期間を調整することを検討してください (例:7 日間に設定)。

  • データ同期:データがすでに失われている場合は、再度完全同期を実行するか、オフライン同期タスクを設定して失われたデータを手動で同期することを検討してください。

よくある質問

データベース全体のリアルタイム同期に関する一般的な質問については、「リアルタイム同期」および「完全+増分同期」をご参照ください。

その他のケース