DataWorks は、コードを記述することなく同期タスクを開発するためのコードレス ユーザーインターフェース (UI) を提供します。データ同期に使用するデータソースを選択し、必要なスケジューリングパラメータを構成するだけで、単一のソーステーブルまたはシャーディングされたソースデータベースのテーブルから単一の宛先テーブルに、完全データまたは増分データを定期的に同期できます。このトピックでは、コードレス UI を使用してバッチ同期タスクを構成する方法について説明します。必要な構成は、データソースのタイプによって異なります。詳細については、「サポートされているデータソースタイプ、リーダー、およびライター」をご参照ください。
背景情報
Data Integration のバッチ同期機能は、データソースからデータを読み取り、データソースにデータを書き込むためのリーダーとライターを提供します。コードレス UI またはコードエディタを使用して、さまざまなタイプのデータソースのバッチ同期タスクを構成し、単一のソーステーブルまたはシャーディングされたソースデータベースのテーブルから単一の宛先テーブルにデータを同期できます。詳細については、「バッチ同期機能の概要」をご参照ください。
使用上の注意
コードレス UI を使用して、特定タイプのデータソースのバッチ同期タスクを構成することはできません。バッチ同期タスクを構成するときに、現在のデータソースがコードレス UI をサポートしていないことを示すメッセージがシステムに表示された場合は、DataStudio のタスクの構成タブの上部ツールバーにある
アイコンをクリックしてコードエディタに切り替え、コードエディタを使用してタスクを構成できます。詳細については、「コードエディタを使用してバッチ同期タスクを構成する」をご参照ください。
コードレス UI は使いやすく設計されていますが、提供される機能は限定的です。バッチ同期タスクをよりきめ細かく構成する場合は、DataStudio のタスクの構成タブの上部ツールバーにある [変換スクリプト] アイコンをクリックしてコードエディタに切り替え、コードエディタを使用してタスクを構成できます。
前提条件
使用するデータソースが準備されていること。同期タスクを構成する前に、DataWorks コンソールの管理センターの [データソース] ページで、データの読み取り元のデータベースとデータの書き込み先のデータベースを目的のワークスペースにデータソースとして追加する必要があります。これにより、同期タスクを構成するときに、データソースを選択できます。さまざまなデータソースタイプのリーダーとライターを構成する方法については、「データソースのリスト」ディレクトリのトピックを参照してください。
説明バッチ同期タスクを構成する 前に、関連するデータソースタイプ のトピックの パラメータの説明 をよく読んでください。これにより、バッチ同期タスクを正常に構成できます。
バッチ同期でサポートされているデータソースタイプとデータソースの追加については、「サポートされているデータソースタイプ、リーダー、およびライター」をご参照ください。
データソースを追加する前に理解しておく必要のある項目については、「概要」をご参照ください。
ビジネス要件を満たす Data Integration 専用リソースグループが購入されていること。詳細については、「Data Integration 専用リソースグループの作成と使用」をご参照ください。
Data Integration 専用リソースグループとデータソース間にネットワーク接続が確立されていること。詳細については、「ネットワーク接続ソリューション」をご参照ください。
DataStudio ページに移動する
DataStudio ページに移動します。
DataWorks コンソール にログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
手順
ステップ 1: バッチ同期タスクを作成する
ワークフローを作成します。詳細については、「ワークフローを作成する」をご参照ください。
バッチ同期タスクを作成します。
次のいずれかの方法を使用して、バッチ同期タスクを作成できます。
方法 1: DataWorks コンソールにログインし、DataStudio ページの [スケジュール済みワークフロー] ペインに移動します。 [スケジュール済みワークフロー] ペインで、作成したワークフローを見つけ、その名前をクリックします。 [data Integration] を右クリックし、
を選択します。方法 2: DataWorks コンソールにログインし、DataStudio ページの [スケジュール済みワークフロー] ペインに移動します。 [スケジュール済みワークフロー] ペインで、作成したワークフローを見つけ、その名前をダブルクリックします。表示されるワークフロー編集タブの [data Integration] セクションで、[オフライン同期] を右側のキャンバスにドラッグします。
[ノードの作成] ダイアログボックスで、パラメータを構成してバッチ同期タスクを作成します。
ステップ 2: Data Integration 専用リソースグループとデータソース間のネットワーク接続を確立する
ソース、宛先、および Data Integration 専用リソースグループを選択し、リソースグループとデータソース間のネットワーク接続を確立します。
バッチ同期タスクを使用して、シャーディングされたデータベースのテーブルから単一のテーブルにデータを同期できます。詳細については、「シャーディングされたデータベースのテーブルからデータを同期するためのバッチ同期タスクの構成」をご参照ください。
Data Integration 専用リソースグループとデータソース間のネットワーク接続を確立できない場合は、プロンプトに従って、または関連トピックを参照して、ネットワーク接続を構成できます。詳細については、「ネットワーク接続ソリューション」をご参照ください。
DataWorks の Data Integration 共有リソースグループ (デバッグ) は廃止されます。サーバーレスリソースグループを使用することをお勧めします。サーバーレスリソースグループの詳細については、「サーバーレスリソースグループを使用する」をご参照ください。 Data Integration 共有リソースグループの廃止通知の詳細については、「Data Integration 共有リソースグループ (デバッグ) の廃止に関する通知」をご参照ください。
サーバーレスリソースグループを使用して同期タスクを実行する場合、同期タスクの実行に使用できる CU 数の上限を指定できます。リソース不足が原因で同期タスクでメモリ不足 (OOM) エラーが報告された場合は、上限を適切に変更できます。
ステップ 3: ソースと宛先を構成する
データソース選択セクションで、データの読み取り元のテーブルとデータの書き込み先のテーブルを選択し、ソースを構成するときにフィルタ条件を指定します。
バッチ同期タスクを構成するときに実行できる操作は、リーダーまたはライターのタイプによって異なります。次の表に、バッチ同期タスクを構成するときに実行できる一般的な操作を示します。リーダーまたはライターでサポートされている操作と操作の実行方法については、関連するリーダーまたはライターのトピックを参照してください。詳細については、「サポートされているデータソースタイプ、リーダー、およびライター」をご参照ください。
ソースに関連する操作
操作
説明
フィルタ条件を指定する
データの読み取り元のテーブルを選択した後に [フィルタ条件] を指定すると、テーブル内のフィルタ条件を満たすデータのみを同期できます。フィルタ条件をスケジューリングパラメータと共に使用して、増分同期を実装できます。これにより、フィルタ条件はスケジューリングパラメータの設定に応じて動的に変更でき、増分データを同期できます。増分同期の構成と実装は、リーダーのタイプによって異なります。詳細については、「増分データのみを同期するようにバッチ同期タスクを構成する」をご参照ください。
説明バッチ同期タスクのスケジューリングプロパティを構成するときに、フィルタ条件で指定した変数に値を割り当てることができます。バッチ同期タスクのスケジューリングパラメータを構成して、ソースの完全データまたは増分データを宛先テーブルの関連する時間ベースのパーティションに書き込むことができます。スケジューリングパラメータの詳細については、「サポートされているスケジューリングパラメータの形式」をご参照ください。
増分同期を実装するために使用されるフィルタ条件の構文は、データベースでサポートされている構文とほぼ同じです。データ同期の際、バッチ同期タスクは、フィルタ条件に基づいて取得された完全な SQL 文を使用して、ソースからデータを抽出します。
フィルタ条件を指定しない場合、デフォルトではソーステーブルの完全データが同期されます。
リレーショナルデータベースでデータをシャーディングするために使用されるシャードキーを指定する
シャードキーは、ソースデータをシャーディングする基準となるフィールドを指定します。シャードキーを指定すると、ソースデータはシャーディングされ、複数のシャードに分散されます。これにより、バッチ同期タスクは並列スレッドを実行して、データをバッチで読み取ることができます。
説明ソーステーブルのプライマリキー列の名前をシャードキーとして指定することをお勧めします。このようにすると、特定のシャードだけに集中して分散されるのではなく、プライマリキー列に基づいて、データを異なるシャードに均等に分散できます。
シャードキーは、整数データ型のデータのみをシャーディングするために使用できます。サポートされていないデータ型のデータをシャーディングするためにシャードキーを使用すると、バッチ同期タスクは指定したシャードキーを無視し、単一のスレッドを使用してデータを読み取ります。
シャードキーが指定されていない場合、データ同期タスクは単一のスレッドを使用してデータを読み取ります。
シャードキーの構成に対するリーダーのサポートは、リーダーの種類によって異なります。このトピックで提供されている手順は、参考用です。リーダーのトピックを参照して、リーダーがシャードキーの構成をサポートしているかどうかを確認できます。詳細については、「サポートされているデータソースの種類、リーダー、およびライター」をご参照ください。
送信先関連の操作
操作
説明
データ同期の前後に実行する SQL 文を構成する
DataWorks では、特定の種類の送信先にデータが書き込まれる前後に SQL 文を実行できます。
たとえば、MySQL Writer を使用するバッチ同期タスクを構成する場合、SQL 文
truncate table tablename
を [送信先にデータを書き込む前] に実行する文として構成できます。この文は、指定されたテーブルの既存データを削除するために使用されます。送信先にデータが書き込まれた後に実行する SQL 文を構成することもできます。競合が発生した場合に使用される書き込みモードを指定する
パス競合やプライマリキー競合などの競合が発生した場合に、送信先にデータを書き込む書き込みモードを指定できます。構成は、送信先の属性とライターのサポートによって異なります。この項目を構成するには、関連するライターのトピックを参照してください。
ステップ 4: ソースフィールドと変換先フィールド間のマッピングを設定する
ソースと変換先を設定した後、ソースフィールドと変換先フィールド間のマッピングを設定する必要があります。ソースフィールドと変換先フィールド間のマッピングが設定されると、バッチ同期タスクは、マッピングに基づいて、ソースフィールドの値を同じデータ型の変換先フィールドに書き込みます。
ソースフィールドのデータ型が変換先フィールドのデータ型と異なる場合があります。この場合、ソースフィールドの値を変換先フィールドに書き込むことはできません。変換先に書き込めなかった値は、ダーティデータと見なされます。 [チャンネル制御ポリシーの設定] ステップで説明されている操作を参照して、データ同期中に許可されるダーティデータレコードの最大数を指定できます。
ソースフィールドにマッピングされた変換先フィールドがない場合、ソースフィールドのデータを変換先に同期できません。
システムによって自動的に確立されたマッピングがビジネス要件を満たしていない場合は、マッピングを手動で変更する必要があります。
ソースフィールドを、ソースフィールドと同じ名前の変換先フィールドにマッピングしたり、ソースの行のフィールドを変換先の同じ行のフィールドにマッピングしたりできます。フィールドマッピングを設定するときは、次の操作も実行できます。
ソーステーブルにフィールドを追加し、フィールドに値を割り当てる: ソースフィールドリストの [行の追加] をクリックして、ソーステーブルにフィールドを追加できます。フィールドは、定数、スケジューリングパラメーター、および単一引用符(')で囲まれた組み込み変数('123'、'${スケジューリングパラメーター名}'、 '#{組み込み変数名}#' など)にすることができます。
説明スケジューリングパラメーターをフィールドとしてソーステーブルに追加する場合、バッチ同期タスクのスケジューリングプロパティを設定するときに、スケジューリングパラメーターに値を割り当てることができます。スケジューリングパラメーターの詳細については、「サポートされているスケジューリングパラメーターの形式」をご参照ください。
組み込み変数をフィールドとしてソーステーブルに手動で追加し、それらのフィールドを変換先テーブルのフィールドにマッピングします。追加された組み込み変数は、データ同期中に変換先テーブルに同期されます。
次の表に、さまざまなリーダーで使用可能な組み込み変数を示します。
組み込み変数
説明
リーダー
'#{DATASOURCE_NAME_SRC}#'
ソースの名前。
MySQL リーダー
MySQL リーダー (シャーディング)
PolarDB リーダー
PolarDB リーダー (シャーディング)
PostgreSQL リーダー
'#{DB_NAME_SRC}#'
ソーステーブルが属するデータベースの名前。
MySQL リーダー
MySQL リーダー (シャーディング)
PolarDB リーダー
PolarDB リーダー (シャーディング)
PostgreSQL リーダー
'#{SCHEMA_NAME_SRC}#'
ソーステーブルが属するスキーマの名前。
PolarDB リーダー
PolarDB リーダー (シャーディング)
PostgreSQL リーダー
'#{TABLE_NAME_SRC}#'
ソーステーブルの名前。
MySQL リーダー
MySQL リーダー (シャーディング)
PolarDB リーダー
PolarDB リーダー (シャーディング)
PostgreSQL リーダー
ソーステーブルのフィールドを編集する: ソースフィールドリストの
アイコンをクリックして、次の操作を実行できます。
ソースでサポートされている関数を使用して、ソーステーブルのフィールドを処理します。たとえば、Max(id) 関数を使用して、ソーステーブルで ID が最大の行のデータの同期を実装できます。
フィールドマッピングを設定するときにソーステーブルの一部のフィールドのみが表示される場合は、ソーステーブルのフィールドを編集します。
説明MaxCompute リーダーを使用するバッチ同期タスクを設定する場合、関数はサポートされていません。
手順 5: チャンネル制御ポリシーを構成する
チャンネル制御ポリシーを構成して、データ同期の属性を定義できます。関連パラメーターの詳細については、「バッチ同期のチャンネル制御設定」をご参照ください。
パラメーター | 説明 |
[タスクの予想最大同時実行数] | バッチ同期タスクがソースからデータを読み取るか、宛先にデータを書き込むために使用する並列スレッドの最大数。 説明
|
[同期レート] | 速度制限を有効にするかどうかを指定します。
説明 帯域幅は Data Integration によって提供されるメトリックであり、ENI の実際のトラフィックを表すものではありません。ほとんどの場合、ENI トラフィックはチャネルトラフィックの 1 ~ 2 倍です。実際の ENI トラフィックは、データストレージシステムのシリアル化によって異なります。 |
[ダーティデータレコードのポリシー] | ダーティデータレコードの許容最大数。 重要 データ同期中に大量のダーティデータが生成されると、データ同期の全体的な速度に影響します。
説明 ダーティデータとは、ビジネスにとって無意味なデータ、指定されたデータ型と一致しないデータ、またはデータ同期中に例外が発生する原因となるデータのことです。1 つのデータレコードを宛先に書き込むときに例外が発生した場合、そのデータレコードはダーティデータと見なされます。宛先に書き込めなかったデータレコードは、ダーティデータと見なされます。 たとえば、バッチ同期タスクがソースの VARCHAR 型データを宛先の INT 型フィールドに書き込もうとすると、データ変換エラーが発生し、データは宛先に書き込まれません。この場合、データはダーティデータです。バッチ同期タスクを構成するときに、ダーティデータを許可するかどうかを制御できます。また、データ同期中に許可されるダーティデータレコードの最大数を指定することもできます。生成されたダーティデータレコードの数が指定した上限を超えると、バッチ同期タスクは失敗して終了します。 |
[分散実行] | バッチ同期タスクの分散実行モードを有効にするかどうかを指定します。
データ同期のパフォーマンスに高い要件がある場合は、分散実行モードを使用してバッチ同期タスクを実行できます。分散実行モードでバッチ同期タスクを実行すると、ECS インスタンスのフラグメントリソースを活用できます。これにより、リソース使用率が向上します。 重要
|
上記の構成に加えて、バッチ同期タスクの全体的なデータ同期速度は、ソースのパフォーマンスやデータ同期のネットワーク環境などの要因にも影響されます。バッチ同期タスクのデータ同期速度とパフォーマンチューニングの詳細については、「バッチ同期処理の高速化または低速化」をご参照ください。
ステップ 6: バッチ同期タスクのスケジューリングプロパティを構成する
DataWorks でバッチ同期タスクを定期的にスケジュールする場合、タスクのスケジューリングプロパティを構成する必要があります。このステップでは、バッチ同期タスクのスケジューリングプロパティを構成する方法について説明します。バッチ同期タスクの構成タブに移動し、右側のナビゲーションウィンドウで [プロパティ] をクリックして、タスクのスケジューリングプロパティを構成できます。スケジューリングパラメーターの使用方法については、「データ同期でのスケジューリングパラメーターの使用に関する説明」をご参照ください。
スケジューリングパラメーターを構成する: バッチ同期タスクを構成する際に変数を使用する場合、変数にスケジューリングパラメーターを値として割り当てることができます。
時間プロパティを構成する: 時間プロパティは、本番環境でバッチ同期タスクがスケジュールされるモードを定義します。タスクの [プロパティ] タブの [スケジュール] セクションで、インスタンス生成モード、スケジューリングタイプ、スケジューリングサイクルなどのプロパティを構成できます。
リソースプロパティを構成する: リソースプロパティは、バッチ同期タスクを関連するデータ統合専用リソースグループに発行するために使用される専用スケジューリングリソースグループを定義します。[プロパティ] タブの [リソースグループ] セクションで使用したい専用スケジューリングリソースグループを選択できます。
説明DataWorks は、データ統合の専用スケジューリングリソースグループを使用して、データ統合のバッチ同期タスクを発行し、データ統合専用リソースグループを使用してタスクを実行します。バッチ同期タスクのスケジュールに専用スケジューリングリソースグループを使用すると課金されます。タスク発行メカニズムについては、「旧バージョンのリソースグループで実行されるタスクを発行するメカニズム」をご参照ください。
手順 7:バッチ同期タスクをコミットしてデプロイする
バッチ同期タスクを定期的に実行する場合は、本番環境にタスクをデプロイする必要があります。タスクをデプロイする方法の詳細については、「タスクをデプロイする」をご参照ください。
次の手順
バッチ同期タスクを本番環境にデプロイした後、本番環境のオペレーションセンターに移動してタスクを表示できます。タスクの実行と管理、タスクのステータスの監視、タスクの実行に使用するリソースグループの O&M の実行など、バッチ同期タスクに対して O&M 操作を実行する方法については、「バッチ同期タスクの O&M」をご参照ください。