Data Management (DMS) は、オペレーショナルデータベースから AnalyticDB for MySQL V3.0 クラスターにデータをアーカイブして分析ワークロードに対応します。オプションで、アーカイブされた行をソーステーブルからクリーンアップすることもできます。
仕組み
データアーカイブチケットを送信すると、DMS は次のワークフローを実行します。
-
指定したフィルター条件に基づいて、ソーステーブルからデータを読み取ります。
-
データをターゲットの AnalyticDB for MySQL V3.0 クラスターに書き込みます。
-
ソースデータのクリーンアップを有効にした場合、ソースデータベースに一時バックアップテーブルを作成し、その後、アーカイブされた行をソーステーブルから削除します。
DMS は、アーカイブされた各テーブルに4つのメタデータ列 (アーカイブチケット番号とタイムスタンプ、ソースデータベース名、ソーステーブル名、ソースインスタンス ID) を追加します。これらの列は元のデータを変更するものではありません。
前提条件
次の前提条件を満たしていることを確認してください。
-
次のいずれかのタイプのソースデータベース:
-
MySQL:ApsaraDB RDS for MySQL、PolarDB for MySQL、または AnalyticDB for MySQL V3.0
-
PostgreSQL:ApsaraDB RDS for PostgreSQL または PolarDB for PostgreSQL
-
PolarDB-X
-
-
AnalyticDB for MySQL V3.0 クラスター。詳細については、「クラスターの作成」をご参照ください。
-
プライマリキーまたは一意キーを持つソーステーブル
-
(推奨) フィルター条件として使用するために、最終更新日時を記録するタイムスタンプフィールドがソーステーブルにあること
MySQL データベースアカウントには、REPLICATION CLIENT 権限が必要です。
注意事項
-
リージョンでの利用可否:データアーカイブ機能は、シンガポールおよびインドネシア (ジャカルタ) リージョンでのみ利用可能です。
-
ソースデータクリーンアップ用のストレージ領域: [事後動作] を [元のテーブルのアーカイブ済みデータをクリーンアップする (delete-No Lock)] に設定した場合は、ソースデータベースに十分なストレージ領域があることを確認してください。 これにより、データアーカイブ中のストレージ領域不足による例外の発生を防ぎます。 たとえば、390 GB のデータをアーカイブするには、ソースデータベースに少なくとも 390 GB の空きストレージ領域が必要です。
-
定期タスクのコントロールモード:DMS は、ソースデータベースとターゲットデータベースの両方がセキュリティコラボレーションまたは安定的な変更モードで管理されている場合にのみ、定期データアーカイブタスクを実行します。ワンタイムタスクの場合、どのコントロールモードでも動作します。
安定的な変更モードのデータベースでの定期タスクについては、ログインの有効期限切れによるタスクの失敗を防ぐため、セキュリティホスティングを有効にするか、セキュリティコラボレーションモードに切り替えてください。 詳細については、「セキュリティホスティング」および「インスタンスのコントロールモードを変更する」をご参照ください。
-
Data Lakehouse Edition クラスター:Data Lakehouse Edition V3.0 クラスターにデータをアーカイブする場合、クラスターに予約済みのコンピューティングリソースがあることを確認してください。そうでない場合、タスクは失敗します。詳細については、「Data Lakehouse Edition クラスターのスケーリング」をご参照ください。
課金
AnalyticDB for MySQL V3.0 クラスターに対して課金されます。料金詳細については、「Data Warehouse Edition の料金」および「Data Lakehouse Edition の料金」をご参照ください。
データアーカイブタスクの作成
ステップ1:データアーカイブページを開く
-
DMS コンソール V5.0 にログインします。
-
左上の
アイコンをクリックし、[すべての機能] をクリックしてから、[ソリューション] セクションの [データアーカイブ] をクリックします。
ステップ2:アーカイブチケットの設定
-
[データアーカイブチケット] ページの右上隅にある [データアーカイブ] をクリックします。
-
[チケット申請] ページで、次のパラメーターを設定します。
| パラメーター | 必須 | 説明 |
|---|---|---|
| タスク名 | はい | データアーカイブタスクの名前。タスクを簡単に識別できるような、わかりやすい名前を指定します。 |
| アーカイブ先 | はい | [AnalyticDB-MySQL 3.0] を選択します。 |
| 分析エンジン | はい | ターゲットの AnalyticDB for MySQL V3.0 クラスター。 |
| ソースデータベース | はい | データをアーカイブするソースデータベース。 |
| アーカイブ設定 | はい | アーカイブするデータのフィルター条件を指定します。例:gmt_modified<='${6_month_ago}'。複数のテーブルをアーカイブするには、[追加] をクリックしてソーステーブルを追加します。 |
| アーカイブテーブルマッピング | いいえ | ターゲットテーブルの設定をカスタマイズします。[操作] 列の [編集] をクリックして、テーブル名、列、データベースシャードキー、パーティションキーを変更します。 |
| 変数設定 | いいえ | フィルター条件の時間変数を定義します。例えば、6_month_ago という名前の変数を作成し、フォーマットを yyyy-MM-dd、オフセットを -6 Month とします。今日が 2021年8月12日の場合、${6_month_ago} は 2021-02-11 に解決されます。詳細については、「変数」トピックの「時間変数の設定」セクションをご参照ください。 |
| 実行後の動作 | いいえ | アーカイブされたデータをソーステーブルから削除するかどうかを制御します。詳細は、「実行後の動作の設定」をご参照ください。 |
| 実行モード | はい | 単一実行: DMS は承認後にタスクを 1 回実行します。 周期的スケジューリング: DMS は定期スケジュールでタスクを実行します。 スケジューリングオプションについては、トピック「Lindorm インスタンスにデータをアーカイブする」の「定期的スケジューリング」セクションをご参照ください。 |
フィルター条件で時間変数を使用するには、[変数設定]で変数を定義した上で、[アーカイブ設定]を行う必要があります。
ステップ3:タスクの送信と実行
-
[送信] をクリックします。
-
チケットが承認されると、DMS は自動的にアーカイブタスクを実行します。タスクが完了するまで待ちます。
結果の確認
タスクが完了したら、「アーカイブされたデータのクエリ」で説明されているいずれかの方法で、アーカイブされたデータを確認します。
タスクが失敗した場合は、[操作] 列の [詳細] をクリックしてタスクログを表示します。ネットワークまたはデータベース接続の問題で失敗した場合は、[再試行] をクリックしてタスクを再開します。
実行後の動作の設定
[実行後の動作] は、DMS がアーカイブされたデータをソーステーブルから削除するかどうかを制御します。
オプション1:ソーステーブルからアーカイブされたデータを削除する
[元のテーブルのアーカイブデータをクリーンアップ (削除 - ロックなし)] を選択します。
DMS は、ソーステーブルからアーカイブされた行を自動的に削除し、ソースデータベースに一時バックアップテーブルを作成します。アーカイブされたデータが正しいことを確認した後、通常データ変更チケットを作成して一時バックアップテーブルを削除します。
ソースデータベースに十分なストレージ容量があることを確認してください。ストレージが不足すると、ソースデータベースが利用できなくなる可能性があります。
オプション2:ソーステーブルにアーカイブされたデータを保持する
クリーンアップオプションを選択しない場合、アーカイブされたデータはソーステーブルに残ります。手動で領域を解放するには、次の手順を実行します。
アーカイブされたデータのクエリ
方法1:DMS でのクエリ
-
[チケット詳細] ページで、[基本情報] セクションを見つけ、[ターゲットデータベース] の横にある [表示] をクリックします。[SQL コンソール] タブが開きます。
-
左側の [テーブル] タブで、アーカイブされたテーブルを見つけ、テーブル名をダブルクリックし、[実行] をクリックしてデータを表示します。
DMS は、ソースと同じ名前でターゲットデータベースとテーブルを作成します。アーカイブされた各テーブルには、アーカイブチケット番号とタイムスタンプ、ソースデータベース名、ソーステーブル名、ソースインスタンス ID の4つのメタデータ列が追加されます。
方法2:AnalyticDB for MySQL でのクエリ
AnalyticDB for MySQL V3.0 クラスターに直接接続し、アーカイブされたテーブルに対してクエリを実行します。詳細については、「データのインポートとクエリ」をご参照ください。