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

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

最終更新日:Apr 09, 2026

コールドデータをアーカイブする前に、希望するアーカイブフォーマットを確認し、クラスターが要件を満たしていることを確認してください。詳細については、「アーカイブフォーマットの比較」および「前提条件」をご参照ください。

適用範囲

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

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

      • MySQL 8.0.1、マイナーバージョン 8.0.1.1.47 以降。

      • MySQL 8.0.2、リビジョンバージョン 8.0.2.2.10 以降。

    • マルチマスタークラスター (Limitless) Edition の場合、カーネルバージョンは 8.0.1.0.13 以降である必要があります。

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

    • Cluster Edition の場合、リビジョンバージョンは 8.0.2.2.30 以降である必要があります。

    • マルチマスタークラスター (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);
説明

システムは、アーカイブされたコールドデータをテーブルごとにマルチファイル形式で保存します。クエリパフォーマンスを最適化するには、パラレルクエリを使用します。詳細については、「コールドデータに対するパラレルクエリ」をご参照ください。

コールドデータの変更

Object Storage Service (OSS) に保存されているコールドデータを頻繁に変更しない場合は、ALTER 文を使用して PolarDB ストレージ領域に戻して変更します。その後、システムは OSS からデータを自動的に削除します。データを変更した後、テーブルデータを再度 OSS にアーカイブできます。

標準テーブル

構文

ALTER TABLE table_name ENGINE[=]engine_name;

パラメーター

パラメーター

説明

table_name

PolarDB ストレージ領域に戻す 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;

パーティションテーブル

説明

パーティションテーブルのコールドデータを変更するには、ご利用の PolarDB for MySQL クラスターがバージョン 8.0.2、リビジョンバージョン 8.0.2.2.34 以降である必要があります。

構文

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 上の対応するファイルを削除します。

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

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

OSS 上の対応するファイルを削除する操作は非同期で実行されます。ファイルは、クラスター内のすべてのノードがそれらに依存しなくなった後にのみ完全に削除されます。このプロセスは、トラフィックが多い場合に遅延することがあります。

FORCE STORAGE OSS オプション

説明

OSS ファイルを強制的に削除する FORCE STORAGE OSS オプションは、マイナーバージョンが 8.0.2.2.29 以降の PolarDB for MySQL 8.0.2 クラスターでのみサポートされています。

  • 標準テーブルと 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 外部テーブル、およびパーティションテーブルのアーカイブには特定の制限があります。ビジネスに影響を与えないように、データをアーカイブする前にこれらの制限を確認してください。

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

  • パーティションテーブルのアーカイブ方法の説明:

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

    • パーティションを OSS 外部テーブルにアーカイブ:この方法では、パーティションから新しい別の OSS 外部テーブルにデータを移動します。その後、元のパーティションはテーブルから削除されます。

項目

CSV

ORC

X-Engine

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

はい

はい

いいえ

アーカイブ方法

手動アーカイブ:

アーカイブ速度

高速

説明

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

遅い

説明

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

高速

説明

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

クエリ速度

  • 低い。インデックスがなく、順次クエリを使用する場合、クエリパフォーマンスは InnoDB ストレージエンジンの約 5 分の 1 から 10 分の 1 です。

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

説明

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

  • 低い。インデックスがなく、順次クエリを使用する場合、クエリパフォーマンスは InnoDB ストレージエンジンの約 5 分の 1 から 10 分の 1 です。

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

説明

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

  • 高速。データは PolarStore ストレージ領域に保存されます。クエリ速度は OSS のコールドデータよりも大幅に高速ですが、InnoDB ストレージエンジンよりも約 30% 遅くなります。

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

トランザクションサポート

いいえ

いいえ

はい

インデックス機能

いいえ

いいえ

はい

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

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

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

使用ストレージ領域

ストレージ領域は、InnoDB ストレージエンジンのインデックスのないテーブルと同等です。

同じデータ量の場合、CSV フォーマットが必要とするストレージ領域の 45% を使用します。

InnoDB ストレージエンジンと比較して、ストレージ領域は元のサイズの 10% から 50% に圧縮できます。具体的な圧縮率はデータの特性によって異なります。

バックアップと復元

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

説明
  • Object Storage Service (OSS) は、99.9999999999% (トゥエルブナイン) のデータ耐久性と 99.995% のデータ可用性を提供します。コールドデータが失われるリスクはほとんどありません。

  • PolarDB のバックアップ操作を実行する際、OSS 上のアーカイブ済みコールドデータはバックアップされません。そのため、バックアップを使用してデータベースとテーブルのリカバリ、バックアップリカバリ、またはポイントインタイムリカバリを行うことはできません。

サポートされています。

アーカイブ後の影響

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