このトピックでは、Hologres データベースから MaxCompute にオフラインモードでフルデータと増分データを同期する方法について説明します。
制限
この例では、Data Integration 専用のリソースグループのみがサポートされています。
前提条件
ソースおよびデスティネーションとして使用するデータソースが構成されています。
この例では、Hologres データソースをソースとして使用し、MaxCompute データソースをデスティネーションとして使用します。DataWorks コンソールの管理センターにある [データソース] ページで、現在のワークスペースに Hologres データソースと MaxCompute データソースを追加する必要があります。2 つのタイプのデータソースでサポートされている同期機能については、Hologres データソース および MaxCompute データソース をご参照ください。
Data Integration 専用のリソースグループが購入され、DataWorks ワークスペースに関連付けられ、リソースグループとデータソース間のネットワーク接続が確立されます。
この例では、Data Integration 専用のリソースグループのみがサポートされています。Data Integration 専用のリソースグループを購入して構成し、リソースグループと Hologres データソースおよび MaxCompute データソース間のネットワーク接続を確立する必要があります。Data Integration 専用のリソースグループの購入および構成方法については、Data Integration 専用のリソースグループの作成と使用をご参照ください。
同期タスクの作成と構成
Data Integration ページに移動します。
DataWorks コンソール (DataWorks console) にログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションペインで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ統合に移動] をクリックします。
[データ統合] ページの左側のナビゲーションペインで、[同期タスク] をクリックします。[同期タスク] ページで、[ソース] ドロップダウンリストから [Hologres] を選択し、[デスティネーション] ドロップダウンリストから [MaxCompute] を選択して、[同期タスクの作成] をクリックします。
同期タスクの基本情報を構成します。
ソースと宛先: ソースの種類として [hologres] を選択し、宛先のタイプとして [maxcompute] を選択します。
新しいノード名: ビジネス要件に基づいて同期タスクの名前を指定します。
同期方法: [データベース全体のオフライン同期] を選択します。
同期モード:
[フル初期化] を選択すると、1 回限りの同期または定期的なフルデータの同期を実行できます。
増分データの 1 回限りの同期または定期的な同期を実行する場合は、[同期モード] パラメーターで [増分同期] を選択します。
全データのワンタイム同期と増分データの定期同期を実行する場合は、[同期モード] パラメーターで [フル初期化] と [増分同期] を選択します。
ネットワークとリソースの設定: このセクションでは、事前に準備したHologresデータソース、MaxComputeデータソース、およびData Integration専用のResource Groupを選択し、[接続テスト] をクリックして、Resource Groupとデータソース間のネットワーク接続をテストします。
同期タスクに固有の情報を構成します。
この例では、Hologres データソースから MaxCompute データソースにデータを同期するために使用される同期タスクが、2 つの一般的なシナリオに基づいて構成されています。実際のビジネスシナリオでは、ビジネス要件に基づいて同期タスクを構成できます。詳細については、このトピックの「シナリオ 1:定期的に全データを同期する同期タスクを構成する」セクションと「シナリオ 2:一度に全データを同期し、定期的に増分データを同期する同期タスクを構成する」セクションをご参照ください。
シナリオ 1:定期的に全データを同期する同期タスクを構成する
[構造的移行] と [完全初期化] を同期モードパラメーターに選択した場合、同期タスクに対して以下の構成を行う必要があります。
読み取り元のテーブルを選択します。
[データソースとテーブルの選択] セクションで、[ソーステーブル] リストからデータを読み取るテーブルを選択し、右矢印をクリックして選択したテーブルを [選択したテーブル] リストに移動します。正規表現を使用して、目的のテーブルを名前で検索できます。
完全同期モードを構成します。
「フル同期と増分同期の構成」セクションで、フル同期パラメーターに [定期同期] を選択します。次に、[定期スケジュールのスケジューリング パラメーターの構成] をクリックして、定期スケジュールのスケジューリング パラメーターを構成します。スケジューリング パラメーターの詳細については、「サポートされているスケジューリング パラメーターの形式」をご参照ください。
ソースのテーブルとターゲットのテーブル間のマッピングを更新します。
「宛先テーブルのマッピングルール」セクションで、ソーステーブルを見つけ、更新[アクション] 列の をクリックします。その後、システムは [宛先テーブル名] 列に宛先テーブル名を表示します。
宛先に新しいテーブルが作成された場合、
[宛先テーブル名] 列の アイコンをクリックして、テーブルのスキーマを変更できます。たとえば、テーブルにフィールドを追加したり、フィールドをテーブルの主キーとして指定したりできます。
宛先にテーブルが既に存在する場合、テーブルを表示することのみ可能です。
ソーステーブルをすべて選択し、[一括更新マッピング結果] をクリックして、ソーステーブルと宛先テーブル間のマッピングを更新します。
同期前に宛先テーブルのすべてのデータをクリアするための設定を構成します。
宛先テーブルのフル同期を実行する前にすべてのデータをクリアすると、宛先テーブルに同期されるデータが、マップされたソーステーブルのデータと同じであることを保証できます。構成ページの右上隅にある [高度なパラメーターの構成] をクリックし、[高度なパラメーターの構成] パネルの [Writer Config] タブをクリックし、[同期前にテーブルをクリア] パラメーターを true に設定して、[OK] をクリックします。
テーブル レベルで定期スケジュールの設定を構成します。
テーブルレベルで定期スケジュールのスケジューリングパラメータを設定できます。ビジネス要件に基づいて、単一のテーブルマッピングレコードまたは複数のテーブルマッピングレコードの設定を一度に変更できます。スケジューリングサイクル、スケジューリング用リソースグループなどのパラメータを設定できます。定期スケジュールのスケジューリングパラメータの詳細については、スケジュールをご参照ください。
[完了] をクリックします。
他の構成可能なパラメーターについては、このトピックの[その他の詳細設定の構成] セクションをご参照ください。
シナリオ 2:一度に全データを同期し、定期的に増分データを同期する同期タスクを構成する
[構造的移行]、[完全初期化]、および [増分同期] を [同期モード] パラメーターに選択した場合、同期タスクに対して以下の構成を行う必要があります。
読み取り元のテーブルを選択します。
[データソースとテーブルの選択] セクションで、[ソーステーブル] リストからデータを読み取るテーブルを選択し、右矢印をクリックして選択したテーブルを [選択済みテーブル] リストに移動します。正規表現を使用して、目的のテーブルを名前で検索できます。
完全同期と増分同期のモードを構成します。
ワンタイム同期 は、[フル同期] パラメーターで自動的に選択され、定期同期 は、[増分同期の方法] パラメーターで自動的に選択されます。 これらの 2 つの値は変更できません。 [定期スケジュールのスケジューリングパラメーターの構成] をクリックして、増分同期を実装するためのスケジューリングパラメーターを構成できます。 構成されたスケジューリングパラメーターは、さまざまな目的で使用できます。 たとえば、フィルター条件でスケジューリングパラメーターを使用したり、スケジューリングパラメーターを宛先テーブルの値として追加フィールドに割り当てたりできます。 スケジューリングパラメーターの詳細については、サポートされているスケジューリングパラメーターの形式 をご参照ください。
ソースのテーブルとデスティネーションのテーブル間のマッピングを更新します。
「宛先テーブルのマッピングルール」セクションで、ソーステーブルを見つけ、[更新] を [アクション] 列でクリックします。その後、システムは「宛先テーブル名」列に宛先テーブル名を表示します。
宛先に新しいテーブルが作成された場合、
[宛先テーブル名] 列の アイコンをクリックして、テーブルのスキーマを変更できます。たとえば、テーブルにフィールドを追加したり、フィールドをテーブルの主キーとして指定したりできます。
宛先にテーブルが既に存在する場合、テーブルを表示することのみ可能です。
ソーステーブルをすべて選択し、[一括更新マッピング結果] をクリックして、ソーステーブルとデスティネーションテーブル間のマッピングを更新します。
テーブル レベルで増分同期のための条件を構成します。
テーブルレベルで[増分同期のための条件] を構成できます。ビジネス要件に基づいて、単一のテーブルマッピングレコードまたは複数のテーブルマッピングレコードの構成を一度に変更できます。「Condition for Incremental Synchronization」パラメーターを構成して、ソースのデータをフィルタリングする WHERE 句を指定できます。このパラメーターを構成する場合、句に WHERE キーワードを含める必要はありません。増分同期を実装するためのスケジューリングパラメーターを構成する場合は、システムパラメーター変数を使用できます。
たとえば、WHERE句を構成して、同期タスクが前日の 00:00 から当日の 00:00 までの間に生成された増分データを同期できるようにすることができます。
STR_TO_DATE('${bizdate}', '%Y%m%d') <= columnName AND columnName < DATE_ADD(STR_TO_DATE('${bizdate}', '%Y%m%d'), interval 1 day) // 前日の00:00から現在の日の00:00までの時間範囲の増分データを同期するためのWHERE句の例
テーブル レベルで定期スケジュールの設定を構成します。
テーブルレベルで定期スケジュールのスケジューリングパラメーターを設定できます。ビジネス要件に基づいて、単一のテーブルマッピングレコードまたは複数のテーブルマッピングレコードの設定を一度に変更できます。スケジューリングサイクル、スケジューリング用リソースグループなどのパラメーターを設定できます。定期スケジュールのスケジューリングパラメーターの詳細については、「スケジュール」をご参照ください。
[完了] をクリックします。
他の設定可能なパラメーターについては、このトピックの[その他の詳細設定の構成]セクションをご参照ください。
その他の詳細設定の構成
宛先テーブルのカスタム名の構成
組み込み変数と指定された文字列を連結して、宛先テーブル名を作成できます。組み込み変数を編集できます。たとえば、文字列を組み込み変数の値として指定できます。
完全同期と増分同期のモードを構成する
[完全初期化] と [増分同期] を [同期モード] パラメーターに選択した場合、[完全同期] パラメーターには [ワンタイム同期] が自動的に選択され、[増分同期の方法] パラメーターには [定期同期] が自動的に選択されます。 これらの 2 つの値は変更できません。
[完全初期化] を [同期モード] パラメーターに選択した場合、[完全同期] パラメーターに [ワンタイム同期] または [定期同期] を選択できます。
[増分同期] を [同期モード] パラメーターに選択した場合、[増分同期の方法] パラメーターに [ワンタイム同期] または [定期同期] を選択できます。
ソースとデスティネーションのフィールド間のデータ型マッピングを変更する
自動的に確立されたデータ型マッピングがビジネス要件を満たしていない場合は、[フィールドデータ型のマッピングを編集] をクリックして、ソースとデスティネーションのフィールド間のデータ型マッピングを変更し、[適用してマッピングを更新] をクリックします。
スケジューリング パラメーターを値として追加フィールドに割り当てます
追加のフィールドにスケジューリング パラメーターを値として割り当てることができます。
宛先テーブル名
表示されるダイアログボックスで、フィールドを追加[フィールド] セクションの マッピングの適用と更新 をクリックしてフィールドを追加します。フィールドが追加されたら、 をクリックします。
[宛先テーブルのマッピングルール] セクションで、宛先テーブルを選択し、[一括変更] をクリックして、[値の割り当て] を選択します。[値の割り当て] ダイアログボックスで、スケジューリングパラメータを追加フィールドに値として割り当てることができます。この例では、cyc_time が追加フィールドに値として割り当てられています。
[値の割り当て] ダイアログボックスで、追加フィールドの [割り当て] 列の [値を手動で割り当てる] フィールドに ${cyc_time} と入力し、[OK] をクリックします。
詳細パラメーターの設定
次のいずれかの方法を使用して、詳細パラメーターを設定できます。
設定ページの右上隅にある [詳細パラメーターの設定] をクリックします。[詳細パラメーターの設定] パネルで、リーダー、ライター、およびチャネル制御の詳細設定を行います。たとえば、ソースとデスティネーションで許可される最大接続数、およびバッチ同期サブタスクのスロットリング関連パラメーターを設定できます。
詳細パラメーターを設定して、同期タスクのアクションを制御できます。同期タスクに設定する詳細パラメーターはグローバル設定であり、同期タスクに含まれる各テーブルに有効です。
[同期先テーブルのマッピングルール] セクションでは、ビジネス要件に基づいて同期先テーブルの詳細パラメーターを個別に設定できます。このセクションで設定した詳細パラメーターは、[詳細パラメーターの設定] パネルで設定した詳細パラメーターよりも優先されます。
同期タスクの運用と保守 (O&M) 操作を実行する
同期タスクを開始する
同期タスクの設定が完了すると、同期タスクページの [タスク] セクションに移動します。[開始] 列の [操作] をクリックして同期タスクを開始できます。
同期タスクの詳細を表示
[名前] をクリックするか、同期タスクの [操作] 列の [実行の詳細] をクリックすると、同期タスクの詳細を表示できます。実行の詳細ページには、同期タスクに関する以下の情報が表示されます。
基本情報: 同期タスクの基本情報 (データソース、同期タスクの実行に使用するリソースグループ、同期タスクの種類など) を表示できます。
実行の詳細: 同期タスクが細分化された後、同期ステップの詳細を表示できます。
同期タスクを構成する際に、[同期モード] パラメーターで [完全初期化] を選択すると、[スキーマ移行] セクションと [フルデータ同期] セクションが表示されます。
同期タスクを構成する際に、[同期モード] パラメーターで [増分同期] を選択すると、[スキーマ移行] セクションと [増分同期] セクションが表示されます。
同期タスクを構成する際に、[同期モード] パラメーターで [完全初期化と増分同期] を選択すると、[スキーマ移行]、[フルデータ同期]、および [増分同期] セクションが表示されます。
詳細: スキーマ移行、フル同期、および増分同期中に実行される手順を表示できます。
スキーマ移行タブには、移行先テーブルが新しく作成されたテーブルか既存のテーブルかなどの情報が表示されます。新しく作成されたテーブルの場合、テーブルの作成に使用された DDL ステートメントが表示されます。
[フルデータ同期] タブには、バッチ同期に含まれるテーブルに関する情報、同期の進行状況、および宛先に書き込まれたデータレコードの数が表示されます。
[差分同期] タブには、同期タスクによって生成された自動トリガーのサブタスクの最新インスタンスに関連するメトリック情報が表示されます。
データ同期タスクを再実行します
同期タスクを直接再実行する: [タスク] セクションで同期タスクを見つけ、[操作] 列の [その他] をクリックし、[再実行] を選択して、タスク構成を変更せずにタスクを再実行します。
効果: 1 回限りのサブタスクが再実行され、定期的なサブタスクのプロパティが更新されます。
同期タスクにテーブルを追加または削除し、同期タスクを再実行します。[タスク] セクションで同期タスクを見つけ、同期タスクにテーブルを追加または削除し、[完了] をクリックします。この場合、[タスク] セクションの同期タスクの [操作] 列に [更新の適用] が表示されます。[更新の適用] をクリックして、変更された同期タスクを再実行し、変更を有効にします。
効果: 同期タスクにテーブルを追加した場合、追加されたテーブルのデータのみが同期されます。同期タスク内の元のテーブルのデータは再同期されません。
宛先テーブルの名前を変更し、同期タスクを再実行します。同期タスクを見つけ、宛先テーブルの名前を変更するか、データを書き込む宛先テーブルを変更し、[完了] をクリックします。この場合、[タスク] セクションの同期タスクの [操作] 列に [更新の適用] が表示されます。[更新の適用] をクリックして、変更された同期タスクを再実行し、変更を有効にします。
影響: 変更が行われた宛先テーブルにデータが再同期されます。変更が行われていない宛先テーブルには、データは再同期されません。
データ開発シナリオ
[スケジューリング依存関係構成ガイド] を参照して、同期タスクによって生成される自動トリガーサブタスクのスケジューリング依存関係を構成し、データ開発要件を満たすことができます。「スケジューリング構成」セクションで、自動トリガーサブタスクに関する情報を表示できます。