この Topic では、チケットを送信してデータをアーカイブする方法について説明します。
バックグラウンド
オンラインデータベースのデータ量が増加すると、クエリのパフォーマンスやビジネス運用に影響が及ぶ可能性があります。OceanBase 開発者センター (ODC) を使用すると、あるデータベースから別のデータベースにテーブルデータを定期的にアーカイブして、この問題に対処できます。
この Topic の例では、ODC でデータアーカイブタスクを作成し、odc_test データベースの employee テーブルを同じプロジェクトの test2 データベースにアーカイブする方法について説明します。
この例のすべてのデータは参照用です。必要に応じてデータを置き換えることができます。
注意点
以下のルールにご注意ください。
アーカイブするテーブルにはプライマリキーが必要です。テーブルが OceanBase MySQL 互換またはネイティブ MySQL データソースに属している場合、一意なインデックスがあればアーカイブできます。
データをアーカイブするデータベースユーザーには、読み取り/書き込み権限と内部ビューへのアクセス権限が必要です。権限構成の詳細については、「ユーザー権限の表示」、「概要」、および「ユーザー権限の変更」をご参照ください。
ソーステーブルの列は、ターゲットの列と互換性がある必要があります。データアーカイブサービスは互換性の問題を処理しません。
同種データベースのサブパーティションでは、スキーマ同期はサポートされていません。異種データベースでは、スキーマ同期と自動テーブル作成はサポートされていません。
次のアーカイブリンクがサポートされています。
OceanBase MySQL 互換データソース間のリンク
OceanBase Oracle 互換データソース間のリンク
OceanBase MySQL 互換および OceanBase Oracle 互換データソースから、Alibaba Cloud Object Storage Service (OSS)、Tencent Cloud Object Storage (COS)、Huawei Cloud Object Storage Service (OBS)、Amazon Simple Storage Service (S3) などのオブジェクトストレージサービスへのリンク。
次の場合、データアーカイブはサポートされていません。
OceanBase MySQL 互換データソースのソーステーブルに XMLType データ型の列が含まれている場合。
OceanBase Oracle 互換データソースのソーステーブルに JSON または XMLType データ型の列が含まれている場合。
アーカイブ条件に LIMIT 句が含まれている場合。
ソーステーブルに外部キーが含まれている場合。
次のアーカイブリンクでは、自動テーブル作成がサポートされています。
OceanBase Oracle 互換データソース間のリンク
OceanBase MySQL 互換データソース間のリンク
次のアーカイブリンクでは、スキーマ同期がサポートされています。
OceanBase MySQL 互換データソース間のリンク
データアーカイブタスクの作成
SQL 開発ウィンドウで、SQL 文を使用して employee という名前のテーブルを作成します。

CREATE TABLE `employee` ( `emp_no` int(120) NOT NULL COMMENT '従業員番号', `birthday` date DEFAULT NULL COMMENT '従業員の誕生日', `name` varchar(120) DEFAULT NULL COMMENT '従業員名', `time` date NOT NULL COMMENT '時間' COMMENT '作成時間', PRIMARY KEY (`time`) ) partition by range columns(time) ( partition p2023_01 values less than ('2023-01-01'), partition p2023_02 values less than ('2023-02-01') )データベースリストで、ターゲットデータベースの名前を右クリックし、[スケジュールされたタスク] > [データアーカイブ] を選択して、データアーカイブタスクの作成ページに移動します。左側のナビゲーションウィンドウで [チケット] > [データアーカイブ] を選択し、[新規作成] をクリックすることもできます。

[チケットの作成] パネルで、次のパラメーターを構成します。

パラメーター
説明
ソースデータベース
テーブルが属するデータベース。
説明ODC V4.2.2 以降では、MySQL データベースから OceanBase Database にデータをアーカイブできます。
ターゲットデータベース
テーブルをアーカイブする先のデータベース。
説明ODC V4.2.2 以降では、OceanBase Database から MySQL データベースにデータをアーカイブできます。
アーカイブ範囲
部分アーカイブ: ソースデータベース内のフィルタリング条件を満たすテーブルのみをアーカイブするように指定します。
定数を使用するか、カスタム変数で定義された変数を参照して、フィルタリング条件を構成できます。たとえば、
time<'${create_time}'では、create_timeはカスタム変数で構成された変数の名前であり、timeはアーカイブするテーブルの列です。説明関連付けられたテーブルにフィルタリング条件を設定できます。
[パーティションの指定] を選択し、アーカイブするパーティションを指定できます。
[+ 追加] をクリックして、アーカイブするテーブルを追加し、そのテーブルをターゲットデータベースにアーカイブします。
[+ 一括追加] をクリックして、アーカイブする複数のテーブルを追加し、それらのテーブルをターゲットデータベースにアーカイブします。
データベースアーカイブ: ソースデータベース内のすべてのテーブルをアーカイブするように指定します。
カスタム変数
オプション。変数を定義し、時間オフセットを設定して、アーカイブする行をフィルタリングできます。
実行モード
タスクの実行モード。有効な値: [今すぐ実行]、[スケジュールされた実行]、[定期的な実行]。
タスク設定
[ソースのアーカイブ済みデータをクリーンアップ]: このオプションを選択すると、設定に基づいてソースのデータがクリーンアップされます。デフォルトでは、データはすぐにクリーンアップされ、バックアップされません。クリーンアップタスクはロールバックできます。
[タスク期間の指定]: このオプションを選択して、タスクの期間を指定できます。指定された期間内にタスクが完了しない場合、タスクは一時停止され、次のスケジューリングを待ちます。
[ソースとターゲットのテーブルスキーマを同期]: このオプションを選択すると、アーカイブタスクがスケジュールされる前に、ソースとターゲットのテーブルスキーマを比較できます。それらに一貫性がない場合、ソーステーブルはスキップされます。
[挿入ポリシー]: データアーカイブ中に重複データを無視するか更新するかを選択できます。
[検索戦略]: フルテーブルスキャンと条件付きマッチングがサポートされています。
[制限の設定]: 行制限とデータサイズ制限を指定できます。
説明
オプション。タスクに関する追加情報。長さは 200 文字を超えることはできません。
[作成] をクリックし、アーカイブ用の SQL 文をプレビューして、[OK] をクリックします。

タスクが生成されたら、[チケット] > [データアーカイブ] を選択してタスクを表示します。

データアーカイブタスクの表示
タスク情報
[チケット] タブのデータアーカイブタスクリストで、タスクのアクション列にある [表示] をクリックします。

チケット詳細パネルで、[基本情報] タブをクリックし、タスクタイプ、ソースデータベース、ターゲットデータベース、変数構成、アーカイブ範囲、実行モードなどの情報を表示します。

右下隅にある [再開] をクリックします。データアーカイブ情報が [チケットの作成] パネルにコピーされ、データアーカイブタスクをすばやく作成できます。
実行レコード
チケット詳細パネルで、[実行レコード] タブをクリックし、タスクのステータスと実行の詳細を表示します。

操作レコード
チケット詳細パネルで、[操作レコード] タブをクリックし、タスクの承認ステータスと変更履歴を表示します。

データアーカイブタスクのインポート
ApsaraDB for OceanBase から OceanBase Cloud にインスタンスとそのデータアーカイブタスクを移行できます。
ステップ 1: ApsaraDB for OceanBase からデータアーカイブタスクをエクスポートする
ApsaraDB for OceanBase コンソールにログオンします。左側のナビゲーションウィンドウで [インスタンス] をクリックします。
ターゲットインスタンスの [アクション] 列で [クラウドマーケットに切り替え] をクリックします。

その後、インスタンスの [アクション] 列で [データ研究開発タスクの処理] をクリックします。

[データ研究開発タスクの処理] ページで、[すべて表示してエクスポート] をクリックして、スケジュールされたタスクをローカルコンピューターにエクスポートします。

ステップ 2: データアーカイブタスクを OceanBase Cloud にインポートする
OceanBase Cloud コンソールにログオンし、[データサービス] > [データライフサイクル] を選択します。[データライフサイクル] ページで、[...] をクリックし、[ジョブのインポート] を選択します。

先ほどローカルコンピューターにダウンロードしたデータアーカイブ構成ファイルをインポートジョブにアップロードします。
