PolarDB for MySQLが提供するコールドデータアーカイブ機能を使用して、アクセス頻度が低く、めったにObject Storage Service (OSS) に更新されないデータをアーカイブできます。 これにより、データ保存コストを大幅に削減できます。
制御ポリシー機能の動作
PolarDB for MySQLを使用すると、CSVまたはORC形式でデータをアーカイブできます。 次の図は、これらの形式でデータをアーカイブする方法を示しています。
データは手動または自動でアーカイブできます。 アーカイブされたデータは、OSS内の複数のファイルにわたってCSVまたはORC形式で保存され、PolarDBストレージスペース内の対応するデータは自動的に削除されます。 これにより、保管スペースとコストが削減されます。 PolarDBノードは、内部ネットワークを介してOSSのコールドデータにアクセスできます。 詳細については、「コールドデータの手動アーカイブ」および「コールドデータの自動アーカイブ」をご参照ください。
パーティションテーブルのコールドデータアーカイブ機能は、カナリアリリースにあります。 この機能を使用するには、クォータセンターに移動し、クォータID polardb_mysql_hybrid_partition
に対応するクォータ名を見つけ、[操作] 列の [適用] をクリックします。
ファイル形式の比較
コールドデータをアーカイブするときは、要件に基づいて適切なファイル形式を選択できます。
項目 | CSV | ORC |
オープンソース | 可 | 可 |
アーカイブ方法 | 手動アーカイブ: | |
アーカイブ速度 | ORCフォーマットよりも高速です。 説明 シングルスレッドアーカイブのみがサポートされています。 | 低 説明 シングルスレッドアーカイブのみがサポートされています。 |
読み取り速度 |
説明 シングルスレッド読み取りとマルチスレッド読み取りがサポートされています。 |
説明 シングルスレッド読み取りのみがサポートされています。 |
トランザクション | 非対応 | 非対応 |
インデックス機能 | 非対応 | 非対応 |
アーカイブデータの変更方法 | OSSのアーカイブテーブルは読み取り専用です。 データを変更する前に、OSSテーブルからPolarDBストレージスペースにデータをインポートする必要があります。 | |
ストレージ消費量 | InnoDBエンジンを使用し、インデックスを持たないテーブルが占有するストレージスペースと一致します。 | 同じデータボリュームの場合、ORCファイルはCSVファイルが占有するストレージスペースの45% を占有します。 |
バックアップとリカバリ | サポートされていません。 説明 バックアップ操作を実行すると、OSSにアーカイブされたコールドデータはバックアップされません。 したがって、アーカイブされたコールドデータをバックアップから復元することはできません。 | |
影響 |
|
|
ビジネスへの影響を避けるために、アーカイブ操作を実行する前に、アーカイブ方法とテーブルタイプの制限を評価します。
アーカイブされたデータは、指定したOSSバケットではなく、デフォルトのOSSバケットに保存されます。 アーカイブされたデータリストは、PolarDBコンソールでのみ表示できます。
サポートされているバージョン
CSVまたはORC形式でデータをアーカイブするには、Enterprise Editionのクラスターが次の要件を満たしている必要があります。
クラスターがcluster Editionの場合、次のいずれかのデータベースエンジンバージョンを実行する必要があります。
リビジョンバージョンが8.0.1.1.31以降のPolarDB for MySQL 8.0.1。
リビジョンバージョンが8.0.2.2.9以降のPolarDB for MySQL 8.0.2。
クラスターがマルチマスタークラスター (データベース /テーブル) エディションの場合、PolarDB for MySQL 8.0.1.0.13以降を実行する必要があります。
使用状況
アーカイブコールドデータ
コールドデータをアーカイブするには、PolarDBコンソールにログインし、コールドデータアーカイブを有効にし、クラスターに接続してから、アーカイブ操作を実行します。
共通テーブルの場合:
コールドデータをCSVまたはORC形式で手動でアーカイブできます。 詳細については、「共通テーブルのアーカイブ」をご参照ください。
パーティション分割テーブルの場合:
パーティションテーブルまたはアーカイブテーブルパーティションをOSS外部テーブルに手動でアーカイブできます。 詳細については、「パーティションテーブルのアーカイブ」または「テーブルパーティションをOSS外部テーブルにアーカイブする」をご参照ください。
DLMポリシーを作成して、データを自動的にアーカイブできます。 詳細については、「Usage」をご参照ください。
アーカイブされたコールドデータの照会
共通テーブルの場合: ホットデータのクエリに使用するメソッドを使用します。 アクセスモードを変更する必要はありません。
パーティション分割テーブルの場合:
テーブルパーティションがOSS外部テーブルにアーカイブされた後、アクセスモードを変更して、指定されたアーカイブテーブルのアーカイブデータを照会する必要があります。
パーティションテーブルがアーカイブされると、アーカイブされたテーブルはハイブリッドパーティションテーブルになります。 データのクエリ方法の詳細については、「ハイブリッドパーティションテーブルのデータのクエリ」をご参照ください。
説明1つのテーブルにアーカイブされたコールドデータは、複数のファイルに分散されます。 コールドデータのクエリを最適化するために、並列クエリを実行できます。 詳細については、「単一のOSS外部テーブルに対するマルチファイルクエリの実行」をご参照ください。
アーカイブされたコールドデータの変更
OSSにアーカイブされたコールドデータを変更する場合は、
ALTER
ステートメントを実行して、OSSからPolarDBストレージスペースにデータをインポートできます。 データがインポートされると、OSSのコールドデータは削除されます。 データを変更した後、変更したテーブルをOSSに再アーカイブできます。 詳細については、「OSSテーブルからPolarStoreへのデータのインポート」をご参照ください。アーカイブされたコールドデータの削除
テーブルの種類とデータのアーカイブ方法に基づいて、アーカイブされたコールドデータを削除するには、次の方法を使用します。 詳細については、「OSSの対応するファイルの削除」をご参照ください。
共通テーブルとOSS外部テーブルの場合
DROP TABLE
文を使用して、アーカイブ済みテーブルを削除します。 次に、CALL dbms_oss.delete_table_file('database_name', 'table_name');
コマンドを実行して、関連するコールドデータを削除します。アーカイブパーティション分割テーブルの場合
CALL dbms_oss.delete_table_file('database_name', 'table_name');
コマンドを実行し、アーカイブされたコールドデータを削除します。
課金
コールドデータは、OSSの占有容量に基づいて課金されます。 次の課金ルールが使用されます。 PolarDBストレージプランを購入して、OSSのコールドデータのストレージコストを相殺することができます。 詳細については、「コールドデータのアーカイブ」をご参照ください。
中国本土のリージョン | 中国 (香港) および中国以外の地域 |
USD 0.0000325 /GB-時間 | USD 0.0000455 /GB-時間 |
例: 中国本土にデプロイされたクラスターのコールドデータアーカイブを有効にして実行します。 OSSにアーカイブされたコールドデータの量は100 GBです。 1時間ごとのコールドデータ保存料金は
100 GB × USD 0.0000325 /GB-hour = USD 0.00325 /時間 です。
アーカイブされたコールドデータの量を表示する方法については、「OSSにアーカイブされたコールドデータに関する情報の表示」をご参照ください。
お問い合わせ
コールドデータのアーカイブ機能についてご質問がある場合は、DingTalkグループ24490017825に参加してください。 グループの専門家があなたの質問に答えることができます。 24/7サポートを提供するグループで、PolarDB for MySQLのチャットボットアシスタントを使用することもできます。