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

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

最終更新日:Feb 15, 2026

このトピックでは、コールドデータのアーカイブ機能の使用方法について説明します。開始する前に、アーカイブフォーマットを確認し、クラスターが要件を満たしていることを検証してください。詳細については、「アーカイブフォーマット比較」および「適用範囲」をご参照ください。

利用シーン

  • CSV フォーマットへのアーカイブ

    • プロダクトエディションが Cluster Edition の場合、Milvus のバージョンは以下のいずれかである必要があります:

      • MySQL 8.0.1(リビジョン 8.0.1.1.47 以降)。

      • MySQL 8.0.2(リビジョン 8.0.2.2.10 以降)。

    • プロダクトエディションが Multi-master Cluster (Limitless) Edition の場合、Milvus のバージョンは 8.0.1.0.13 以降である必要があります。

  • ORC フォーマットへのアーカイブ

    • プロダクトエディションが Cluster Edition の場合、リビジョンは 8.0.2.2.30 以降である必要があります。

    • プロダクトエディションが Multi-master Cluster (Limitless) Edition の場合、リビジョンは 8.0.2.2.30 以降である必要があります。

  • X-Engine フォーマットへのアーカイブ

    • 標準テーブルをアーカイブする場合:

      • MySQL 8.0.1(リビジョン 8.0.1.1.31 以降)。

      • MySQL 8.0.2(リビジョン 8.0.2.2.12 以降)。

    • パーティションテーブルをアーカイブする場合:MySQL 8.0.2(リビジョン 8.0.2.2.12 以降)。

    • X-Engine 列指向テーブル へのアーカイブ:MySQL 8.0.2(リビジョン 8.0.2.2.33 以降)。

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

コールドデータのクエリ

  • 標準テーブル

    アーカイブフォーマットに関係なく、テーブルへのアクセス方法を変更せずにアーカイブ済みデータをクエリできます。

  • パーティションテーブル

    • OSS 外部テーブルへのアーカイブ:アーカイブ済みデータをクエリするには、テーブルへのアクセス方法を変更する必要があります。これは、指定されたアーカイブテーブルをクエリすることを意味します。詳細については、「パーティションテーブルを OSS 外部テーブルへアーカイブ」をご参照ください。

    • パーティションテーブルのアーカイブ:アーカイブ済みテーブルはハイブリッドパーティションテーブルとなります。詳細については、「ハイブリッドパーティションのクエリ」をご参照ください。

      異なるストレージエンジン間でパーティションデータをクエリするには、以下の 3 つの方法のいずれかを使用できます:

      • hybrid_partition_query_mix_engine_enabled パラメーターを ON に設定します。これにより、InnoDB、X-Engine、OSS の各パーティションからデータを返すクエリが可能になります。例:

        -- t1 はハイブリッドパーティションテーブルです。
        SELECT * FROM t1;
      • hybrid_partition_query_mix_engine_enabled パラメーターを OFF に設定します。これにより、クエリは InnoDB および X-Engine のパーティションからのみデータを返します。例:

        -- t1 はハイブリッドパーティションテーブルです。
        SELECT * FROM t1;
      • パーティション名を指定します。これにより、任意のストレージエンジンを使用するパーティションからデータをクエリできます。例:

        -- t1 はハイブリッドパーティションテーブルです。p1 はパーティション名です。
        SELECT * FROM t1 PARTITION (p1);
説明

アーカイブ済みのコールドデータは単一テーブル・マルチファイル形式で保存されるため、コールドデータを表示する際には、クエリ最適化のためにパラレルクエリを使用してください。詳細については、「コールドデータのパラレルクエリ」をご参照ください。

コールドデータの変更

OSS 上のコールドデータを頻繁でない場合に変更するには、ALTER 構文を使用して、OSS から PolarDB ストレージ領域へコールドデータをインポートし、変更を行います。インポート後、OSS 上のコールドデータは同時に削除されます。データを変更した後、変更済みのテーブルデータを再度 OSS へアーカイブします。

標準テーブル

構文

ALTER TABLE table_name ENGINE[=]engine_name;

パラメーター

パラメーター

説明

table_name

インポートする OSS テーブルの名前です。

engine_name

インポート後のエンジンタイプです。

注意事項

OSS テーブルが読み取り専用の場合、変更操作(INSERTUPDATE、および DELETE)はサポートされません。アーカイブ済みのコールドデータを変更するには、OSS テーブルを InnoDB テーブルなどの読み書き可能なテーブルに変換します。読み取り専用の OSS テーブルを変更しようとした場合、次のエラーメッセージが表示されます:

1036 - Table 't' is read only

oss_test データベース内で、OSS テーブル t を PolarDB ストレージ領域へインポートします。

ALTER TABLE `oss_test`.`t` ENGINE = InnoDB;

InnoDB テーブル t のデータを変更します。データを変更した後、InnoDB エンジンのテーブル t を再度 OSS へアーカイブします。例:

ALTER TABLE t ENGINE = CSV CONNECTION = 'default_oss_server';

または

ALTER TABLE t ENGINE = CSV STORAGE OSS;

パーティションテーブル

構文

ALTER TABLE table_name REORGANIZE PARTITION part_name INTO (partition_definition);

パラメーター

パラメーター

説明

table_name

インポートする OSS テーブルの名前です。

part_name

インポートするパーティションの名前です。

partition_definition

インポートするパーティションの partition_definition と一致させる必要があります。

データベース内で、OSS にアーカイブされたパーティションテーブル t のパーティション p1 のデータを PolarDB ストレージ領域へインポートします。

ALTER TABLE t REORGANIZE PARTITION p1 INTO(PARTITION p1 values less than(100));

コールドデータの削除

説明
  • 以下のバージョンの PolarDB for MySQL クラスターのみが、OSS 上の対応するファイルの削除をサポートしています:

    • 8.0.1(マイナーバージョン 8.0.1.1.42 以降)。

    • 8.0.2(マイナーバージョン 8.0.2.2.23 以降)。

  • クラスターのマイナーバージョンが要件を満たさない場合、OSS 上の対応するファイルを削除できません。クラスターのマイナーバージョンをアップグレードする必要があります。詳細については、「マイナーバージョンの管理」をご参照ください。

OSS 上のテーブルを削除したり、PolarDB ストレージ領域へインポートしたりしても、OSS 上のファイルは自動的に削除されません。データが今後使用されないことが確認できたら、以下のように OSS 上の対応するファイルを削除してください。詳細については、「OSS 上の対応するファイルの削除」をご参照ください。

  • 標準テーブルおよび OSS 外部テーブル

    アーカイブ済みテーブルを削除するには、DROP TABLE を使用します。その後、CALL dbms_oss.delete_table_file('database_name', 'table_name'); コマンドを使用して、OSS 上の対応するファイルを削除します。

  • パーティションテーブル

    OSS 上の対応するファイルを削除するには、CALL dbms_oss.delete_table_file('database_name', 'table_name'); コマンドを使用します。

OSS 上の対応するファイルの削除は非同期操作です。すべてのノードが OSS ファイルに依存しなくなった時点で、削除が完了します。また、トラフィックが集中している場合、この処理には若干の遅延が発生する可能性があります。

FORCE STORAGE OSS オプション

説明

PolarDB for MySQL バージョン 8.0.2(マイナーバージョン 8.0.2.2.29 以降)のみが、OSS ファイルを強制削除する FORCE STORAGE OSS オプションをサポートしています。

  • 標準テーブルおよび OSS 外部テーブル

    DROP TABLE table_name [FORCE STORAGE OSS];
    説明

    DROP TABLE コマンドの FORCE STORAGE OSS オプションにより、ワンクリックでクリーンアップが可能です。テーブルスキーマを削除すると、関連する OSS ストレージファイルも自動的に削除されます。

  • パーティションテーブル

    ALTER TABLE table_name DROP PARTITION part_name [FORCE STORAGE OSS];
    説明

    ALTER TABLE 文の DROP PARTITION 句と FORCE STORAGE OSS オプションを組み合わせることで、パーティションテーブルのメタデータと対応する OSS ストレージファイルを同期的に削除できます。

  • CHANGE PARTITION ENGINE

      ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV|ORC [FORCE STORAGE OSS]
    説明

    CHANGE PARTITION ENGINE のコールドデータアーカイブ機能は、強制上書きメカニズムを提供し、同じ名前のファイルを自動的に置き換えます。

フォーマット比較

以下のフォーマットを比較して、ご自身のコールドデータアーカイブ要件に最も適したものを選択してください。

説明
  • 標準テーブル、OSS 外部テーブル、およびパーティションテーブルのアーカイブには、それぞれ特定の制限があります。ビジネスへの影響を回避するために、アーカイブを実行する前にこれらの制限を十分に確認してください。

  • アーカイブ後、コールドデータはお客様の OSS バケットではなく、システムデフォルトの Object Storage Service (OSS) に保存されます。現在、アーカイブ済みデータの一覧は PolarDB コンソールでのみ閲覧できます。

  • パーティションテーブルのアーカイブオプション:

    • パーティションテーブルのアーカイブ:パーティションテーブルのパーティションをその場でアーカイブします。データは元のテーブル内に残りますが、そのパーティションの記憶媒体が PolarDB(ホットストレージ)から OSS(コールドストレージ)へ変更され、ホットパーティションとコールドパーティションを含むハイブリッドパーティションテーブルとなります。

    • パーティションテーブルを OSS 外部テーブルへアーカイブ:パーティションのデータを元のテーブルから分離し、新しい独立した OSS 外部テーブルへ移動します。元のテーブルはそのパーティションを失います。

比較項目

CSV

ORC

X-Engine

オープンソースフォーマット

はい

はい

いいえ

アーカイブ方法

手動アーカイブ:

アーカイブ速度

速い

説明

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

遅い

説明

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

速い

説明

データは PolarDB ストレージ領域へアーカイブされます。

クエリ速度

  • 低速です。インデックスがなく、逐次クエリを使用するため、InnoDB ストレージエンジンの約 1/5~1/10 のパフォーマンスとなります。

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

説明

シングルスレッドおよびマルチスレッドのデータ読み取りをサポートしています。

  • 低速です。インデックスがなく、逐次クエリを使用するため、InnoDB ストレージエンジンの約 1/5~1/10 のパフォーマンスとなります。

  • 専用の列のストアノードにおける分析処理(AP)クエリに最適です。

説明

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

  • 速いですが、InnoDB エンジンより約 30% 遅くなります。これは、データが PolarDB バケットに格納されているためであり、OSS のコールドデータよりもはるかに高速なアクセスが可能です。

  • 行指向テーブルはトランザクション処理(TP)クエリに適しています。列指向テーブルは列のストアノードにおける AP クエリに適しています。

トランザクション対応

いいえ

いいえ

はい

インデックス対応

いいえ

いいえ

はい

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

OSS 上のアーカイブ済みテーブルは読み取り専用です。変更するには、まず OSS のデータを PolarDB ストレージ領域へ再インポートする必要があります。

アーカイブ済みテーブルに対して DML 操作を実行できます。

使用ストレージ容量

InnoDB エンジンのインデックスなしテーブルと同じです。

同一データ量の場合、CSV ファイルが必要とするストレージ容量の 45% です。

InnoDB エンジンの使用容量の 10%~50% に圧縮されます。正確な圧縮率はデータの特性によって異なります。

バックアップおよびリストア

サポートされていません。

説明
  • Object Storage Service (OSS) は、99.9999999999%(12 nines)のデータ耐久性および 99.995% のデータ可用性を提供します。コールドデータの喪失リスクはほぼゼロです。

  • PolarDB のバックアップ操作中は、OSS 上のアーカイブ済みコールドデータはバックアップされません。そのため、バックアップを使用したデータベースやテーブルのリストア、バックアップからの回復、ポイントインタイムリカバリは実行できません。

サポートされています。

アーカイブ後の影響

アーカイブ後、テーブルへのアクセス方法を変更せずにアーカイブ済みデータをクエリできます。