すべてのプロダクト
Search
ドキュメントセンター

PolarDB:コールドデータのアーカイブ

最終更新日:Dec 23, 2024

PolarDB for MySQLが提供するコールドデータアーカイブ機能を使用して、アクセス頻度が低く、めったにObject Storage Service (OSS) に更新されないデータをアーカイブできます。 これにより、データ保存コストを大幅に削減できます。

制御ポリシー機能の動作

PolarDB for MySQLを使用すると、CSVまたはORC形式でデータをアーカイブできます。 次の図は、これらの形式でデータをアーカイブする方法を示しています。

image

データは手動または自動でアーカイブできます。 アーカイブされたデータは、OSS内の複数のファイルにわたってCSVまたはORC形式で保存され、PolarDBストレージスペース内の対応するデータは自動的に削除されます。 これにより、保管スペースとコストが削減されます。 PolarDBノードは、内部ネットワークを介してOSSのコールドデータにアクセスできます。 詳細については、「コールドデータの手動アーカイブ」および「コールドデータの自動アーカイブ」をご参照ください。

説明

パーティションテーブルのコールドデータアーカイブ機能は、カナリアリリースにあります。 この機能を使用するには、クォータセンターに移動し、クォータID polardb_mysql_hybrid_partitionに対応するクォータ名を見つけ、[操作] 列の [適用] をクリックします。

ファイル形式の比較

コールドデータをアーカイブするときは、要件に基づいて適切なファイル形式を選択できます。

項目

CSV

ORC

オープンソース

アーカイブ方法

手動アーカイブ:

アーカイブ速度

ORCフォーマットよりも高速です。

説明

シングルスレッドアーカイブのみがサポートされています。

説明

シングルスレッドアーカイブのみがサポートされています。

読み取り速度

  • 遅い シリアルクエリを使用する場合、インデックスのないアーカイブテーブルのクエリパフォーマンスは、InnoDBストレージエンジンのクエリパフォーマンスの約5分の1から10分の1になります。

  • 行ストアノードのORCフォーマットよりも高速です。

説明

シングルスレッド読み取りとマルチスレッド読み取りがサポートされています。

  • 遅い シリアルクエリを使用する場合、インデックスのないアーカイブテーブルのクエリパフォーマンスは、InnoDBストレージエンジンのクエリパフォーマンスの約5分の1から10分の1になります。

  • 別の列ストアノードでの分析処理 (AP) クエリに適しています。

説明

シングルスレッド読み取りのみがサポートされています。

トランザクション

非対応

非対応

インデックス機能

非対応

非対応

アーカイブデータの変更方法

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以降を実行する必要があります。

使用状況

  • アーカイブされたコールドデータの照会

    • 共通テーブルの場合: ホットデータのクエリに使用するメソッドを使用します。 アクセスモードを変更する必要はありません。

    • パーティション分割テーブルの場合:

      • テーブルパーティションが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のチャットボットアシスタントを使用することもできます。