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

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

最終更新日:Mar 26, 2026

データベース全体のリアルタイム同期機能は、一度限りのフル同期継続的な増分キャプチャを組み合わせて、MySQL や Oracle などのソースデータベース全体を低遅延で送信先システムに同期します。データベース全体のリアルタイム同期タスクは、まず既存データのフル同期を実行し、送信先にスキーマとデータを自動的に初期化します。その後、リアルタイム増分モードにシームレスに切り替わり、Change Data Capture (CDC) などの技術を使用して、以降のデータ変更を継続的にキャプチャおよび同期します。この機能は、リアルタイムデータウェアハウスやデータレイク構築などのユースケースに最適です。本トピックでは、MySQL データベースを MaxCompute に同期する例を用いて、タスクの設定手順を説明します。

前提条件

  • データソースの準備

    • ソースおよび送信先のデータソースを作成済みである必要があります。詳細については、「データソース管理」をご参照ください。

    • データソースがデータベース全体のリアルタイム同期をサポートしていることを確認してください。詳細については、「サポートされるデータソースと同期ソリューション」をご参照ください。

    • MySQL、Hologres、Oracle などの一部のデータソースでは、ログを有効にする必要があります。ログの有効化方法はデータソースによって異なります。詳細については、「データソース一覧」をご参照ください。

    • MaxCompute:Decimal データ型は MaxCompute 2.0 のみでサポートされます。同期を開始する前に、MaxCompute 2.0 データ型を有効にしてください。詳細については、「MaxCompute 2.0 データ型」をご参照ください。

  • リソースグループサーバーレスリソースグループを購入および設定します。

  • ネットワーク接続:リソースグループとデータソース間のネットワーク接続を設定します。

注意事項

  • DataWorks では、データベース同期に次の 2 種類があります。データベース全体のリアルタイム同期およびデータベース全体のフル&増分(ニアリアルタイム)。どちらのタイプも、既存データのフル同期を実行した後、自動的に増分モードに切り替わります。ただし、遅延時間と送信先テーブルの要件が異なります。

    • 遅延時間:データベース全体のリアルタイム同期は秒~分単位の遅延を実現します。データベース全体のフル&増分(ニアリアルタイム)は T+1 の遅延を提供します。

    • 送信先テーブル (MaxCompute)

      • PK Delta Table:データベース全体のリアルタイム同期のすべての機能をサポートします。

      • Standard Table および Append Delta Table:データベース全体のリアルタイム同期タスクで「増分のみ同期」モードを選択した場合、Append モードのみをサポートします。

      • データベース全体のフル&増分(ニアリアルタイム):上記のすべてのテーブルタイプをサポートします。

  • データベース全体のリアルタイム同期タスクは、DataStudio または Data Integration のいずれかで設定できます。両モジュールの機能は同一です。

    • 設定の一貫性:タスク作成場所に関係なく、設定インターフェイス、パラメータ設定、基盤機能は完全に同一です。

    • 双方向同期:Data Integration モジュールで作成されたタスクは、自動的に Data Studio モジュールの data_integration_jobs ディレクトリに同期および表示されます。これらのタスクは、ソースタイプ-送信先タイプ 形式に基づいてチャンネル別に分類され、一元管理が容易になります。

タスクの設定

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

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

  2. 左側ナビゲーションウィンドウで Synchronization Task をクリックします。次に、ページ上部の Create Synchronization Task をクリックし、以下のタスク情報を設定します。

    • Source TypeMySQL

    • Destination TypeMaxCompute

    • Specific Typeデータベース全体のリアルタイム同期

    • Synchronization Mode

      • Schema Migration:データを含まない状態で、ソースと一致するテーブル、フィールド、データ型などのデータベースオブジェクトを送信先に自動作成します。

      • Full Synchronization(オプション):テーブルなどの指定されたソースオブジェクトからすべての既存データを一度だけ完全にコピーして送信先に転送します。通常、初期データ移行または初期化に使用されます。

      • Incremental Sync(オプション):フル同期完了後、ソースからのデータ変更(挿入、更新、削除)を継続的にキャプチャおよび同期します。

ステップ 2:データソースとリソースの設定

  1. Source Data Sourceセクションで、MySQL データソースを選択します。Destinationセクションで、MaxCompute データソースを選択します。

  2. Running Resourcesセクションで、同期タスクのResource Groupを選択し、タスクにResource GroupCUを割り当てます。

    説明

    タスクリソースが不足している旨のメッセージ(例:Please confirm whether there are enough resources...)がタスクリソースログに表示された場合、現在のリソースグループ内の利用可能なコンピューティングユニット (CU) がタスクの開始または実行に不十分であることを意味します。Configure Resource Groupパネルでタスクが使用する CU 数を増やすことで、より多くのコンピューティングリソースを割り当てることができます。

    推奨リソース設定については、「Data Integration の推奨 CU 数」をご参照ください。実際のワークロードに基づいて設定を調整してください。

  3. ソースおよび送信先の両方のデータソースが接続チェックに合格していることを確認します。

ステップ 3:同期ソリューションの設定

1. データソースの設定

  • このステップでは、ソーステーブルリストから同期するテーブルを選択し、image アイコンをクリックして選択済みテーブルリストに移動させます。多数のテーブルがある場合は、Database FilteringまたはTable filteringを使用して正規表現を設定し、テーブルを選択できます。

    image

  • 同じ構造を持つ複数のシャード化されたデータベースおよびテーブルからデータを単一の送信先テーブルに書き込むには、正規表現を使用してテーブルを選択できます。

    image
    ソーステーブル設定に正規表現を入力すると、DataWorks は一致するすべてのソーステーブルを自動的に識別し、そのデータを式に対応する送信先テーブルに書き込みます。

    説明

    この方法は、シャード化されたテーブルのマージおよび同期に適しており、複数の多対一同期ルールを個別に追加する必要がなくなるため、設定効率が向上します。

2. データ送信先の設定

データベース全体のリアルタイム同期タスクでIncremental Syncのみを選択した場合、送信先テーブルへの書き込みについて増分同期モードを設定できます。

  • Replay:このモードは PK Delta Table のみでサポートされます。通常の同期と同様に、データフィールドのみを同期します。

  • Incremental stream:このモードは Standard Table および Append Delta Table でサポートされます。ソーステーブルからのリアルタイムデータに加え、挿入、更新、削除などのメタデータを送信先テーブルに追記します。増分ストリーム形式の詳細については、「付録:増分ストリームテーブル形式」をご参照ください。

3. 送信先テーブルのマッピング

このステップでは、ソーステーブルと送信先テーブルのマッピングルールを定義し、プライマリキー、動的パーティション、DDL/DML 設定のルールを指定して、データの書き込み方法を決定します。

操作

説明

Refresh

システムは選択したソーステーブルを自動的に一覧表示しますが、送信先テーブルの具体的な属性は、マッピングを更新して確定した後に有効になります。

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

  • 送信先テーブル名:送信先テーブル名は、Customize Mapping Rules for Destination Table Namesルールに基づいて自動生成されます。デフォルトは ${source_database_name}_${table_name} です。この名前のテーブルが送信先に存在しない場合、システムが自動的に作成します。

Customize Mapping Rules for Destination Table Names(オプション)

システムにはデフォルトのテーブル名生成ルールがあります:${source_database_name}_${table_name}。また、Customize Mapping Rules for Destination Table Names列のEditボタンをクリックして、送信先テーブル名のカスタムルールを追加することもできます。

  • ルール名:ルールの名前を定義します。わかりやすい名前を使用することを推奨します。

  • 送信先テーブル名:image アイコンをクリックしてManually enterまたはBuilt-in Variableを選択し、名前の一部を連結することで送信先テーブル名を生成できます。変数には、ソースデータソース名、ソースデータベース名、ソーステーブル名が含まれます。

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

この機能は以下のシナリオをサポートします。

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

    ルール設定

    結果

    image

    image

  2. 統一的な文字列置き換え:ソーステーブル名の文字列 dev_prd_ に置き換えます。

    ルール設定

    結果

    image

    image

  3. 複数テーブルのデータを 1 つのテーブルに書き込む:送信先テーブル名を定数として設定します。

    ルール設定

    結果

    image

    image

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

システムはソースと送信先のフィールド型のデフォルトマッピングを提供します。テーブル右上隅のEdit Mapping of Field Data Typesをクリックして、マッピング関係をカスタマイズできます。設定後、Apply and Refresh Mappingをクリックします。

フィールド型マッピングを編集する際は、型変換ルールが正しいことを確認してください。そうでないと、型変換が失敗し、ダーティデータやタスク中断を引き起こす可能性があります。

送信先テーブル構造の編集(オプション)

カスタムテーブル名マッピングルールに基づき、システムは新しい送信先テーブルを作成するか、同じ名前の既存テーブルを再利用します。

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

  • 単一テーブルにフィールドを追加するには、image.png ボタンをクリックします。Target Table 列でフィールドを追加します。

  • 一括でのフィールド追加:同期するすべてのテーブルを選択し、テーブル下部のBatch Edit > Destination Table Schema - Batch Modify and Add Fieldを選択します。

  • カラム名の変更はサポートされていません。

既存テーブルの場合、フィールドの追加のみが可能です。新規テーブルの場合、フィールド、パーティションフィールドの追加、テーブルタイプまたはプロパティの設定が可能です。詳細については、UI の編集可能領域をご確認ください。

Value assignment

ネイティブフィールドは、ソーステーブルと送信先テーブルで同じ名前のフィールドに基づいて自動的にマッピングされます。新たに追加されたフィールドおよびパーティションフィールドについては、手動で値を割り当てる必要があります。以下の操作を実行します。

  • 単一テーブルへの値割り当て:Value assignment列のConfigurationボタンをクリックして、送信先テーブルフィールドに値を割り当てます。

  • 一括での値割り当て:リスト下部のBatch Edit > Value assignmentを選択して、複数の送信先テーブルの同一フィールドに一括で値を割り当てます。

Value Typeでタイプを切り替えることで、定数および変数を割り当てることができます。以下の方法がサポートされています。

  • テーブルフィールド

    • 手動入力:直接定数値(例:abc)を入力します。

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

    • 関数:関数を使用して送信先フィールドに対して簡単な変換を実行できます。詳細については、「関数式を使用して送信先テーブルフィールドに値を割り当てる」をご参照ください。

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

    • 手動入力:直接定数値(例:abc)を入力します。

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

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

      • 時間値:ソースフィールドに時間値が含まれる場合、異なる形式に基づいて処理し、Target formatを指定してパーティション値をフォーマットできます。

        • 時刻文字列:時間を表す文字列(例:"2018-10-23 02:13:56" または "2021/05/18")。ソースおよび送信先の時刻形式を指定することで、時刻形式にシリアル化できます。上記の例では、yyyy-MM-dd HH:mm:ssyyyy/MM/dd などの形式を使用してシリアル化を実行できます。

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

        • UNIX タイムスタンプ(秒):秒単位のタイムスタンプです。10 桁のタイムスタンプ形式に準拠する数値または文字列(例:1610529203 および "1610529203")もサポートされます。

        • UNIX タイムスタンプ(ミリ秒):ミリ秒単位のタイムスタンプです。13 桁のタイムスタンプ形式に準拠する数値または文字列(例:1610529203002 および "1610529203002")もサポートされます。

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

    • 関数:関数を使用してソースフィールドに対して簡単な変換を実行し、その結果をパーティション値として使用できます。詳細については、「関数式を使用して送信先テーブルフィールドに値を割り当てる」をご参照ください。

説明

パーティションを過剰に作成すると、同期効率に悪影響を及ぼす可能性があります。1 日に 1,000 個を超える新規パーティションが作成された場合、パーティション作成は失敗し、タスクは終了します。したがって、パーティションフィールドの割り当て方法を定義する際は、潜在的なパーティション数を事前に見積もる必要があります。秒またはミリ秒単位でのパーティション作成は慎重に行ってください。

ソース分割カラム

ソース分割カラムのドロップダウンリストからソーステーブルのフィールドを選択するか、Not Splitを選択します。実行中、同期タスクはこのフィールドに基づいて複数のサブタスクに分割され、同時実行によるバッチ読み取りが可能になります。

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

現在、ソース分割カラムは MySQL ソースでのみサポートされています。

テーブルのフル同期をスキップ

タスクステップでフル同期を設定している場合、特定のテーブルについてスキップを選択できます。これは、フルデータがすでに他の手段で送信先に同期済みである場合に便利です。

Full condition

これにより、フル同期フェーズ中にソースデータをフィルタリングできます。WHERE 句の内容のみを記述し、WHERE キーワード自体は記述しないでください。

Configure DML Rule

DML メッセージ処理により、ソースからキャプチャされたデータ変更(InsertUpdateDelete)を送信先に書き込む前にフィルタリングおよび制御できます。このルールは増分同期フェーズでのみ有効です。

その他

Table Type:MaxCompute は Standard Table、PK Delta Table、および Append Delta Table をサポートします。送信先テーブルがまだ作成されていない場合、テーブル構造を編集する際にテーブルタイプを選択できます。既存テーブルのタイプは変更できません。

  • データベース全体のリアルタイムフル+増分モードは、PK Delta Table タイプの送信先テーブルのみをサポートします。

  • フル増分モードの Replay モードは PK Delta Table をサポートします。Incremental stream モードは Standard Table および Append Delta Table をサポートします。

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

ステップ 4:高度な設定

高度なパラメーター

カスタム同期要件に合わせてタスク設定を微調整する必要がある場合は、Advanced Parametersタブに移動して、高度なパラメーターを変更できます。

  1. UI の右上隅にある 高度な設定 をクリックして、高度なパラメーター設定ページに移動します。

  2. ツールチップに従ってパラメーター値を変更します。各パラメーターの意味は、その名前の後に説明されています。

  3. AI 搭載の設定機能も使用できます。自然言語で変更指示(例:タスクの同時実行数の調整)を入力すると、AI モデルが推奨パラメーター値を生成します。実際のニーズに基づいて、これらの値を受け入れるかどうかを選択できます。

    image

重要

タスク遅延、他のタスクをブロックするほどの過剰なリソース消費、データ損失などの予期しない問題を回避するため、これらのパラメーターの意味を十分に理解した上で変更してください。

DDL 設定

一部のリアルタイム同期タスクでは、ソーステーブル構造のメタデータ変更を検出し、送信先に通知できます。送信先では、この更新を同期するか、アラートの送信、変更の無視、タスクの終了などの他のアクションを実行できます。

UI の右上隅にある Configure DDL Capability をクリックして、各タイプの変更に対する処理ポリシーを設定できます。サポートされるポリシーはチャンネルによって異なります。

  • 通常処理:送信先がソースからの DDL 変更を処理します。

  • 無視:変更メッセージを無視し、送信先では変更を行いません。

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

  • アラート:このタイプの変更がソースで発生した際にユーザーにアラートを送信します。Configure Alert Rule設定で DDL 通知ルールを構成する必要があります。

説明

DDL 同期で送信先に新しいカラムが追加された場合、システムは既存の行に対してそのカラムのデータをバックフィルしません。

ステップ 5:タスクのデプロイおよび実行

  1. タスク設定後、Saveをクリックします。

  2. データベース全体の同期タスクは直接デバッグできません。Operation Centerにデプロイして実行する必要があります。したがって、新規タスクの作成時でも既存タスクの編集時でも、変更を有効にするにはタスクをDeployする必要があります。

  3. タスクをデプロイする際、Start immediately after deploymentを選択すると、タスクも同時に開始されます。選択しない場合、デプロイ完了後、Data Integration > Synchronization Taskページに移動し、対象タスクの操作列で手動でタスクを開始します。

  4. Tasks内の対応するタスクのName/IDをクリックして、詳細な実行プロセスを表示します。

ステップ 6:アラートの設定

1. アラートルールの追加

Data Integration > Synchronization Taskリストで、対応するリアルタイムフルデータベース同期タスクを見つけ、操作列のMore > アラーム設定をクリックして、タスクのアラートポリシーを設定します。

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. Data Integration > Synchronization Taskページで、作成した同期タスクを見つけ、Operation列のMoreをクリックし、次にEditをクリックします。タスク情報を変更できます。手順はタスク設定時と同じです。

  2. 実行中ではないタスクの場合、設定を直接変更して保存し、その後タスクをオペレーションセンターにデプロイすることで変更が有効になります。

  3. Runningのタスクの場合、Start immediately after deploymentを選択せずにタスクを編集およびデプロイすると、元の操作ボタンがApply Updatesに変わります。このボタンをクリックすることで、オペレーションセンターで変更が有効になります。

  4. [更新の適用] をクリックすると、システムは「停止デプロイ再起動」の順序で変更を適用します。

    • 新規テーブルの追加または既存テーブルへの切り替えの場合:

      更新の適用時にチェックポイントを選択できません。確認をクリックすると、システムは新規テーブルに対して構造移行およびフル同期を実行します。完了後、新規テーブルの増分同期が元のテーブルとともに開始されます。

    • その他の情報を変更した場合:

      更新の適用時にチェックポイントを選択できます。確認をクリックすると、タスクは指定されたチェックポイントから再開します。チェックポイントを指定しない場合、最後に停止した時点から再開します。

    変更されていないテーブルは影響を受けません。更新および再起動後、最後に停止した時点から再開します。

タスクの確認

同期タスクを作成後、同期タスクページで作成済みタスクの一覧および基本情報を確認できます。

image

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

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

    image

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

ユースケース

チェックポイントを手動でリセットするのは、以下のシナリオで役立ちます。

  • タスク復旧およびデータ継続:タスクが中断された場合、中断時間を新しい開始チェックポイントとして手動で指定し、データ復旧の精度を確保する必要があります。

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

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

手順

Startをクリックします。表示されるダイアログボックスで、Whether to reset the siteを選択できます。

image

  • 最後に停止した時点から再開するには、リセットオプションをオフにしてタスクを直接実行します。タスクは最後に記録されたチェックポイントから継続します。

  • 特定の時点から開始するには、リセットオプションをオンにして時間を選択します。タスクは指定された時間のチェックポイントから開始します。選択した時間がソースの binlog 保持期間内であることを確認してください。

重要

同期タスクの実行時に「チェックポイントエラー」または「チェックポイントが存在しません」というメッセージが表示された場合は、以下の解決策をお試しください。

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

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

  • データ同期:データが失われている場合、再度フル同期を実行するか、オフライン同期タスクを作成して手動で不足しているデータを同期します。

よくある質問

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

付録:増分ストリーム形式

フラット化されたソーステーブルフィールド

フィールド名

説明

sequence_id

増分イベントのレコード ID です。値は一意かつ増分的です。

operation_type

操作タイプ (I/D/U) です。

execute_time

データに対応するタイムスタンプです。

before_image

変更前のイメージかどうかを示します (Y/N)。

after_image

変更後のイメージかどうかを示します (Y/N)。

src_datasource

ソースデータソースです。

src_database

ソースデータベースです。

src_table

ソーステーブルです。

フィールド 1

実際のデータフィールド 1 です。

フィールド 2

実際のデータフィールド 2 です。

フィールド 3

実際のデータフィールド 3 です。

JSON にマージされたソースフィールド

フィールド名

説明

sequence_id

増分イベントのレコード ID です。値は一意かつ増分的です。

operation_type

操作タイプです。
DML:I/D/U
DDL:ALTER、TRUNCATE、RENAME




execute_time

データに対応するタイムスタンプです。

before_image

変更前のイメージかどうかを示します (Y/N)。

after_image

変更後のイメージかどうかを示します (Y/N)。

src_datasource

ソースデータソースです。

src_database

ソースデータベースです。

src_table

ソーステーブルです。

ddl_sql

DDL 操作の場合、このフィールドには DDL 文が含まれます。

data_columns

実際のデータフィールドが JSON オブジェクトにマージされます。