このトピックでは、コードレス ユーザーインターフェース (UI) を使用して定期的にスケジュールされるバッチ同期ノードを設定する方法、およびノードをコミットしてデプロイする方法について説明します。
前提条件
必要なデータソースが設定されていること。データ同期ノードを設定する前に、データの読み取り元となるデータソースとデータの書き込み先となるデータソースを設定する必要があります。こうすることで、バッチ同期ノードを設定するときにデータソースを選択できます。バッチ同期でサポートされているデータソースの種類、Reader プラグイン、および Writer プラグインについては、「サポートされているデータソースの種類と同期操作」を参照してください。
説明データソースを設定する前に理解しておく必要がある項目については、「データソースの追加と管理」を参照してください。
ビジネス要件を満たす Data Integration 専用のリソースグループが購入されていること。詳細については、Data Integration 専用のリソースグループを作成して使用する を参照してください。
Data Integration 専用のリソースグループとデータソース間のネットワーク接続が確立されていること。詳細については、ネットワーク接続ソリューション を参照してください。
DataStudio ページに移動する
DataWorks コンソール にログオンします。
左側のナビゲーションペインで、[ワークスペース] をクリックします。
上部のナビゲーションバーで、目的のワークスペースが存在するリージョンを選択します。ワークスペースページで、ワークスペースを見つけ、[アクション] 列の [datastudio] をクリックします。 DataStudio ページが表示されます。
手順
Data Integration 専用のリソースグループとデータソース間のネットワーク接続を確立します。
データの読み取り元となるテーブルとデータの書き込み先となるテーブルを選択し、ソースを設定するときにフィルター条件を指定します。
フィールドマッピングを設定します。
最大転送速度やダーティデータレコードの設定など、チャネル制御ポリシーを設定します。
バッチ同期ノードのスケジューリングプロパティを設定します。
手順 1: バッチ同期ノードを作成する
ワークフローを作成します。詳細については、ワークフローを作成する を参照してください。
バッチ同期ノードを作成します。
次のいずれかの方法を使用して、バッチ同期ノードを作成できます。
方法 1: DataWorks コンソールにログオンします。左側のナビゲーションペインで、[ワークスペース] をクリックします。ワークスペースページで、バッチ同期ノードを作成するワークスペースを見つけ、[アクション] 列の [DataStudio] をクリックします。 DataStudio ページの [スケジュールワークフロー] ペインで、作成したワークフローを見つけ、その名前をクリックします。 [データ統合] を右クリックし、 を選択します。
方法 2: DataWorks コンソールにログオンします。左側のナビゲーションペインで、[ワークスペース] をクリックします。ワークスペースページで、バッチ同期ノードを作成するワークスペースを見つけ、[アクション] 列の [DataStudio] をクリックします。 DataStudio ページの [スケジュールワークフロー] ペインで、作成したワークフローを見つけ、その名前をダブルクリックします。表示されるワークフロー編集タブの [データ統合] セクションで、[バッチ同期] をクリックします。
[ノードの作成] ダイアログボックスで、パラメーターを設定してバッチ同期ノードを作成します。
手順 2: バッチ同期ノードを設定する
Data Integration 専用のリソースグループとデータソース間のネットワーク接続を確立します。
ソース、宛先、および Data Integration 専用のリソースグループを選択し、リソースグループとデータソース間のネットワーク接続を確立します。
バッチ同期ノードを使用して、シャーディングデータベースのテーブルから単一のテーブルにデータを同期できます。詳細については、シャーディングデータベースのテーブルからデータを同期するようにバッチ同期タスクを設定する を参照してください。
Data Integration 専用のリソースグループとデータソース間のネットワーク接続を確立できない場合は、プロンプトに従って、または関連トピックを参照して、ネットワーク接続を設定できます。詳細については、ネットワーク接続ソリューション を参照してください。
重要設定する必要がある項目は、Reader プラグインまたは Writer プラグインによって異なります。次の表は、バッチ同期ノードを設定するときに必要な一般的な設定項目を示しています。 Reader プラグインまたは Writer プラグインでサポートされている設定項目と設定方法については、関連する Reader プラグインまたは Writer プラグインのトピックを参照してください。バッチ同期でサポートされているデータソースの種類、Reader プラグイン、および Writer プラグインについては、「サポートされているデータソースの種類と同期操作」を参照してください。
[次の手順] をクリックして、バッチ同期ノードのソースと宛先を設定します。
データの読み取り元となるテーブルとデータの書き込み先となるテーブルを選択します。
データソース選択セクションで、データの読み取り元となるテーブルとデータの書き込み先となるテーブルを選択し、ソースを設定するときにフィルター条件を指定します。
ソースの設定項目
設定項目
説明
フィルター条件
データの読み取り元となるテーブルを選択した後に [フィルター条件] を指定すると、テーブル内のフィルター条件を満たすデータのみが同期されます。フィルター条件は、スケジューリングパラメーターと一緒に使用できます。こうすることで、フィルター条件はスケジューリングパラメーターの設定に応じて動的に変更でき、増分データを同期できます。増分同期の構成と実装は、Reader プラグインの種類によって異なります。詳細については、増分データのみを同期するようにバッチ同期ノードを設定する を参照してください。
説明バッチ同期ノードのスケジューリングプロパティを設定するときに、フィルター条件で指定した変数に値を割り当てることができます。バッチ同期ノードのスケジューリングパラメーターを設定して、ソースのフルデータまたは増分データを宛先テーブルの関連する時間ベースのパーティションに書き込むことができます。詳細については、サポートされているスケジューリングパラメーターの形式 を参照してください。
増分同期を実装するために使用されるフィルター条件の構文は、データベースでサポートされている構文とほぼ同じです。データ同期中、バッチ同期ノードは、指定されたフィルター条件に基づいて取得された完全な SQL ステートメントを使用して、ソースからデータを抽出します。
デフォルトでは、フィルター条件を指定しないと、ソースのすべてのデータが同期されます。
リレーショナルデータベースのシャードキー
シャードキーは、ソースデータのシャーディング基準となるフィールドを指定します。シャードキーを指定すると、ソースデータはシャーディングされ、複数のシャードに分散されます。こうすることで、バッチ同期ノードは並列スレッドを実行してデータをバッチで読み取ることができます。
説明ソーステーブルのプライマリキー列の名前をシャードキーとして指定することをお勧めします。こうすることで、データは特定のシャードにのみ集中的に分散されるのではなく、プライマリキー列に基づいて異なるシャードに均等に分散されます。
シャードキーは、整数データ型のデータのみをシャーディングするために使用できます。シャードキーを使用してサポートされていないデータ型のデータをシャーディングすると、バッチ同期ノードは指定したシャードキーを無視し、単一のスレッドを使用してデータを読み取ります。
シャードキーが指定されていない場合、データ同期ノードは単一のスレッドを使用してデータを読み取ります。
シャードキーの設定に対する Reader プラグインのサポートは、Reader プラグインの種類によって異なります。このトピックで提供されている手順は参考用です。 Reader プラグインのトピックを参照して、Reader プラグインがシャードキーの設定をサポートしているかどうかを確認できます。バッチ同期でサポートされているデータソースの種類、Reader プラグイン、および Writer プラグインについては、「サポートされているデータソースの種類と同期操作」 を参照してください。
宛先の設定項目
設定項目
説明
データ同期の前後に実行する SQL ステートメント
DataWorks では、特定の種類の宛先にデータを書き込む前後に SQL ステートメントを実行できます。
たとえば、MySQL Writer を使用するバッチ同期ノードを設定するときに、SQL ステートメント
truncate table tablenameを宛先にデータを書き込む前に実行されるステートメントとして設定できます。このステートメントは、指定されたテーブルの既存のデータを削除するために使用されます。また、宛先にデータを書き込んだ後に実行されるステートメントとして SQL ステートメントを設定することもできます。競合が発生した場合に使用される書き込みモード
パス競合やプライマリキー競合などの競合が発生した場合に、宛先にデータを書き込むために使用される書き込みモードを指定できます。設定は、宛先の属性と Writer プラグインのサポートによって異なります。この項目を設定するには、関連する Writer プラグインのトピックを参照してください。
フィールドマッピングを設定します。
ソースフィールドと宛先フィールド間のマッピングが設定されると、バッチ同期ノードは、マッピングに基づいて、ソースフィールドの値を同じデータ型の宛先フィールドに書き込みます。
ソースフィールドのデータ型は、宛先フィールドのデータ型と異なる場合があります。この場合、ソースフィールドの値を宛先フィールドに書き込むことができません。宛先に書き込めなかった値は、ダーティデータと見なされます。 [チャネル制御ポリシーを設定する] サブステップで説明されている操作を参照して、データ同期中に許可されるダーティデータレコードの最大数を指定できます。
説明ソースフィールドにマッピングされた宛先フィールドがない場合、ソースフィールドを宛先に同期できません。
ソースフィールドをソースフィールドと同じ名前の宛先フィールドにマッピングしたり、ソースの行のフィールドを宛先の同じ行のフィールドにマッピングしたりできます。フィールドマッピングを設定するときに、次の操作を実行することもできます。
ソーステーブルにフィールドを追加し、フィールドに値を割り当てる: ソースフィールドリストの [追加] をクリックして、ソーステーブルにフィールドを追加できます。追加されたフィールドは、データ同期中に宛先テーブルに同期されます。フィールドは、'123' や '${変数名}' など、単一引用符 (') で囲まれた定数および変数にすることができます。
説明変数をフィールドとしてソーステーブルに追加する場合、バッチ同期ノードのスケジューリングプロパティを設定するときに、変数に値を割り当てることができます。スケジューリングパラメーターについては、サポートされているスケジューリングパラメーターの形式 を参照してください。
ソーステーブルのフィールドを編集する: ソースフィールドリストの
アイコンをクリックして、次の操作を実行できます。ソースでサポートされている関数を使用して、ソーステーブルのフィールドを処理します。たとえば、Max(id) 関数を使用して、ソーステーブルの ID が最大の行のデータの同期を実装できます。
フィールドマッピングを設定するときにソーステーブルの一部のフィールドのみが表示される場合は、ソーステーブルのフィールドを編集します。
説明MaxCompute Reader を使用するバッチ同期ノードを設定する場合、関数はサポートされていません。
チャネル制御ポリシーを設定します。
チャネル制御ポリシーを設定して、データ同期の属性を定義できます。
パラメーター
説明
[予想される最大同時実行数]
バッチ同期ノードがソースからデータを読み取るか、宛先にデータを書き込むために使用する並列スレッドの最大数。
説明データ同期中に使用される並列スレッドの実際の数は、Data Integration 専用のリソースグループの仕様により、指定されたしきい値以下になる場合があります。 Data Integration 専用のリソースグループの使用料金は、使用される並列スレッドの数に基づいて課金されます。詳細については、パフォーマンスメトリック を参照してください。
[帯域幅調整]
調整を有効にするかどうかを指定します。
調整を有効にする場合は、ソースへの読み取り負荷が大きくなりすぎるのを防ぐために、最大転送速度を指定できます。このパラメーターの最小値は 1 MB/s です。
調整を有効にしない場合、データは、指定された並列スレッドの最大数に基づいて、ハードウェアで許可される最大転送速度で転送されます。
説明帯域幅は Data Integration によって提供されるメトリックであり、Elastic Network Interface (ENI) の実際のトラフィックを表すものではありません。ほとんどの場合、ENI トラフィックはチャネルトラフィックの 1 ~ 2 倍です。実際の ENI トラフィックは、データストレージシステムのシリアル化によって異なります。
[許可されるダーティデータレコード]
許可されるダーティデータレコードの最大数。
重要データ同期中に大量のダーティデータが生成されると、データ同期の全体的な速度に影響します。
このパラメーターが設定されていない場合、データ同期中にダーティデータレコードが許可され、ダーティデータレコードが生成されてもバッチ同期ノードは引き続き実行できます。
このパラメーターを 0 に設定すると、ダーティデータレコードは許可されません。データ同期中にダーティデータレコードが生成されると、バッチ同期ノードは失敗します。
このパラメーターに 0 より大きい値を指定すると、次のようになります。
データ同期中に生成されるダーティデータレコードの数が指定した値以下の場合、ダーティデータレコードは無視され、宛先に書き込まれず、バッチ同期ノードは引き続き実行されます。
データ同期中に生成されるダーティデータレコードの数が指定した値を超えると、バッチ同期ノードは失敗します。
説明ダーティデータとは、ビジネスにとって意味のないデータ、指定されたデータ型と一致しないデータ、またはデータ同期中に例外が発生するデータのことです。単一のデータレコードを宛先に書き込むときに例外が発生した場合、そのデータレコードはダーティデータと見なされます。宛先に書き込めなかったデータレコードは、ダーティデータと見なされます。
たとえば、バッチ同期ノードがソースの VARCHAR 型データを宛先の INT 型フィールドに書き込もうとすると、データ変換エラーが発生し、データは宛先に書き込まれません。この場合、データはダーティデータです。バッチ同期ノードを設定するときに、ダーティデータを許可するかどうかを制御できます。また、データ同期中に許可されるダーティデータレコードの最大数を指定することもできます。生成されたダーティデータレコードの数が指定した上限を超えると、バッチ同期ノードは失敗して終了します。
[分散実行]
バッチ同期ノードの分散実行モードを有効にするかどうかを指定します。
バッチ同期ノードの分散実行モードを有効にすると、システムはノードをスライスに分割し、複数の Elastic Compute Service (ECS) インスタンスに分散して並列実行します。この場合、ECS インスタンスが多いほど、データ同期の速度が速くなります。
バッチ同期ノードの分散実行モードを有効にしない場合、指定された並列スレッドの最大数は、ノードを実行する単一の ECS インスタンスに対してのみ使用されます。
データ同期のパフォーマンスに高い要件がある場合は、バッチ同期ノードを分散実行モードで実行できます。バッチ同期ノードを分散実行モードで実行すると、ECS インスタンスのフラグメントリソースを活用できます。これにより、リソース使用率が向上します。
重要専用のリソースグループに ECS インスタンスが 1 つしかない場合は、バッチ同期ノードを分散実行モードで実行しないことをお勧めします。
1 つの ECS インスタンスでデータ転送速度のビジネス要件を満たせる場合は、分散実行モードを有効にする必要はありません。これにより、ノードの実行モードを簡素化できます。
分散実行モードは、指定した並列スレッドの最大数が 8 以上の場合にのみ有効にできます。
バッチ同期ノードが分散実行モードをサポートするかどうかは、データソースの種類によって異なります。詳細については、Reader プラグインと Writer プラグインのトピックを参照してください。バッチ同期でサポートされているデータソースの種類、Reader プラグイン、および Writer プラグインについては、「サポートされているデータソースの種類と同期操作」を参照してください。
説明上記の構成に加えて、バッチ同期ノードのデータ同期の全体的な速度は、ソースのパフォーマンスやデータ同期のネットワーク環境などの要因にも影響されます。バッチ同期ノードのデータ同期の速度とパフォーマンチューニングについては、バッチ同期プロセスを高速化または低速化する を参照してください。
[次の手順] をクリックして、バッチ同期ノードのスケジューリングプロパティを設定します。
DataWorks でバッチ同期ノードを定期的にスケジュールするには、ノードのスケジューリングプロパティを設定する必要があります。このサブステップでは、バッチ同期ノードのスケジューリングプロパティを設定する方法について説明します。スケジューリングパラメーターの使用方法については、データ同期におけるスケジューリングパラメーターの使用に関する説明 を参照してください。
スケジューリングパラメーターを設定する: バッチ同期ノードの構成で変数を使用する場合、変数にスケジューリングパラメーターを値として割り当てることができます。
時間プロパティを設定する: 時間プロパティは、本番環境でバッチ同期ノードをスケジュールするモードを定義します。バッチ同期ノードの時間プロパティを設定するセクションでは、ノードのインスタンス生成モード、スケジューリングタイプ、スケジューリングサイクルなどの属性を設定できます。
リソースプロパティを設定する: リソースプロパティは、バッチ同期ノードを Data Integration の関連する専用リソースグループに発行するために使用されるスケジューリング専用の resource group を定義します。使用するスケジューリング専用の resource group を選択できます。
説明DataWorks は、スケジューリング用の resource group を使用して、Data Integration のバッチ同期ノードを Data Integration の resource group に発行し、Data Integration の resource group を使用してノードを実行します。スケジューリング用の resource group を使用してバッチ同期ノードをスケジュールするための料金が発生します。ノード発行メカニズムの詳細については、「リソースグループ管理」を参照してください。
[設定の完了] をクリックします。
手順 3: バッチ同期ノードをコミットしてデプロイする
DataWorks でバッチ同期ノードを定期的に実行するには、ノードを本番環境にデプロイする必要があります。ノードのデプロイ方法については、ノードをデプロイする を参照してください。
次の手順
バッチ同期ノードが本番環境にデプロイされたら、本番環境のオペレーションセンターに移動してノードを表示できます。バッチ同期ノードの O&M 操作 (ノードの実行と管理、ノードの状態の監視、ノードの実行に使用される resource group の O&M など) の実行方法については、バッチ同期ノードの O&M を参照してください。