このトピックでは、コードエディターを使用して定期的にスケジュールされるバッチ同期ノードを設定する方法、およびノードをコミットしてデプロイする方法について説明します。
前提条件
必要なデータソースが設定されていること。データ同期ノードを設定する前に、データの読み取り元となるデータソースとデータの書き込み先となるデータソースを設定する必要があります。こうすることで、バッチ同期ノードを設定するときにデータソースを選択できます。バッチ同期でサポートされているデータソースの種類、Readerプラグイン、およびWriterプラグインについては、「サポートされているデータソースの種類と同期操作」、を参照してください。
説明データソースを設定する前に理解しておく必要がある項目については、「データソースの追加と管理」を参照してください。
ビジネス要件を満たす Data Integration 専用リソースグループが購入されていること。詳細については、Data Integration 専用リソースグループの作成と使用 を参照してください。
Data Integration 専用リソースグループとデータソース間のネットワーク接続が確立されていること。詳細については、ネットワーク接続ソリューション を参照してください。
DataStudio ページに移動する
DataWorks コンソール にログインします。
左側のナビゲーションペインで、[ワークスペース] をクリックします。
上部のナビゲーションバーで、目的のワークスペースが存在するリージョンを選択します。ワークスペースページで、ワークスペースを見つけ、[アクション] 列の [datastudio] をクリックします。 DataStudio ページが表示されます。
手順
Data Integration 専用リソースグループとデータソース間のネットワーク接続を確立する
コードレス ユーザーインターフェース (UI) からコードエディターに変換し、スクリプトテンプレートを適用する
コードをコンパイルしてバッチ同期ノードを設定する (ソースフィールドとデスティネーションフィールド間のマッピングの設定、チャネル制御ポリシーの設定など)
バッチ同期ノードのスケジューリングプロパティを設定する
手順 1: バッチ同期ノードを作成する
ワークフローを作成します。詳細については、ワークフローの作成 を参照してください。
バッチ同期ノードを作成します。
次のいずれかの方法を使用して、バッチ同期ノードを作成できます。
方法 1: DataWorks コンソールにログインします。左側のナビゲーションペインで、[ワークスペース] をクリックします。ワークスペースページで、バッチ同期ノードを作成するワークスペースを見つけ、[アクション] 列の [DataStudio] をクリックします。 DataStudio ページの [スケジュールワークフロー] ペインで、作成したワークフローを見つけ、その名前をクリックします。 [データ統合] を右クリックし、 を選択します。
方法 2: DataWorks コンソールにログインします。左側のナビゲーションペインで、[ワークスペース] をクリックします。ワークスペースページで、バッチ同期ノードを作成するワークスペースを見つけ、[アクション] 列の [DataStudio] をクリックします。 DataStudio ページの [スケジュールワークフロー] ペインで、作成したワークフローを見つけ、その名前をダブルクリックします。表示されるワークフロー編集タブの [データ統合] セクションで、[バッチ同期] をクリックします。
[ノードの作成] ダイアログボックスで、パラメーターを設定してバッチ同期ノードを作成します。
手順 2: バッチ同期ノードを設定する
Data Integration 専用リソースグループとデータソース間のネットワーク接続を確立します。
ソース、デスティネーション、および Data Integration 専用リソースグループを選択し、リソースグループとデータソース間のネットワーク接続を確立します。
説明バッチ同期ノードを使用して、シャーディングデータベースのテーブルから単一のテーブルにデータを同期できます。詳細については、バッチ同期タスクを設定してシャーディングデータベースのテーブルからデータを同期する を参照してください。
Data Integration 専用リソースグループとデータソース間のネットワーク接続を確立できない場合は、プロンプトに従って、または関連トピックを参照して、ネットワーク接続を設定できます。詳細については、ネットワーク接続ソリューション を参照してください。
コードレス UI からコードエディターに変換します。
トップツールバーの [スクリプトモードに切り替え] アイコンをクリックします。

スクリプトが設定されていない場合は、トップツールバーの
アイコンをクリックしてスクリプトテンプレートを適用できます。コードエディターでコードをコンパイルしてバッチ同期ノードを設定します。
次の図は、コードエディターでバッチ同期ノードを設定するために使用される一般的な設定を示しています。
説明DataWorks は、type パラメーターと version パラメーターにデフォルト設定を提供します。デフォルト設定を変更することはできません。
コードのプロセッサー関連の設定は無視できます。これらの設定は必須ではありません。

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 プラグインのトピックを参照してください。
チャネル制御ポリシーを設定します。
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 型フィールドに書き込もうとすると、データ変換エラーが発生し、データはデスティネーションに書き込まれません。この場合、データはダーティデータです。バッチ同期ノードを設定するときに、ダーティデータを許可するかどうかを制御できます。また、データ同期中に許可されるダーティデータレコードの最大数を指定することもできます。生成されたダーティデータレコードの数が指定した上限を超えると、同期ノードは失敗します。
説明前述の設定に加えて、バッチ同期ノードの全体的なデータ同期速度は、ソースのパフォーマンスやデータ同期のネットワーク環境などの要因にも影響されます。バッチ同期ノードのデータ同期速度とパフォーマンチューニングについては、バッチ同期プロセスを高速化または低速化する を参照してください。
[次の手順] をクリックして、バッチ同期ノードのスケジューリングプロパティを設定します。
DataWorks でバッチ同期ノードを定期的にスケジュールするには、ノードのスケジューリングプロパティを設定する必要があります。このサブステップでは、バッチ同期ノードのスケジューリングプロパティを設定する方法について説明します。スケジューリングパラメーターの使用方法については、データ同期におけるスケジューリングパラメーターの使用に関する説明 を参照してください。
スケジューリングパラメーターを設定する: 前述の設定で変数を定義した場合、スケジューリングパラメーターは値として変数に割り当てられます。
時間プロパティを設定する: 時間プロパティは、本番環境でバッチ同期ノードをスケジュールするモードを定義します。バッチ同期ノードの時間プロパティを設定するセクションでは、ノードのインスタンス生成モード、スケジューリングタイプ、スケジューリングサイクルなどの属性を設定できます。
リソースプロパティを設定する: リソースプロパティは、バッチ同期ノードを Data Integration 専用リソースグループに発行するために使用されるスケジューリング専用リソースグループを定義します。使用するスケジューリング専用リソースグループを選択できます。
説明DataWorks は、スケジューリング専用リソースグループを使用して、Data Integration のバッチ同期ノードを Data Integration リソースグループに発行し、Data Integration リソースグループを使用してノードを実行します。スケジューリング専用リソースグループを使用してバッチ同期ノードをスケジュールするための料金が発生します。ノード発行メカニズムの詳細については、「リソースグループ管理」を参照してください。
手順 3: バッチ同期ノードをコミットしてデプロイする
DataWorks でバッチ同期ノードを定期的に実行するには、ノードを本番環境にデプロイする必要があります。ノードをデプロイする方法の詳細については、ノードのデプロイ を参照してください。
次の手順
バッチ同期ノードが本番環境にデプロイされたら、本番環境のオペレーションセンターに移動してノードを表示できます。バッチ同期ノードの O&M 操作 (ノードの実行と管理、ノードの状態の監視、ノードの実行に使用されるリソースグループの O&M など) を実行する方法については、バッチ同期ノードの O&M を参照してください。