このドキュメントでは、データアーカイブのチケットを提出することでデータをアーカイブする方法について説明します。
背景
OB Cloudは、オンラインデータの増加によるクエリパフォーマンスや業務運用への影響を解消するため、定期的にソースデータベースのテーブルデータを他のターゲットデータベースにアーカイブすることをサポートしています。
このドキュメントでは、新規データアーカイブを例に、OB Cloud内でデータベースtest1のemployeeテーブルをデータベースload_testにアーカイブする方法を説明します。
説明
本文中で使用されているのはすべてサンプルデータです。実際の状況に応じてデータを置き換えてください。
原理

前提条件
現在のテナントのデータベースアカウントとパスワードを所有し、SQLコンソールにログインできること。
アーカイブ対象のテーブルには主キーが含まれている必要があります。
注意事項
前提条件:
ソース側のテーブルフィールドがターゲット側で互換性があることを保証する必要があります。データアーカイブはフィールドの互換性問題を処理しません。
MySQLデータソースは、現在CPUメモリ爆発機能をサポートしていません。
同種アーカイブリンクでは、セカンダリパーティションはテーブル構造の同期をサポートしておらず、異種データベースは構造同期および自動テーブル作成をサポートしていません。
アーカイブリンクは以下をサポートします:
OceanBase MySQLからOceanBase MySQLへ。
OceanBase OracleからOceanBase Oracleへ。
MySQLからOceanBase MySQLへ。
以下の場合、アーカイブはサポートされません:
OceanBase MySQLおよびMySQLデータソースのテーブルに主キーPRIMARY KEYまたは一意の非NULLインデックスが含まれていない場合、アーカイブはサポートされません。
OceanBase Oracleデータソースのテーブルに主キーPRIMARY KEYが含まれていない場合、アーカイブはサポートされません。
OceanBase OracleデータソースのテーブルにJSON、XMLTYPEフィールドタイプが含まれている場合、アーカイブはサポートされません。
アーカイブ条件にLIMITステートメントが含まれている場合、アーカイブはサポートされません。
テーブルに外部キーが含まれている場合、アーカイブはサポートされません。
以下のアーカイブリンクでは、自動テーブル作成およびテーブル構造の同期はサポートされていません。
- MySQLからOceanBase MySQLへ
- OceanBase MySQLからMySQLへ
データアーカイブの新規作成
SQLコンソールにログインし、SQLウィンドウを開きます。
SQLウィンドウで、SQLステートメントを編集してemployeeテーブルを作成します。
CREATE TABLE `employee` ( `emp_no` int(120) NOT NULL COMMENT 'employee number', `birthday` date DEFAULT NULL COMMENT 'employee birthday', `name` varchar(120) DEFAULT NULL COMMENT 'employee name', `time` date NOT NULL COMMENT 'time' COMMENT 'create time', 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') )データサービス > ライフサイクル > データアーカイブ の順にクリックし、ライフサイクル ページで ジョブを作成する > データアーカイブ をクリックします。
データアーカイブジョブを作成する ページで、以下の情報を入力します。
情報項目説明データベース情報 - ソースデータソース:アーカイブデータが属するデータソースを選択します。
- ソースデータベース:アーカイブデータが属するデータベースを選択します。
- ターゲットデータソース:アーカイブデータのターゲットデータソースを選択します。
- ターゲットデータベース:アーカイブデータのターゲットデータベースを選択します。
アーカイブの範囲 - 部分アーカイブ:フィルター条件により、ソースデータベース内の一部のテーブルをアーカイブします。
- フィルター条件には、定数や変数設定で定義された変数を使用できます。例:
time<'${create_time}'。ここで、create_timeは変数設定の変数名、timeはアーカイブ対象テーブルのフィールドです。 - その他の設定 > 設定 をクリックすると、指定したパーティションに基づいてデータをアーカイブできます。

- フィルター条件には、定数や変数設定で定義された変数を使用できます。例:
- データベース全体のアーカイブ:ソースデータベース内のすべてのテーブルをアーカイブします。
カスタム変数 オプションです。変数を定義し、時間オフセットを設定することで、条件に合致する行をフィルタリングしてアーカイブします。 実行モード 即時実行 / スケジュール実行 / 定期実行 から選択して、ジョブの実行方法を設定します。 タスク設定 - ソース内のアーカイブデータをクリーンアップする:ソース側のアーカイブ済みデータをクリーンアップするかどうかを選択します。
- 実行タイムアウト:タスク起動後、指定された時間までに完了しない場合、スケジューリングを一時停止し、次回のスケジューリングを待機します。
- 行数制限:1秒間に操作できるデータの総行数の制限です。
- データ量制限:1秒間に操作できるデータの総サイズの制限です。
- 方式を挿入する:データアーカイブ実行時に重複データを無視するか、重複データを更新するかを選択します。
- データ検索方式:検索対象レコード行の取得方法を選択します。全表スキャンはパフォーマンスが安定しており、ターゲットデータの割合が大きいシナリオに適しています。条件マッチングは空スキャンを回避し、パフォーマンスが速く、ターゲットデータの割合が小さいシナリオに適しています。
- ターゲットテーブル構造の同期:タスクスケジューリング前に、ソース側とターゲット側のテーブル構造を比較します。このオプションが選択されていない場合、構造が一致しないテーブルはスキップされます。
備考 備考 テキストボックスに、200文字以内の説明情報を入力できます。この項目はオプションです。 SQLプレビュー をクリックしてアーカイブSQLステートメントをプレビューし、ジョブ名を指定して 送信 をクリックすると、データアーカイブの新規作成が完了します。
ジョブが生成されると、データアーカイブ リストでジョブ情報を確認できます。
データアーカイブジョブの表示
データサービス > ライフサイクル > データアーカイブ ページにアクセスし、データアーカイブリストとアーカイブレコードの基本情報を確認します。
データアーカイブリストで対象ジョブ名をクリックし、ジョブの詳細を確認します。操作列の ··· をクリックして、対象ジョブに対するその他の操作を実行することもできます。
- 停止:ジョブの実行方式が周期実行または定期実行の場合、停止ボタンをクリックしてジョブを終了できます。
- 無効/有効:ジョブの実行方式が周期実行または定期実行の場合、無効にするとジョブが一時的に停止します。再有効化すると再度有効になります。
- 編集:ジョブの状態が無効の場合、編集ボタンをクリックしてジョブの内容を更新できます。
- 削除:ジョブの状態が完了または停止の場合、削除ボタンをクリックしてジョブを削除できます。
- 詳細:ジョブの内容の詳細を確認します。
- 再度開始:ジョブの実行内容をコピーし、同じ設定で新しいジョブをすばやく作成できます。
詳細 をクリックし、表示されたジョブ詳細パネルの ジョブ情報 タブで、ジョブタイプ、ソースデータベース、ターゲットデータベース、変数設定、アーカイブ範囲、実行方式などの情報を確認します。
ジョブ詳細パネルで、実行記録 タブをクリックし、ジョブの状態、実行詳細、タスクログなどの関連情報を確認します。
ジョブ詳細パネルで、運用記録 タブをクリックし、ジョブの状態を確認します。
データアーカイブジョブのインポート
他のプラットフォームからデータアーカイブジョブをOB Cloudにインポートできます。例えば、クラウドデータベースOceanBaseのインスタンスをOB Cloudに移行した後、移行済みインスタンスに含まれるデータアーカイブジョブをOB Cloudに移行することができます。
ステップ1:他のプラットフォームからデータアーカイブジョブをエクスポート
クラウドデータベースOceanBase管理コンソールの左側のナビゲーションペインで、インスタンス をクリックします。
インスタンスの 操作 項目の下にある クラウドマーケットへ切り替え をクリックします。

インスタンスの切り替えが完了したら、インスタンスの 操作 項目の下にある データ研究開発タスクを処理する をクリックします。

データ研究開発タスクを処理する ページで、すべてを表示してエクスポート をクリックし、スケジュールタスクをローカルにエクスポートします。

ステップ2:データアーカイブジョブをOB Cloudにインポート
OB Cloudクラウドデータベースコンソールにログインし、データサービス > ライフサイクル をクリックします。その後、ライフサイクル ページで ... もっと見るオプション > インポートジョブ をクリックします。

ローカルにダウンロードしたデータアーカイブ設定ファイルをインポートジョブにアップロードします。