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

DataWorks:コードエディターでオフライン同期タスクを設定する

最終更新日:Nov 09, 2025

オフラインタスク設定をより詳細に制御するために、[コードエディター] を使用できます。コードエディターでは、データ同期用の JSON スクリプトを記述し、DataWorks のスケジューリングパラメーターを使用して、単一のソーステーブルまたはシャーディングされたテーブルからターゲットテーブルに完全データまたは増分データを定期的に同期できます。このトピックでは、コードエditor でのオフライン同期タスクの一般的な設定について説明します。設定はデータソースによって異なります。詳細については、「データソースリスト」の各データソースの設定詳細をご参照ください。

シナリオ

以下のシナリオでコードエディターを使用して同期タスクを設定できます:

  • データソースがコードレス UI での設定をサポートしていない場合。

    説明

    UI は、データソースがコードレス UI をサポートしているかどうかを示します。

    image.png

  • データソースの一部の 設定パラメーター は、コードエディターでのみ使用できます。

  • コードエディターを使用して、DataWorks UI で作成できないデータソースを設定できます。

準備

ステップ 1: オフライン同期ノードを作成する

新しいデータ開発

  1. DataWorks コンソールにログインします。ターゲットリージョンに切り替えます。左側のナビゲーションウィンドウで、[データ開発 & O&M] > [データ開発] を選択します。ドロップダウンリストから目的のワークスペースを選択し、[DataStudio に入る] をクリックします。

  2. ワークフローを作成します。詳細については、「ワークフローを編成する」をご参照ください。

  3. バッチ同期ノードを作成します。次のいずれかの方法を使用できます:

    • 方法 1: ワークフローリストの右上隅にある image アイコンをクリックし、[ノードを作成] > [データ統合] > [バッチ同期] を選択します。

    • 方法 2: ワークフロー名をダブルクリックし、[データ統合] ディレクトリから右側のワークフローエディターに [バッチ同期] ノードをドラッグします。

  4. ノードの基本情報、ソース、およびターゲットを設定します。次に、[確認] をクリックします。

以前のデータ開発

  1. DataWorks コンソールにログインします。ターゲットリージョンに切り替えます。左側のナビゲーションウィンドウで、[データ開発 & O&M] > [データ開発] をクリックします。ドロップダウンリストから目的のワークスペースを選択し、[データ開発に入る] をクリックします。

  2. ワークフローを作成します。詳細については、「ワークフローを作成する」をご参照ください。

  3. バッチ同期ノードを作成します。次のいずれかの方法を使用できます:

    • 方法 1: ワークフローを展開し、[データ統合] を右クリックして、[ノードを作成] > [バッチ同期] を選択します。

    • 方法 2: ワークフロー名をダブルクリックし、[データ統合] ディレクトリから右側のワークフローエディターに [バッチ同期] ノードをドラッグします。

  4. プロンプトに従ってバッチ同期ノードを作成します。

ステップ 2: データソースとリソースグループを設定する

コードレス UI からコードエディターにはどのステップでも切り替えられます。ただし、スクリプトが完全に設定されていることを確認するために、次の手順を実行することをお勧めします:

  1. まず、コードレス UI でデータソースとリソースグループを選択し、ネットワーク接続をテストします。

  2. 次に、コードエディターに切り替えます。

システムは、生成された JSON スクリプトにこの情報を自動的に入力します。

または、コードエディターに直接切り替えてから、手動で設定することもできます。これを行うには、JSON コードでデータソースを指定し、右側の [詳細設定] パネルでタスクのリソースグループと必要なリソースを設定します。

説明

ステップ 3: コードエディターに切り替えてテンプレートをインポートする

ツールバーで、[スクリプトに変換] image アイコンをクリックします。

image

スクリプトがまだ設定されていない場合は、ツールバーの [テンプレートをインポート] Import template アイコンをクリックし、画面の指示に従ってスクリプトテンプレートをインポートします。

ステップ 4: スクリプトを編集して同期タスクを設定する

次のセクションでは、コードエディターの一般的な設定について説明します:

説明
  • `type` フィールドと `version` フィールドにはデフォルト値があり、変更できません。

  • プロセッサ関連の設定は設定する必要がないため、スクリプトでは無視できます。

script

  1. reader と writer の基本情報とフィールドマッピングを設定します。

    重要

    設定はプラグインによって異なります。以下の内容は、一般的な設定の例です。プラグインが特定の設定をサポートしているかどうか、およびその設定方法を確認するには、そのプラグインのドキュメントをご参照ください。詳細については、「データソースリスト」の各データソースの Reader スクリプトデモ および Writer スクリプトデモ セクションをご参照ください。

    設定パラメーターを使用して、次の操作を実行できます:

    • Reader

      操作

      説明

      where (同期範囲の設定)

      • 一部のソースタイプはデータフィルタリングをサポートしています。条件 (WHERE 句、`where` キーワードなし) を指定して、ソースデータをフィルタリングできます。実行時に、タスクは条件を満たすデータのみを同期します。詳細については、「シナリオ: 増分データのバッチ同期タスクを設定する」をご参照ください。

      • 増分同期を実行するには、このフィルター条件をスケジューリングパラメーターと組み合わせて動的にすることができます。たとえば、gmt_create >= '${bizdate}' を使用すると、タスクは実行されるたびに現在の日付の新しいデータのみを同期します。また、スケジューリングプロパティを設定するときに、ここで定義された変数に値を割り当てる必要があります。詳細については、「サポートされているスケジューling パラメーターの形式」をご参照ください。

        増分同期を設定する方法は、データソース (プラグイン) によって異なります。
      • フィルター条件を設定しない場合、タスクはデフォルトでテーブルからすべてのデータを同期します。

      splitPk (リレーショナルデータベースのシャードキーの設定)

      ソースデータ内のデータを分割する基準となるフィールドを定義します。タスクの実行中に、データはこのフィールドに基づいて複数のタスクに分割され、同時バッチデータ読み取りが行われます。

      • プライマリキーは通常均等に分散されているため、`splitPk` にはテーブルのプライマリキーを使用することをお勧めします。これにより、結果のシャードでデータホットスポットが発生するのを防ぐことができます。

      • 現在、`splitPk` は整数データの分割のみをサポートしています。文字列、浮動小数点数、日付、またはその他のデータ型はサポートしていません。サポートされていない型を指定すると、`splitPk` 機能は無視され、同期には単一のチャンネルが使用されます。

      • `splitPk` を指定しない場合、またはその値が空の場合、データは単一のチャンネルを介して同期されます。

      • すべてのプラグインがシャードキーを指定してタスク分割ロジックを設定することをサポートしているわけではありません。上記の情報は参考用です。詳細については、特定のプラグインのドキュメントをご参照ください。詳細については、「サポートされているデータソースと同期ソリューション」をご参照ください。

      column (ソースフィールドの定義)

      `column` 配列で、同期するソースフィールドを定義します。定数、変数、および関数をカスタムフィールドとして使用して、ターゲットに書き込むことができます。例としては、'123'、'${variable_name}'、'now()' などがあります。

    • Writer

      操作

      説明

      preSql および postSql (同期前後に実行するステートメントの設定)

      一部のデータソースでは、データが書き込まれる前 (同期前) と後 (同期後) にターゲットで SQL 文を実行できます。

      たとえば、MySQL Writer の [インポート前ステートメント] (preSql) 設定項目で、truncate table tablename コマンドを設定して、同期タスクが開始される前にテーブルから既存のデータをクリアできます。

      writeMode (競合を処理するための書き込みモードの定義)

      このパラメーターは、パスやプライマリキーの競合などの競合が発生した場合に、ターゲットにデータを書き込む方法を定義します。この設定は、データソースと writer プラグインによって異なります。特定の writer プラグインの要件に基づいてこのパラメーターを設定する必要があります。

  2. チャンネル制御。

    setting セクションで、同時実行数、同期レート、ダーティデータ処理などのパフォーマンス設定を構成できます。

    パラメーター

    説明

    executeMode (分散処理能力)

    現在のタスクで分散モードを有効にするかどうかを制御します。

    • `distribute`: 分散処理を有効にします。分散実行モードでは、タスクをシャードに分割し、複数の実行ノードに分散して同時実行できます。これにより、同期速度を実行クラスターのサイズに合わせて水平にスケーリングでき、単一ノードのボトルネックを解消できます。

    • `null`: 分散処理を無効にします。設定された同時実行数は単一のマシン上のプロセスに限定され、複数のマシンの計算能力を活用することはできません。

    重要
    • マシンが 1 台しかない Data Integration 専用リソースグループを使用している場合、複数マシンのリソースを活用できないため、分散モードの使用は推奨されません。

    • 単一のマシンで速度要件を満たせる場合は、タスクの実行を簡素化するために単一ノードモードを使用することをお勧めします。

    • 分散処理を有効にするには、8 以上の同時実行数が必要です。

    • 一部のデータソースは分散実行モードをサポートしています。詳細については、特定のプラグインのドキュメントをご参照ください。

    • 分散処理を有効にすると、より多くのリソースが消費されます。実行時にメモリ不足 (OOM) エラーが発生した場合は、このスイッチを無効にしてみてください。

    concurrent (タスクの最大同時実行数)

    現在のタスクがソースから読み取りまたはターゲットに並行して書き込むための最大スレッド数を定義します。

    説明

    リソース仕様などの要因により、実行時の実際の同時実行数は設定値以下になる場合があります。テストリソースグループの料金は、実際の同時実行数に基づきます。詳細については、「パフォーマンスメトリック」をご参照ください。

    throttle (同期レート)

    同期レートを制御します。

    • `true`: スロットルを有効にします。これにより、抽出速度が速すぎてソースデータベースに過度の圧力がかかるのを防ぎ、ソースデータベースを保護します。最小スロットルレートは 1 MB/s です。

      説明

      `throttle` が `true` に設定されている場合は、mbps (同期レート) パラメーターも設定する必要があります。

    • `false`: スロットルを無効にします。スロットルがない場合、タスクは、設定された同時実行数の制限内で、現在のハードウェア環境で利用可能な最大転送パフォーマンスを使用します。

    説明

    トラフィックメジャーは Data Integration 自体のメトリックであり、実際のネットワークインターフェイスカード (NIC) トラフィックを表すものではありません。通常、NIC トラフィックはチャンネルトラフィックの 1〜2 倍です。実際のトラフィックの増加は、データストレージシステムの転送シリアル化に依存します。

    errorLimit (エラーレコード制御)

    ダーティデータのしきい値とタスクへの影響を定義します。

    重要

    ダーティデータが多すぎると、タスク全体の同期速度に影響を与える可能性があります。

    • 設定されていない場合、ダーティデータはデフォルトで許可されます。これは、ダーティデータが生成されてもタスクが実行され続けることを意味します。

    • 0 に設定した場合、ダーティデータは許可されません。同期中にダーティデータが生成されると、タスクは失敗します。

    • ダーティデータを許可し、しきい値を設定した場合:

      • ダーティデータの量がしきい値内である場合、同期タスクはダーティデータを無視し (ターゲットには書き込まれません)、正常に実行されます。

      • ダーティデータの量がしきい値を超えると、同期タスクは失敗します。

    説明

    ダーティデータとは、ビジネスにとって意味がなく、フォーマットが無効であるか、同期中に問題を引き起こすデータのことです。レコードが宛先データソースに書き込まれているときに例外が発生した場合、そのレコードはダーティデータと見なされます。したがって、書き込みに失敗したデータはすべてダーティデータとして分類されます。

    たとえば、ソースの VARCHAR 型のデータが INT 型の宛先列に書き込まれる場合、無効な変換が原因でデータを宛先に正常に書き込むことができず、ダーティデータが発生します。同期タスクを設定するときに、ダーティデータを許可するかどうかを制御し、しきい値を設定できます。ダーティデータレコードの数が指定されたしきい値を超えると、タスクは失敗します。

    説明

    上記の設定に加えて、全体の同期速度は、ソースデータソースのパフォーマンスやネットワーク環境などの要因にも影響されます。同期速度を最適化する方法の詳細については、「オフライン同期タスクを最適化する」をご参照ください。

ステップ 5: スケジューリングプロパティを設定する

定期的にスケジュールされるバッチ同期タスクの場合、そのスケジューリングプロパティを設定する必要があります。ノードの編集ページで、右側の [スケジューリング設定] をクリックして設定します。

同期タスクのスケジューリングパラメーター、スケジューリングポリシー、スケジューリング時間、およびスケジューリング依存関係を設定する必要があります。設定プロセスは他のデータ開発ノードと同じであり、このトピックでは説明しません。

スケジューリングパラメーターの使用方法の詳細については、「Data Integration におけるスケジューリングパラメーターの一般的なシナリオ」をご参照ください。

ステップ 6: タスクを送信して公開する

  • テストパラメーターを設定します。

    バッチ同期タスク設定ページで、右側の [テスト設定] をクリックし、次のパラメーターを設定してテストを実行できます。

    設定項目

    説明

    リソースグループ

    データソースに接続されているリソースグループを選択します。

    スクリプトパラメーター

    データ同期タスクのプレースホルダーパラメーターに値を割り当てます。たとえば、タスクが ${bizdate} パラメーターで設定されている場合、yyyymmdd 形式で日付パラメーターを設定する必要があります。

  • タスクを実行します。

    ツールバーの image [実行] アイコンをクリックして、データ開発でタスクを実行してテストします。タスクの実行後、ターゲットテーブルタイプのノードを作成してターゲットテーブルデータをクエリし、同期されたデータが期待どおりかどうかを確認できます。

  • タスクを公開します。

    タスクが正常に実行された後、定期的にスケジュールする必要がある場合は、ノード設定ページのツールバーにある image アイコンをクリックして、タスクを本番環境に公開します。タスクの公開方法の詳細については、「タスクを公開する」をご参照ください。

次のステップ

タスクが本番環境に公開された後、本番環境のオペレーションセンターに移動して、スケジュールされたタスクを表示できます。バッチ同期タスクの実行と管理、ステータスの監視、およびリソースグループでの O&M の実行方法の詳細については、「バッチ同期タスクの O&M」をご参照ください。

参考