このトピックでは、AnalyticDB for MySQL V3.0 データベースから Hologres にオフラインモードでフルデータと増分データを同期する方法について説明します。
制限事項
この例では、Data Integration 専用リソースグループのみがサポートされています。
前提条件
ソースとデスティネーションとして使用するデータソースが構成されていること。
この例では、AnalyticDB for MySQL V3.0 データソースがソースとして使用され、Hologres データソースがデスティネーションとして使用されます。 DataWorks コンソールの管理センターにある [データソース] ページで、AnalyticDB for MySQL V3.0 データソースと Hologres データソースを現在のワークスペースに追加する必要があります。 2 つのタイプのデータソースでサポートされている同期機能については、AnalyticDB for MySQL V3.0 データソース および Hologres データソース を参照してください。
Data Integration 専用リソースグループが購入され、現在の DataWorks ワークスペースに関連付けられていること。リソースグループとデータソース間のネットワーク接続が確立されていること。
この例では、Data Integration 専用リソースグループのみがサポートされています。 Data Integration 専用リソースグループを購入して構成し、リソースグループと AnalyticDB for MySQL V3.0 データソースおよび Hologres データソース間のネットワーク接続を確立する必要があります。 Data Integration 専用リソースグループの購入および構成方法については、Data Integration 専用リソースグループの作成と使用 を参照してください。
同期タスクの作成と構成
DataWorks コンソールにログオンし、[Data Integration] ページに移動します。 [Data Integration] ページの左側のナビゲーションペインで、[同期タスク] をクリックします。 [同期タスク] ページで、目的のソースタイプとデスティネーションタイプを選択し、[同期タスクの作成] をクリックします。
[基本設定] セクションと [ネットワークとリソースの構成] セクションで、同期タスクの基本情報を構成します。
ソースとデスティネーション: ソースタイプとして [analyticdb For Mysql (V3.0)] を選択し、デスティネーションタイプとして [hologres] を選択します。
新規ノード名: ビジネス要件に基づいて同期タスクの名前を指定します。
同期方法: [データベース全体のオフライン同期] を選択します。
同期モード:
フルデータの 1 回限りの同期または定期的な同期を実行する場合は、このパラメーターに [フル初期化] を選択します。
増分データの 1 回限りの同期または定期的な同期を実行する場合は、このパラメーターに [増分同期] を選択します。
フルデータの 1 回限りの同期と増分データの定期的な同期を実行する場合は、このパラメーターに [フル初期化] と [増分同期] を選択します。
ネットワークとリソースの構成: このセクションで、準備した AnalyticDB for MySQL V3.0 データソース、Hologres データソース、および Data Integration 専用リソースグループを選択し、[接続テスト] をクリックして、リソースグループとデータソース間のネットワーク接続をテストします。
同期タスクに固有の情報を構成します。
この例では、AnalyticDB for MySQL V3.0 データソースから Hologres データソースにデータを同期するために使用される同期タスクが、2 つの一般的なシナリオに基づいて構成されています。ビジネス要件に基づいて同期タスクを構成できます。詳細については、このトピックの シナリオ 1: フルデータを定期的に同期する同期タスクを構成する セクションと シナリオ 2: フルデータを 1 回同期し、増分データを定期的に同期する同期タスクを構成する セクションを参照してください。
シナリオ 1: フルデータを定期的に同期する同期タスクを構成する
[同期モード] パラメーターで [構造マイグレーション] と [フル初期化] を選択した場合は、同期タスクに対して次の構成を行う必要があります。
データを読み取るテーブルを選択します。
[データ同期のデータソースとテーブルを選択] セクションで、[ソーステーブル] リストからデータを読み取るテーブルを選択し、右矢印をクリックして選択したテーブルを [選択済みテーブル] リストに移動します。正規表現を使用して、名前で目的のテーブルを検索できます。
フル同期のモードを構成します。
[フル同期と増分同期の構成] セクションで、[フル同期] パラメーターに [定期同期] を選択します。次に、[定期スケジュールのスケジューリングパラメーターを構成する] をクリックして、定期スケジュールのスケジューリングパラメーターを構成します。スケジューリングパラメーターについては、サポートされているスケジューリングパラメーターの形式 を参照してください。
ソースのテーブルとデスティネーションのテーブル間のマッピングを更新します。
[デスティネーションテーブルのマッピングルール] セクションで、ソーステーブルを見つけ、[更新] 列の [アクション] をクリックします。次に、システムはソーステーブルの [デスティネーションスキーマ名] 列にスキーマ名を表示します。
デスティネーションに新しくテーブルが作成された場合は、
[デスティネーションテーブル名] 列の アイコンをクリックして、テーブルのスキーマを変更できます。たとえば、テーブルにフィールドを追加したり、テーブルの主キーとしてフィールドを指定したりできます。
デスティネーションにテーブルが既に存在する場合は、テーブルを表示することしかできません。
すべてのソーステーブルを選択し、[マッピング結果の一括更新] をクリックして、ソーステーブルとデスティネーションテーブル間のマッピングを更新します。
データ同期前にデスティネーションテーブルのすべてのデータをクリアするための設定を構成します。
フル同期前にデスティネーションテーブルのすべてのデータをクリアすることで、デスティネーションテーブルに同期されるデータがマッピングされたソーステーブルのデータと同じになるようにできます。構成ページの右上隅にある [詳細パラメーターの構成] をクリックします。 [詳細パラメーターの構成] パネルで、[ライター設定] タブをクリックします。 [ライター設定] タブで、[同期前にテーブルをクリア] パラメーターを true に設定します。次に、[OK] をクリックします。
テーブルレベルで定期スケジュールの設定を構成します。
テーブルレベルで定期スケジュールのスケジューリングパラメーターを構成できます。ビジネス要件に基づいて、単一のテーブルマッピングレコードまたは複数のテーブルマッピングレコードの構成を一度に変更できます。 [スケジューリングサイクル] や [スケジューリングのリソースグループ] などのパラメーターを構成できます。定期スケジュールのスケジューリングパラメーターの詳細については、スケジュール を参照してください。
上記の構成が完了したら、[完了] をクリックします。
構成できるその他のパラメーターについては、このトピックの その他の詳細設定を構成する を参照してください。
シナリオ 2: フルデータを 1 回同期し、増分データを定期的に同期する同期タスクを構成する
[同期モード] パラメーターで [構造マイグレーション]、[フル初期化]、および [増分同期] を選択した場合は、同期タスクに対して次の構成を行う必要があります。
データを読み取るテーブルを選択します。
[データ同期のデータソースとテーブルを選択] セクションで、[ソーステーブル] リストからデータを読み取るテーブルを選択し、右矢印をクリックして選択したテーブルを [選択済みテーブル] リストに移動します。正規表現を使用して、名前で目的のテーブルを検索できます。
フル同期と増分同期のモードを構成します。
[フル同期] パラメーターには [1 回限りの同期] が自動的に選択され、[増分同期の方法] パラメーターには [定期同期] が自動的に選択されます。これらの 2 つの値は変更できません。 [定期スケジュールのスケジューリングパラメーターを構成する] をクリックして、増分同期を実装するためのスケジューリングパラメーターを構成できます。構成されたスケジューリングパラメーターは、さまざまな目的に使用できます。たとえば、フィルター条件でスケジューリングパラメーターを使用したり、デスティネーションテーブルの値として追加フィールドにスケジューリングパラメーターを割り当てたりできます。スケジューリングパラメーターの詳細については、サポートされているスケジューリングパラメーターの形式 を参照してください。
ソースのテーブルとデスティネーションのテーブル間のマッピングを更新します。
[デスティネーションテーブルのマッピングルール] セクションで、ソーステーブルを見つけ、[更新] 列の [アクション] をクリックします。次に、システムはソーステーブルの [デスティネーションスキーマ名] 列にスキーマ名を表示します。
デスティネーションに新しくテーブルが作成された場合は、
[デスティネーションテーブル名] 列の アイコンをクリックして、テーブルのスキーマを変更できます。たとえば、テーブルにフィールドを追加したり、テーブルの主キーとしてフィールドを指定したりできます。
デスティネーションにテーブルが既に存在する場合は、テーブルを表示することしかできません。
すべてのソーステーブルを選択し、[マッピング結果の一括更新] をクリックして、ソーステーブルとデスティネーションテーブル間のマッピングを更新します。
テーブルレベルで増分同期の条件を構成します。
テーブルレベルで [増分同期の条件] を構成できます。ビジネス要件に基づいて、単一のテーブルマッピングレコードまたは複数のテーブルマッピングレコードの構成を一度に変更できます。 [増分同期の条件] パラメーターを構成して、ソースのデータをフィルタリングする WHERE 句を指定できます。パラメーターを構成する場合は、句に WHERE キーワードを含める必要はありません。増分データの定期同期を実装するためのスケジューリングパラメーターを構成する場合は、システムパラメーター変数を使用できます。
たとえば、前日の 00:00 から現在の日の 00:00 までの時間範囲に生成された増分データを同期タスクが同期できるように WHERE 句を構成できます。
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までの時間範囲に生成された増分データを同期します。 */
テーブルレベルで定期スケジュールの設定を構成します。
テーブルレベルで定期スケジュールのスケジューリングパラメーターを構成できます。ビジネス要件に基づいて、単一のテーブルマッピングレコードまたは複数のテーブルマッピングレコードの構成を一度に変更できます。 [スケジューリングサイクル] や [スケジューリングのリソースグループ] などのパラメーターを構成できます。定期スケジュールのスケジューリングパラメーターの詳細については、スケジュールを参照してください。
上記の構成が完了したら、[完了] をクリックします。
構成できるその他のパラメーターについては、このトピックの その他の詳細設定を構成する を参照してください。
その他の詳細設定を構成する
デスティネーションテーブルのカスタム名を構成する
組み込み変数と指定された文字列を連結してデスティネーションテーブル名にすることができます。組み込み変数を編集できます。たとえば、組み込み変数を文字列に置き換えることができます。
フル同期と増分同期のモードを構成する
同期タスクの基本情報を構成するときに、[同期モード] パラメーターで [フル初期化] と [増分同期] を選択した場合、[フル同期] パラメーターには [1 回限りの同期] が自動的に選択され、[増分同期の方法] パラメーターには [定期同期] が自動的に選択されます。これらの 2 つの値は変更できません。
同期タスクの基本情報を構成するときに、[同期モード] パラメーターで [フル初期化] を選択した場合、[フル同期] パラメーターに [1 回限りの同期] または [定期同期] を選択できます。
同期タスクの基本情報を構成するときに、[同期モード] パラメーターで [増分同期] を選択した場合、[増分同期の方法] パラメーターに [1 回限りの同期] または [定期同期] を選択できます。
ソースのフィールドとデスティネーションのフィールド間のデータ型マッピングを変更する
自動的に確立されたデータ型マッピングがビジネス要件を満たしていない場合は、[フィールドデータ型のマッピングを編集] をクリックして、ソースのフィールドとデスティネーションのフィールド間のデータ型マッピングを変更し、[適用してマッピングを更新] をクリックします。
スケジューリングパラメーターを追加フィールドに値として割り当てる
スケジューリングパラメーターを追加フィールドに値として割り当てることができます。
[デスティネーションテーブルのマッピングルール] セクションで、スキーマを変更するデスティネーションテーブルを見つけ、
[デスティネーションテーブル名] 列の アイコンをクリックして、デスティネーションテーブルのスキーマを変更します。
表示されるダイアログボックスで、[フィールド] セクションの [フィールドを追加] をクリックしてフィールドを追加します。フィールドが追加されたら、[適用してマッピングを更新] をクリックします。
[デスティネーションテーブルのマッピングルール] セクションで、デスティネーションテーブルを選択し、[一括変更] をクリックし、[値の割り当て] を選択します。 [値の割り当て] ダイアログボックスで、スケジューリングパラメーターを追加フィールドに値として割り当てることができます。スケジューリングパラメーターを追加フィールドに割り当てる場合は、[手動で値を割り当てる] の横にある疑問符 (?) にポインターを移動し、表示される情報チップの [スケジューリングパラメーターの編集] をクリックして、[定期スケジュールのスケジューリングパラメーター] パネルをすばやく開くことができます。この例では、cyc_time が追加フィールドに値として割り当てられています。
[値の割り当て] ダイアログボックスで、追加フィールドの [割り当て] 列の [手動で値を割り当てる] フィールドに ${cyc_time} と入力し、[OK] をクリックします。
詳細パラメーターを構成する
次のいずれかの方法を使用して、詳細パラメーターを構成できます。
構成ページの右上隅にある [詳細パラメーターの構成] をクリックします。 [詳細パラメーターの構成] パネルで、リーダー、ライター、およびチャネル制御の詳細設定を構成します。たとえば、ソースとデスティネーションに許可される最大接続数、およびバッチ同期サブタスクのスロットリング関連パラメーターを構成できます。
詳細パラメーターを構成して、同期タスクのアクションを制御できます。同期タスクに構成する詳細パラメーターはグローバル設定であり、同期タスクに関係する各テーブルに有効です。
[デスティネーションテーブルのマッピングルール] セクションで、ビジネス要件に基づいて各デスティネーションテーブルの詳細パラメーターを個別に構成できます。このセクションで構成する詳細パラメーターは、[詳細パラメーターの構成] パネルで構成する詳細パラメーターよりも優先されます。
同期タスクの O&M 操作を実行する
同期タスクを開始する
同期タスクの構成が完了すると、[同期タスク] ページの [タスク] セクションに移動します。同期タスクを見つけ、[アクション] 列の [開始] をクリックして同期タスクを開始できます。
同期タスクの詳細を表示する
[名前/ID] 列の同期タスク名をクリックするか、[実行概要] 列に表示される各ステージの横にある空白領域をクリックして、同期タスクの実行詳細ページに移動できます。実行詳細ページには、同期タスクに関する次の情報が表示されます。
基本情報: データソース、同期タスクの実行に使用されるリソースグループ、同期タスクタイプなど、同期タスクの基本情報を表示できます。
実行詳細: 同期タスクが細分化された後の同期手順の詳細を表示できます。
同期タスクを構成するときに [同期モード] パラメーターで [フル初期化] を選択した場合、[スキーママイグレーション] セクションと [フルデータ同期] セクションが表示されます。
同期タスクを構成するときに [同期モード] パラメーターで [増分同期] を選択した場合、[スキーママイグレーション] セクションと [増分同期] セクションが表示されます。
同期タスクを構成するときに [同期モード] パラメーターで [フル初期化] と [増分同期] を選択した場合、[スキーママイグレーション] セクション、[フル同期] セクション、および [増分同期] セクションが表示されます。
詳細: スキーママイグレーション、フル同期、および増分同期中に実行される手順を表示できます。
[スキーママイグレーション] タブには、デスティネーションテーブルが新しく作成されたテーブルか既存のテーブルかなどの情報が表示されます。新しく作成されたテーブルの場合、テーブルの作成に使用される DDL ステートメントが表示されます。
[フル同期] タブには、バッチ同期に関係するテーブル、同期の進行状況、およびデスティネーションに書き込まれたデータレコードの数に関する情報が表示されます。
[増分同期] タブには、同期タスクによって生成された自動トリガーサブタスクの最新インスタンスに関連するメトリック情報が表示されます。
同期タスクを再実行する
同期タスクを直接再実行する: [タスク] セクションで同期タスクを見つけ、[アクション] 列の [その他] をクリックし、[再実行] を選択します。
効果: 1 回限りのサブタスクが再実行され、定期サブタスクのプロパティが更新されます。
同期タスクにテーブルを追加または削除してから同期タスクを再実行する: [タスク] セクションで同期タスクを見つけ、同期タスクにテーブルを追加または削除してから、[完了] をクリックします。この場合、[タスク] セクションの同期タスクの [アクション] 列に [更新の適用] が表示されます。 [更新の適用] をクリックして、変更された同期タスクを再実行し、変更を有効にします。
効果: 同期タスクにテーブルを追加した場合、追加されたテーブルのデータのみが同期されます。同期タスクの元のテーブルのデータは再同期されません。
デスティネーションテーブルの名前を変更してから同期タスクを再実行する: 同期タスクを見つけ、デスティネーションテーブルの名前を変更するか、データを書き込むデスティネーションテーブルを変更してから、[完了] をクリックします。この場合、[タスク] セクションの同期タスクの [アクション] 列に [更新の適用] が表示されます。 [更新の適用] をクリックして、変更された同期タスクを再実行し、変更を有効にします。
効果: 変更が加えられたデスティネーションテーブルにデータが再同期されます。変更が加えられていないデスティネーションテーブルにはデータは再同期されません。
データ開発シナリオ
スケジューリング依存関係構成ガイド を参照して、データ開発要件を満たすために、同期タスクによって生成された自動トリガーサブタスクのスケジューリング依存関係を構成できます。自動トリガーサブタスクに関する情報は、[スケジューリング構成] セクションで表示できます。