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

:コードエディターを使用してバッチ同期ノードを設定する (2.0)

最終更新日:Apr 09, 2025

このトピックでは、コードエディターを使用して定期的にスケジュールされるバッチ同期ノードを設定する方法、およびノードをコミットしてデプロイする方法について説明します。

前提条件

  1. 必要なデータソースが設定されていること。データ同期ノードを設定する前に、データの読み取り元となるデータソースとデータの書き込み先となるデータソースを設定する必要があります。こうすることで、バッチ同期ノードを設定するときにデータソースを選択できます。バッチ同期でサポートされているデータソースの種類、Readerプラグイン、およびWriterプラグインについては、「サポートされているデータソースの種類と同期操作」、を参照してください。

    説明

    データソースを設定する前に理解しておく必要がある項目については、「データソースの追加と管理」を参照してください。

  2. ビジネス要件を満たす Data Integration 専用リソースグループが購入されていること。詳細については、Data Integration 専用リソースグループの作成と使用 を参照してください。

  3. Data Integration 専用リソースグループとデータソース間のネットワーク接続が確立されていること。詳細については、ネットワーク接続ソリューション を参照してください。

DataStudio ページに移動する

  1. DataWorks コンソール にログインします。

  2. 左側のナビゲーションペインで、[ワークスペース] をクリックします。

  3. 上部のナビゲーションバーで、目的のワークスペースが存在するリージョンを選択します。ワークスペースページで、ワークスペースを見つけ、[アクション] 列の [datastudio] をクリックします。 DataStudio ページが表示されます。

手順

  1. 手順 1: バッチ同期ノードを作成する

  2. 手順 2: バッチ同期ノードを設定する

    1. Data Integration 専用リソースグループとデータソース間のネットワーク接続を確立する

    2. コードレス ユーザーインターフェース (UI) からコードエディターに変換し、スクリプトテンプレートを適用する

    3. コードをコンパイルしてバッチ同期ノードを設定する (ソースフィールドとデスティネーションフィールド間のマッピングの設定、チャネル制御ポリシーの設定など)

    4. バッチ同期ノードのスケジューリングプロパティを設定する

  3. 手順 3: バッチ同期ノードをコミットしてデプロイする

手順 1: バッチ同期ノードを作成する

  1. ワークフローを作成します。詳細については、ワークフローの作成 を参照してください。

  2. バッチ同期ノードを作成します。

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

    • 方法 1: DataWorks コンソールにログインします。左側のナビゲーションペインで、[ワークスペース] をクリックします。ワークスペースページで、バッチ同期ノードを作成するワークスペースを見つけ、[アクション] 列の [DataStudio] をクリックします。 DataStudio ページの [スケジュールワークフロー] ペインで、作成したワークフローを見つけ、その名前をクリックします。 [データ統合] を右クリックし、[ノードの作成] > [バッチ同期] を選択します。

    • 方法 2: DataWorks コンソールにログインします。左側のナビゲーションペインで、[ワークスペース] をクリックします。ワークスペースページで、バッチ同期ノードを作成するワークスペースを見つけ、[アクション] 列の [DataStudio] をクリックします。 DataStudio ページの [スケジュールワークフロー] ペインで、作成したワークフローを見つけ、その名前をダブルクリックします。表示されるワークフロー編集タブの [データ統合] セクションで、[バッチ同期] をクリックします。

  3. [ノードの作成] ダイアログボックスで、パラメーターを設定してバッチ同期ノードを作成します。

手順 2: バッチ同期ノードを設定する

  1. Data Integration 専用リソースグループとデータソース間のネットワーク接続を確立します。

    ソース、デスティネーション、および Data Integration 専用リソースグループを選択し、リソースグループとデータソース間のネットワーク接続を確立します。

    説明
  2. コードレス UI からコードエディターに変換します。

    トップツールバーの [スクリプトモードに切り替え] アイコンをクリックします。Convert to the code editor

    スクリプトが設定されていない場合は、トップツールバーの Apply a script template アイコンをクリックしてスクリプトテンプレートを適用できます。

  3. コードエディターでコードをコンパイルしてバッチ同期ノードを設定します。

    次の図は、コードエディターでバッチ同期ノードを設定するために使用される一般的な設定を示しています。

    説明
    • DataWorks は、type パラメーターと version パラメーターにデフォルト設定を提供します。デフォルト設定を変更することはできません。

    • コードのプロセッサー関連の設定は無視できます。これらの設定は必須ではありません。

    Script

    1. Reader プラグインと Writer プラグインの基本情報を設定し、ソースフィールドとデスティネーションフィールド間のマッピングを設定します。

      設定が必要なパラメーターは、Reader プラグインと Writer プラグインの種類によって異なります。バッチ同期でサポートされているデータソースの種類、Reader プラグイン、および Writer プラグインについては、「サポートされているデータソースの種類と同期操作」を参照してください。

      関連パラメーターを設定することで、次の操作を実行できます。

      • ソース関連の操作

        操作

        説明

        フィルター条件を指定する

        DataWorks では、特定の種類の Reader プラグインを設定するときに、増分同期を実装するために使用する フィルター条件 を指定できます。たとえば、MySQL Reader を設定するときに、このようなフィルター条件を指定できます。フィルター条件をスケジューリングパラメーターと一緒に使用して、増分同期を実装できます。増分データのみを同期するようにデータ同期ノードを設定する方法については、増分データのみを同期するようにバッチ同期ノードを設定する を参照してください。

        説明
        • 増分同期のサポートと増分同期の実装は、Reader プラグインの種類によって異なります。詳細については、関連トピックを参照してください。

        • 増分同期に関連するパラメーターをサポートする Reader プラグインを設定するときにフィルター条件を指定しない場合、デフォルトではすべてのデータが同期されます。

        • バッチ同期ノードのスケジューリングプロパティを設定するときに、フィルター条件で指定した変数に値を割り当てることができます。バッチ同期ノードのスケジューリングパラメーターを設定して、ソースの完全データまたは増分データをデスティネーションテーブルの関連する時間ベースのパーティションに書き込むことができます。詳細については、サポートされているスケジューリングパラメーターの形式 を参照してください。

        • 増分同期を実装するために使用されるフィルター条件の構文は、データベースでサポートされている構文とほぼ同じです。データ同期の際、バッチ同期ノードは、フィルター条件に基づいて取得された完全な SQL ステートメントを使用して、ソースからデータを抽出します。

        リレーショナルデータベースでデータをシャーディングするために使用されるシャーディングキーを指定する

        シャーディングキーは、ソースデータのシャーディング基準となるフィールドを指定します。シャーディングキーを指定すると、ソースデータはシャーディングされ、複数のシャードに分散されます。こうすることで、バッチ同期ノードは並列スレッドを実行してデータをバッチで読み取ることができます。

        説明
        • ソーステーブルのプライマリキー列の名前をシャーディングキーとして指定することをお勧めします。こうすることで、データはプライマリキー列に基づいて異なるシャードに均等に分散され、特定のシャードにのみ集中的に分散されることがなくなります。

        • シャーディングキーは、整数データ型のデータのみをシャーディングするために使用できます。サポートされていないデータ型のデータをシャーディングするためにシャーディングキーを使用すると、バッチ同期ノードは指定されたシャーディングキーを無視し、単一スレッドを使用してデータを読み取ります。

        • シャーディングキーが指定されていない場合、データ同期ノードは単一スレッドを使用してデータを読み取ります。

        • シャーディングキーの設定に対する Reader プラグインのサポートは、Reader プラグインの種類によって異なります。このトピックで提供されている手順は参考用です。 Reader プラグインのトピックを参照して、Reader プラグインがシャーディングキーの設定をサポートしているかどうかを確認できます。バッチ同期でサポートされているデータソースの種類、Reader プラグイン、および Writer プラグインについては、「サポートされているデータソースの種類と同期操作」を参照してください。

        ソーステーブルにフィールドを追加し、フィールドに値を割り当てる

        ソーステーブルにフィールドを追加し、フィールドに値を割り当てることができます。バッチ同期ノードが実行されると、追加されたフィールドは関連するデスティネーションテーブルに同期されます。フィールドは、シングルクォーテーション (') で囲まれた定数と変数 ('123' や '${変数名}' など) にすることができます。変数をフィールドとしてソーステーブルに追加する場合、バッチ同期ノードのスケジューリングプロパティを設定するときに、変数に値を割り当てることができます。スケジューリングパラメーターの詳細については、サポートされているスケジューリングパラメーターの形式 を参照してください。

        ソーステーブルのフィールドを編集する

        ソースでサポートされている関数を使用して、ソーステーブルのフィールドを処理できます。たとえば、Max(id) 関数を使用して、ソーステーブルの ID が最大の行のデータの同期を実装できます。

        説明

        MaxCompute Reader を使用するバッチ同期ノードを設定する場合、関数はサポートされていません。

      • デスティネーション関連の操作

        操作

        説明

        データ同期の前後に実行する SQL ステートメントを設定する

        DataWorks では、特定の種類のデスティネーションにデータが書き込まれる前後に SQL ステートメントを実行できます。

        たとえば、MySQL Writer を使用するバッチ同期ノードを設定するときに、SQL ステートメント truncate table tablename を、データがデスティネーションに書き込まれる前に実行されるステートメントとして設定できます。このステートメントは、指定されたテーブルの既存のデータを削除するために使用されます。また、データがデスティネーションに書き込まれた後に実行されるステートメントとして SQL ステートメントを設定することもできます。

        競合が発生した場合に使用される書き込みモードを指定する

        パス競合やプライマリキー競合などの競合が発生した場合に、デスティネーションにデータを書き込むために使用される書き込みモードを指定できます。設定は、デスティネーションの属性と Writer プラグインのサポートによって異なります。この項目を設定するには、関連する Writer プラグインのトピックを参照してください。

    2. チャネル制御ポリシーを設定します。

      setting フィールドで、データ同期に使用できる並列スレッドの最大数、最大伝送速度、ダーティデータレコードの設定などのチャネル制御ポリシーを設定できます。

      パラメーター

      説明

      executeMode

      バッチ同期ノードの分散実行モードを有効にするかどうかを指定します。有効な値:

      • distribute: 分散実行モードを有効にします。バッチ同期ノードの分散実行モードを有効にすると、システムはノードをスライスに分割し、複数の Elastic Compute Service (ECS) インスタンスに分散して並列実行します。この場合、ECS インスタンスが多いほど、データ同期速度は速くなります。

      • null: 分散実行モードを無効にします。バッチ同期ノードの分散実行モードを有効にしない場合、指定された並列スレッドの最大数は、ノードを実行する単一の ECS インスタンスに対してのみ使用されます。

      重要
      • 専用リソースグループに ECS インスタンスが 1 つしかない場合は、バッチ同期ノードを分散実行モードで実行しないことをお勧めします。

      • 1 つの ECS インスタンスがデータ伝送速度のビジネス要件を満たしている場合は、分散実行モードを有効にする必要はありません。これにより、ノードの実行モードを簡素化できます。

      • 分散実行モードは、指定した並列スレッドの最大数が 8 以上の場合にのみ有効にできます。

      • バッチ同期ノードが分散実行モードをサポートしているかどうかは、データソースの種類によって異なります。詳細については、Reader プラグインと Writer プラグインのトピックを参照してください。

      concurrent

      バッチ同期ノードがソースからデータを読み取るか、デスティネーションにデータを書き込むために使用する並列スレッドの最大数。

      説明

      データ同期中に使用される実際の並列スレッド数は、Data Integration 専用リソースグループの仕様により、指定されたしきい値以下になる場合があります。 Data Integration 専用リソースグループの使用料金は、使用される並列スレッド数に基づいて課金されます。詳細については、パフォーマンスメトリック を参照してください。

      throttle

      スロットリングを有効にするかどうかを指定します。

      • true: スロットリングを有効にします。スロットリングを有効にすると、ソースへの重い読み取りワークロードを防ぐために最大伝送速度を指定できます。このパラメーターの最小値は 1 MB/秒です。

        説明

        throttle パラメーターを true に設定する場合は、mbps パラメーターも設定する必要があります。 mbps パラメーターは、許可される最大伝送速度を指定します。

      • false: スロットリングを無効にします。スロットリングを有効にしない場合、データは、指定された並列スレッドの最大数に基づいて、ハードウェアで許可される最大伝送速度で伝送されます。

      説明

      帯域幅は Data Integration によって提供されるメトリックであり、elastic network interface (ENI) の実際のトラフィックを表すものではありません。ほとんどの場合、ENI トラフィックはチャネルトラフィックの 1 ~ 2 倍です。実際の ENI トラフィックは、データストレージシステムのシリアル化によって異なります。

      errorLimit

      許可されるダーティデータレコードの最大数。

      重要

      データ同期中に大量のダーティデータが生成されると、データ同期の全体的な速度に影響します。

      • このパラメーターが設定されていない場合、データ同期中にダーティデータレコードが許可され、ダーティデータレコードが生成されてもバッチ同期ノードは引き続き実行できます。

      • このパラメーターを 0 に設定すると、ダーティデータレコードは許可されません。データ同期中にダーティデータレコードが生成されると、バッチ同期ノードは失敗します。

      • このパラメーターに 0 より大きい値を指定すると、次のようになります。

        • データ同期中に生成されるダーティデータレコードの数が指定した値以下の場合、ダーティデータレコードは無視され、デスティネーションに書き込まれず、バッチ同期ノードは引き続き実行されます。

        • データ同期中に生成されるダーティデータレコードの数が指定した値を超えると、バッチ同期ノードは失敗します。

      説明

      ダーティデータとは、ビジネスにとって意味のないデータ、指定されたデータ型と一致しないデータ、またはデータ同期中に例外を引き起こすデータのことです。単一のデータレコードをデスティネーションに書き込むときに例外が発生した場合、そのデータレコードはダーティデータと見なされます。デスティネーションに書き込めなかったデータレコードは、ダーティデータと見なされます。

      たとえば、バッチ同期ノードがソースの VARCHAR 型データをデスティネーションの INT 型フィールドに書き込もうとすると、データ変換エラーが発生し、データはデスティネーションに書き込まれません。この場合、データはダーティデータです。バッチ同期ノードを設定するときに、ダーティデータを許可するかどうかを制御できます。また、データ同期中に許可されるダーティデータレコードの最大数を指定することもできます。生成されたダーティデータレコードの数が指定した上限を超えると、同期ノードは失敗します。

      説明

      前述の設定に加えて、バッチ同期ノードの全体的なデータ同期速度は、ソースのパフォーマンスやデータ同期のネットワーク環境などの要因にも影響されます。バッチ同期ノードのデータ同期速度とパフォーマンチューニングについては、バッチ同期プロセスを高速化または低速化する を参照してください。

  4. [次の手順] をクリックして、バッチ同期ノードのスケジューリングプロパティを設定します。

    DataWorks でバッチ同期ノードを定期的にスケジュールするには、ノードのスケジューリングプロパティを設定する必要があります。このサブステップでは、バッチ同期ノードのスケジューリングプロパティを設定する方法について説明します。スケジューリングパラメーターの使用方法については、データ同期におけるスケジューリングパラメーターの使用に関する説明 を参照してください。

    • スケジューリングパラメーターを設定する: 前述の設定で変数を定義した場合、スケジューリングパラメーターは値として変数に割り当てられます。

    • 時間プロパティを設定する: 時間プロパティは、本番環境でバッチ同期ノードをスケジュールするモードを定義します。バッチ同期ノードの時間プロパティを設定するセクションでは、ノードのインスタンス生成モード、スケジューリングタイプ、スケジューリングサイクルなどの属性を設定できます。

    • リソースプロパティを設定する: リソースプロパティは、バッチ同期ノードを Data Integration 専用リソースグループに発行するために使用されるスケジューリング専用リソースグループを定義します。使用するスケジューリング専用リソースグループを選択できます。

      説明

      DataWorks は、スケジューリング専用リソースグループを使用して、Data Integration のバッチ同期ノードを Data Integration リソースグループに発行し、Data Integration リソースグループを使用してノードを実行します。スケジューリング専用リソースグループを使用してバッチ同期ノードをスケジュールするための料金が発生します。ノード発行メカニズムの詳細については、「リソースグループ管理」を参照してください。

手順 3: バッチ同期ノードをコミットしてデプロイする

DataWorks でバッチ同期ノードを定期的に実行するには、ノードを本番環境にデプロイする必要があります。ノードをデプロイする方法の詳細については、ノードのデプロイ を参照してください。

次の手順

バッチ同期ノードが本番環境にデプロイされたら、本番環境のオペレーションセンターに移動してノードを表示できます。バッチ同期ノードの O&M 操作 (ノードの実行と管理、ノードの状態の監視、ノードの実行に使用されるリソースグループの O&M など) を実行する方法については、バッチ同期ノードの O&M を参照してください。