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

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

最終更新日:Aug 01, 2026

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

適用範囲

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

    • クラスターエディションは Cluster Edition

      • 標準テーブルのアーカイブ:

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

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

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

        • MySQL 8.0.2、リビジョン 8.0.2.2.34.1 以降。

    • クラスターエディションが マルチマスタークラスター (Limitless) Edition の場合:

      • MySQL 8.0.1、リビジョン 8.0.1.0.13 以降。

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

    • クラスターエディションは Cluster Edition です:

      • 標準テーブルのアーカイブ:MySQL 8.0.2、リビジョン 8.0.2.2.30 以降。

      • パーティションテーブルのアーカイブ:MySQL 8.0.2、リビジョン 8.0.2.2.34.1 以降。

    • クラスターエディションが マルチマスタークラスター (Limitless) Edition の場合:MySQL 8.0.2、リビジョン 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.34.1 以降。

パラメーター

コールドデータアーカイブ機能を使用する際、ビジネス要件に基づいて、クラスターの パラメーター ページで次のパラメーターを 設定できます。

パラメーター

レベル

説明

loose_polar_dlm_storage_mode

グローバル

自動コールドデータアーカイブ (DLM) 機能のスイッチです。有効な値:

  • OFF (デフォルト):DLM ストレージは無効です。スケジューラは起動せず、アーカイブ操作は実行されません。

  • RO (非推奨):DLM ストレージは読み取り専用です。アーカイブされたコールドデータパーティションはクエリできますが、新しいアーカイブ書き込み操作は実行されません。この値は本番環境ではほとんど使用されません。

  • RW (推奨):DLM ストレージは読み書き可能です。スケジューラが起動し、DLM ポリシーに基づく自動アーカイブをサポートし、アーカイブされたデータもクエリできます。

説明
  • このパラメーターは、リビジョンバージョンが 8.0.2.2.34.1 以降の MySQL 8.0.2 クラスターにのみ適用されます。

  • コールドデータアーカイブを有効にすると、システムはこのパラメーターを自動的に RW に設定します。手動での変更は必要ありません。

  • X-Engine 高圧縮エンジンのみを使用してパーティションテーブルをアーカイブする場合 (OSS コールドデータアーカイブなし)、DLM スケジューリングを有効にするには、このパラメーターを手動で RW に設定する必要があります。

loose_allow_create_hybrid_partition

グローバル

InnoDB 以外のエンジンパーティションを含むパーティションテーブルの作成またはアーカイブを許可するかどうかを制御します。有効な値:

  • OFF (デフォルト):InnoDB 以外のエンジンパーティションを含むパーティションテーブルの作成は禁止されます。すべてのパーティションは InnoDB ストレージエンジンを使用する必要があります。

  • ON (推奨):InnoDB 以外のエンジンパーティションを含むパーティションテーブルの作成が許可されます。パーティションレベルで OSS (CSV/ORC) または X-Engine エンジンを指定できます。

説明
  • このパラメーターは、リビジョンバージョンが 8.0.2.2.34.1 以降の MySQL 8.0.2 クラスターにのみ適用されます。

  • コールドデータアーカイブを有効にすると、バージョンによってはシステムがこのパラメーターを自動的に ON に設定する場合があります。

loose_use_oss_meta

グローバル / セッション

OSS テーブルの OSS メタデータ (meta) 管理を有効にするかどうかを制御します。loose_csv_oss_file_filter パラメーターはこのパラメーターに依存します。有効な値:

  • ON:OSS メタデータ管理が有効になります。OSS テーブルの作成時またはアーカイブ時にメタ情報が書き込まれます。その後、メタデータを読み取ることでファイルリストが取得され、loose_csv_oss_file_filter フィルタリング機能がサポートされます。

  • OFF:OSS メタデータ管理は無効です。メタ情報は書き込まれません。メタデータは OSS ファイルを直接リストすることで取得され、loose_csv_oss_file_filter はサポートされません。

loose_csv_oss_file_filter

グローバル / セッション

OSS テーブルのクエリ時にファイルレベルのフィルタリング (ファイルフィルター) を有効にするかどうかを制御します。この機能は、最小/最大統計とブルームフィルターを使用して、無関係なデータファイルをスキップし、スキャンされる OSS データ量を削減します。この機能には、loose_use_oss_meta パラメーターが有効になっている必要があります。有効な値:

  • OFF:ファイルフィルタリングは無効です。クエリ中に OSS テーブル内のすべてのデータファイルがスキャンされます。

  • ON (推奨):ファイルフィルタリングが有効になります。クエリ中に、loose_csv_oss_file_filter が WHERE 条件とともに使用され、クエリパフォーマンスが向上します。

dlm_prune_archiving_oss_partitions

グローバル / セッション

データライフサイクル管理 (DLM) 機能による、アーカイブされた OSS パーティションの自動プルーニングのスイッチです。DML 操作 (UPDATE/DELETE) が実行されると、システムは OSS (ORC/CSV) にアーカイブ中のパーティションと、すでに OSS にアーカイブされているパーティションを自動的にプルーニングします。これにより、DML 操作がアーカイブによってブロックされるのを防ぎ、DML と DDL の間の競合を解決します。有効な値:

  • ON (デフォルト、推奨):DML 操作 (UPDATE/DELETE) は、OSS にアーカイブ中のパーティションを自動的にプルーニングします。

  • OFF:DML 操作は、OSS にアーカイブ中のパーティションを自動的にプルーニングしません。

hybrid_partition_query_mix_engine_enabled

グローバル / セッション

自動クエリプルーニングのスイッチです。SELECT クエリが実行されると、システムは OSS (ORC/CSV) パーティションを自動的にプルーニングし、コールドデータへのアクセスによる低速クエリを防ぎます。有効な値:

  • OFF (デフォルト、推奨):クエリは OSS パーティションを自動的にプルーニングします。

  • ON (非推奨):クエリは OSS パーティションを自動的にプルーニングしません。

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

コールドデータのクエリ

  • 標準テーブル

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

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

    • 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 クラスターでのみサポートされています:

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

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

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

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

    • パーティションの OSS 外部テーブルへのアーカイブ:パーティションのデータをテーブルから移動し、新しい独立した OSS 外部テーブルに保存します。元のパーティションはソーステーブルから削除されます。

比較項目

CSV

ORC

X-Engine

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

はい

はい

いいえ

アーカイブ方法

手動アーカイブ:

アーカイブ速度

速い

説明

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

遅い

説明

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

速い

説明

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

クエリ速度

  • 比較的遅い。インデックスがなく、シーケンシャルクエリを使用する場合、クエリパフォーマンスは InnoDB ストレージエンジンの約 1/5 から 1/10 です。

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

説明

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

  • 比較的遅い。インデックスがなく、シーケンシャルクエリを使用する場合、クエリパフォーマンスは InnoDB ストレージエンジンの約 1/5 から 1/10 です。

  • 専用の列ストアノードを介した AP クエリに適しています。

説明

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

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

  • 行ストアテーブルは TP クエリに適しており、列ストアテーブルは列ストアノードでの AP クエリに適しています。

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

いいえ

いいえ

はい

インデックス機能

いいえ

いいえ

はい

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

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

アーカイブ済みテーブルは DML 操作をサポートします。

ストレージ領域の使用量

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

同じデータ量の場合、ORC は CSV が使用するストレージ領域の約 45% を使用します。

データを InnoDB サイズの 10%~50% に圧縮します。実際の圧縮率はデータの特性によって異なります。

バックアップとリカバリ

非対応。

説明
  • Object Storage Service (OSS) は、99.9999999999% (9が12個) のデータ耐久性と 99.995% のデータ可用性を提供し、コールドデータが失われるリスクは実質的にありません。

  • PolarDB のバックアップを実行する際、OSS にアーカイブされたコールドデータはバックアップされません。そのため、データベースとテーブルの復元、バックアップベースのリカバリ、およびポイントインタイムリカバリはサポートされていません。

対応。

アーカイブ後の影響

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