データソース、ネットワーク環境、およびリソースを準備した後、ビジネス要件に基づいて同期タスクタイプを選択し、同期タスクを作成して実行し、データソース間でデータを同期できます。このトピックでは、同期タスクの構成に必要な一般的な手順について説明します。詳細な手順は、選択した同期タスクタイプによって異なります。DataWorks コンソールで、各タイプの同期タスクの構成の詳細を表示できます。
前提条件
使用するデータソースが準備されていること。同期タスクを構成する前に、データの読み取り元となるデータソースとデータの書き込み先となるデータソースを準備する必要があります。こうすることで、同期タスクを構成するときに、データソースを選択できます。サポートされているデータソースタイプとデータソースの追加については、「サポートされているデータソースタイプと同期操作」をご参照ください。
説明データソースを追加する前に理解しておく必要がある項目については、「概要」をご参照ください。
データソース環境が準備されていること。同期タスクを構成する前に、データベースへのアクセスに使用できるアカウントを作成し、データ同期の構成に基づいてデータベースで特定の操作を実行するために必要な権限をアカウントに付与する必要があります。詳細については、「概要」をご参照ください。
背景情報
Data Integration は、データベース内のすべてのデータのバッチ同期(1 回限りのフル同期、定期的なフル同期、1 回限りのフル同期と定期的な増分同期、1 回限りの増分同期、および定期的な増分同期)やリアルタイム同期(1 回限りのフル同期とリアルタイムの増分同期)など、さまざまなタイプの同期タスクを提供します。ソースとデスティネーションが異なれば、サポートされる同期タスクタイプも異なります。DataWorks コンソールで、各タイプのデータソースでサポートされている同期タスクタイプを表示できます。同期タスクによって提供される機能については、「フル同期と増分同期機能の概要」をご参照ください。
制限事項
タイムゾーンをまたいでデータを同期する同期タスクを実行することはできません。同期タスクに使用されるデータソースが、使用するリソースグループとは異なるタイムゾーンにある場合、データ同期の際に日付または時刻データ型のフィールドでエラーが発生します。
データベース内のすべてのデータのバッチ同期に使用される同期タスクを実行する場合、タスクは、タスクに使用されるソースのデフォルトデータベースからのみデータを読み取ることができます。
ソース列の名前変更によって生成された変更は同期できません。
注意事項
次の状況では、リアルタイム同期タスクの同期オフセットを手動で指定する必要があります。
リアルタイム同期タスクが中断された後にタスクを再開する場合、タスクが中断された時点を手動でタスクの同期オフセットとして設定する必要があります。こうすることで、リアルタイム同期タスクが再開された後、タスクはその時点からデータの同期を開始できます。
リアルタイム同期タスクの実行中にデータが失われた場合、または例外が発生した場合、タスクの同期オフセットを、データがデスティネーションへの書き込みを開始した時点よりも前の時点に手動でリセットする必要があります。これにより、データの整合性を確保できます。
デスティネーションテーブルまたはフィールドマッピングに関連する構成の変更など、リアルタイム同期タスクの構成を変更した後、同期データの精度を確保するために、タスクの同期オフセットを手動で指定する必要があります。
同期タスクの実行中に、同期オフセットが正しくないか存在しないことを示すエラーがシステムから報告された場合は、次の方法を参照して問題を解決できます。
同期オフセットのリセット: 同期タスクがリアルタイム同期タスクの場合、タスクの同期オフセットをリセットし、ソースデータベースで使用可能な最も古い同期オフセットを選択できます。
バイナリログの保持期間の変更: 同期タスクで使用されるソースデータベースの同期オフセットの期限が切れている場合は、ソースデータベースのバイナリログの保持期間を変更できます。たとえば、保持期間を 7 日間に設定できます。
データの再同期: 同期タスクの実行中にデータが失われた場合は、同期タスクを実行して完全データを再同期するか、バッチ同期タスクを構成して失われたデータを手動で同期できます。
Data Integration ページに移動する
Data Integration で同期タスクを作成できます。
DataWorks コンソール にログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[data Integration に移動] をクリックします。
手順
ステップ 1: 同期タスクを作成する
次のいずれかの方法を使用して同期タスクを作成できます。
方法 1: Data Integration の [同期タスク] ページに移動します。このページで、目的の [ソース] タイプと [デスティネーション] タイプを選択し、[同期タスクの作成] をクリックします。
方法 2: Data Integration の [同期タスク] ページに移動します。このページの [タスク] セクションに同期タスクが表示されていない場合は、[作成] をクリックします。
ステップ 2: 同期タスクタイプを選択する
[データ同期ソリューションの作成] ページで、ビジネス要件に基づいて [ソース] タイプとデスティネーションタイプを選択します。データソースタイプを選択すると、[同期方法] ドロップダウンリストに、サポートされている同期タスクタイプが表示されます。ビジネス要件に基づいて同期タスクタイプを選択できます。
サポートされているデータソースタイプと同期タスクタイプの詳細については、「サポートされているデータソースタイプとデータ同期ソリューション」をご参照ください。
ステップ 3: Data Integration 専用リソースグループとデータソース間のネットワーク接続を構成する
使用する [ソース]、[デスティネーション]、および [リソースグループ] を選択します。次に、リソースグループとデータソース間のネットワーク接続をテストします。
使用可能なデータソースがない場合は、[データソースの追加] をクリックしてデータソースを追加できます。データソースの詳細については、「概要」をご参照ください。
サーバーレスリソースグループを使用して同期タスクを実行する場合、同期タスクの実行に使用できる CU 数の上限を指定できます。リソース不足のために同期タスクでメモリ不足 (OOM) エラーが報告された場合は、上限を適切に変更できます。
ステップ 4: 同期タスクを構成する
[次へ] をクリックし、表示される指示に基づいて同期タスクを構成します。
ステップ 5: 同期タスクを開始する
作成した同期タスクを実行し、タスクの実行の詳細を表示します。
[データ統合] ページの [タスク] セクションに移動し、新しく作成された同期タスクを見つけます。
[アクション] 列の [開始] をクリックして同期タスクを開始します。
[実行概要] 列に表示される各ステージの横にある空白領域をクリックして、同期タスクの実行の詳細を表示します。
付録: 詳細設定
ソースデータベースとテーブルを選択し、マッピングルールを構成する
ソースデータベースとテーブルを選択すると、デフォルトでは、ソースデータベースとテーブルと同じ名前のデスティネーションスキーマとテーブルにデータが書き込まれます。そのようなデスティネーションスキーマまたはテーブルが存在しない場合、システムはデスティネーションにスキーマまたはテーブルを自動的に作成します。[デスティネーションスキーマ名のマッピングルールのカスタマイズ] パラメーターまたは [デスティネーションテーブル名のマッピングルールのカスタマイズ] パラメーターを構成して、データを書き込むデスティネーションスキーマまたはテーブルの名前を指定できます。マッピングルールでデスティネーションテーブル名を指定して、複数のソーステーブルのデータを同じテーブルに書き込むことができます。また、マッピングルールでプレフィックスを指定して、ソースデータベースとは異なるプレフィックスで始まる名前のデータベース、またはソーステーブルとは異なるプレフィックスで始まる名前のテーブルにデータを書き込むこともできます。
デスティネーションスキーマまたはテーブル名を指定する場合は、命名規則に従い、ピリオド (.) を使用しないでください。これにより、システムが指定された名前を正しく識別して解析できるようになります。
デスティネーションスキーマ名のマッピングルールのカスタマイズ
ソースデータベース名のプレフィックスを文字列に置き換える: 正規表現を使用して、特定のソースデータベースまたはスキーマから同期されたデータを書き込むデスティネーションスキーマの名前を指定できます。
例: プレフィックス
doc_
で始まる名前のソースデータベースから、プレフィックスpre_
で始まる名前のデスティネーションスキーマにデータを同期します。デスティネーションスキーマ名を生成する: 組み込み変数と文字列を連結して、データを書き込むデスティネーションスキーマの名前を指定できます。
例: 前の例で取得したデスティネーションスキーマの名前に文字列を連結します。[ソースデータベース名] を使用して、前の例で取得した処理結果を表し、処理結果にサフィックスを追加します。例:
ソースデータベース名_d
。
デスティネーションテーブル名のマッピングルールのカスタマイズ
ソーステーブル名のプレフィックスを文字列に置き換える: 正規表現を使用して、特定のソーステーブルから同期されたデータを書き込むデスティネーションテーブルの名前を指定できます。
例 1: プレフィックス
doc_
で始まる名前のソーステーブルから、プレフィックスpre_
で始まる名前のデスティネーションテーブルにデータを同期します。例 2: 複数のソーステーブルから同じデスティネーションテーブルにデータを同期します。
table_01
、table_02
、table_03
からmy_table
にデータを同期するには、正規表現を使用してマッピングルールを構成する際に、[ソース] をtable_*
に、[デスティネーション] をmy_table
に設定する必要があります。
デスティネーションテーブル名を生成する: 組み込み変数と文字列を連結して、データを書き込むデスティネーションテーブルの名前を指定できます。
[組み込み変数の編集] セクションの [ソースデータソース名] タブ、[ソースデータベース名] タブ、[ソーステーブル名] タブで文字列置換ルールを個別に構成し、[デスティネーションテーブル名] パラメーターを構成する際に、ルールで指定された組み込み変数を使用できます。
例: 例 2 で取得したデスティネーションテーブルの名前に文字列を連結します。[ソーステーブル名] を使用して、例 2 で取得した処理結果である
my_table
を表します。次に、処理結果にプレフィックスとサフィックスを追加します。たとえば、pre_ソーステーブル名_post
は、デスティネーションテーブル名pre_my_table_post
にマッピングできます。
デスティネーションテーブルを構成する
デスティネーションテーブルのプロパティを定義できます。たとえば、既存のテーブルまたは新しいテーブルにデータを書き込むかどうか、[フィールド]、[フィールドの説明]、[パーティションフィールド]、デスティネーションテーブルのデータライフサイクルを指定できます。
デスティネーションテーブルのプロパティを構成し、[適用してマッピングを更新] をクリックすると、構成したテーブルルールに基づいてソーステーブルがデスティネーションテーブルに自動的にマッピングされます。
デスティネーションテーブルの構成に必要な項目は、デスティネーションタイプによって異なります。DataWorks コンソールで、構成する必要のある項目を表示できます。詳細については、「サポートされているデータソースタイプとデータ同期ソリューション」をご参照ください。
DDL メッセージまたは DML メッセージを処理するためのルールと同期ルールを構成する
構成する必要があるパラメーターは、選択した同期タスクタイプによって異なります。
リアルタイム同期タスクの DDL メッセージまたは DML メッセージを処理するためのルールを構成する
リレーショナルデータベースのバイナリログには、DDL 文が含まれている場合があります。リレーショナルデータベースからデータを同期するようにリアルタイム同期タスクを構成する場合、リアルタイム同期タスクの構成ページの右上隅にある [DDL 機能の構成] をクリックして、関連する DDL メッセージを処理するためのルールを構成できます。DDL 操作によって生成されたデータ変更の同期のサポートは、デスティネーションタイプによって異なります。詳細については、「サポートされている DML 操作と DDL 操作」をご参照ください。特定のデスティネーションタイプの処理ルールを構成することもできます。特定のデスティネーションタイプの処理ルールを構成するには、次の手順を実行します。[データ統合] ページの左側のナビゲーションウィンドウで、 を選択します。[リアルタイム同期の DDL メッセージの処理ポリシー] ページで、DDL 処理ルールを構成します。リアルタイム同期タスクを構成する際に DDL 処理ルールが構成されていない場合は、[リアルタイム同期の DDL メッセージの処理ポリシー] ページで構成されている DDL 処理ルールがデフォルトで使用されます。
データベース内のすべてのデータのバッチ同期に使用される同期タスクの同期ルールを構成する
データベース内のすべてのデータのバッチ同期に使用される同期タスクを構成する場合は、タスクの同期ルールを構成する必要があります。たとえば、増分同期を実装するためのフィルター条件を指定し、タスクのスケジューリング設定を構成する必要があります。
[増分同期を実装する]: WHERE 句を使用して、ソーステーブルから増分データのみを抽出できます。WHERE キーワードを入力する必要はなく、[増分同期の条件] フィールドに WHERE 句のみを入力する必要があります。WHERE 句を指定する場合は、組み込み変数を使用できます。たとえば、
${bdp.system.bizdate}
を使用してタスクのデータタイムスタンプを表すか、${bdp.system.cyctime}
を使用してタスクのスケジューリング時間を表すことができます。説明スケジューリングパラメーターを使用して、データを読み取るソーステーブルとデータを書き込むデスティネーションテーブルを指定できます。スケジューリングパラメーターの使用方法の詳細については、「データ同期でのスケジューリングパラメーターの使用に関する説明」をご参照ください。
[スケジューリング設定を構成する]: データベース内のすべてのデータのバッチ同期に使用される同期タスクは、定期的にスケジュールする必要があります。このような同期タスクを実行してデータを同期する前に、[スケジューリングサイクル]、[有効日]、[スケジューリングを一時停止するかどうか] などのタスクのスケジューリング設定を構成する必要があります。Data Integration におけるデータベース内のすべてのデータのバッチ同期に使用される同期タスクのスケジューリング設定は、DataStudio の同期ノードのスケジューリング設定と同じです。必要なパラメーターの詳細については、「時間プロパティの構成」をご参照ください。
同期タスクのリソースと詳細パラメーターを構成する
同期タスクで次の操作を実行できます。
同期タスクの構成ページの右上隅にある [リソースグループの構成] をクリックし、同期タスクのリソースグループを選択します。
説明DataWorks は、スケジューリング用のリソースグループを使用して、バッチ同期タスクを Data Integration 用のリソースグループに発行し、Data Integration 用のリソースグループでタスクを実行します。したがって、バッチ同期タスクは、スケジューリング用リソースグループのリソースも使用します。
サーバーレスリソースグループを使用して同期タスクを実行する場合、リソースグループの違いに注意を払う必要はありません。データ同期とタスクスケジューリングの両方にサーバーレスリソースグループを使用できます。
スケジューリング専用の resource group を使用して同期タスクを実行する場合、スケジューリングインスタンスの料金が発生します。
詳細については、「DataWorks リソースグループの概要」をご参照ください。
同期タスクの構成ページの右上隅にある [詳細パラメーターの構成] をクリックし、ソースデータベースに許可される最大接続数や並列スレッド数などの項目を構成します。
説明構成できる詳細パラメーターは、データソースタイプによって異なります。DataWorks コンソールで、さまざまなタイプのデータソースに対して構成する必要がある詳細パラメーターを表示できます。
次のステップ
同期タスクが構成されたら、タスクを管理できます。たとえば、タスクにソーステーブルを追加または削除したり、タスクのアラート設定と監視設定を構成したり、サブタスクの実行に関する情報を表示したりできます。詳細については、「フル同期タスクと増分同期タスクの O&M を実行する」をご参照ください。