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

PolarDB:コールドデータをCSVまたはORC形式で手動でアーカイブする

最終更新日:Dec 10, 2024

このトピックでは、コールドデータをコンマ区切り値 (CSV) または最適化行列 (ORC) 形式でアーカイブし、Object Storage Service (OSS) テーブルからPolarStoreにデータをインポートする方法について説明します。

前提条件

  • クラスターのコールドデータをCSV形式でアーカイブするには、クラスターが次のエンジンバージョン要件を満たしていることを確認します。 クラスターのエンジンバージョンを照会する方法については、「エンジンバージョンの照会」をご参照ください。

    • クラスターがcluster Editionの場合、次のいずれかのデータベースエンジンバージョンを実行する必要があります。

      • リビジョンバージョンが8.0.1.1.32以降のPolarDB for MySQL 8.0.1

      • リビジョンバージョンが8.0.2.2.10以降のPolarDB for MySQL 8.0.2

        説明

        クラスターが次のいずれかのデータベースエンジンバージョンを実行している場合、コールドデータの手動アーカイブはバイナリログに記録されません。

        • リビジョンバージョンが8.0.1.1.33以降のPolarDB for MySQL 8.0.1

        • リビジョンバージョンが8.0.2.2.11.1以降のPolarDB for MySQL 8.0.2

    • クラスターがマルチマスタークラスター (データベース /テーブル) エディションの場合、PolarDB for MySQL 8.0.1.0.13以降を実行する必要があります。

  • クラスターのコールドデータをORC形式でアーカイブするには、リビジョンバージョンが8.0.2.2.16.2以降のPolarDB for MySQL 8.0.2を実行していることを確認します。 クラスターのエンジンバージョンを照会する方法については、「エンジンバージョンの照会」をご参照ください。

  • コールドデータアーカイブ機能が有効になっています。 詳細については、「コールドデータアーカイブの有効化」をご参照ください。

  • クラスターが接続されています。 詳細については、「クラスターへの接続」をご参照ください。

使用上の注意

共通テーブルのアーカイブ

コールドデータアーカイブは、テーブル内のコールドデータを保存するプロセスです。 コールドデータを格納するこれらのテーブルは、アーカイブテーブル (読み取り専用) と呼ばれ、OSSエンジンを利用します。 これらのアーカイブテーブルに対応するデータファイルはOSSに保存されます。 コールドデータがアーカイブされると、元のテーブルが占有していたPolarFileSystemスペースが解放されます。

構文

  • コールドデータをCSV形式でアーカイブする:

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

    クラスターがPolarDB for MySQL 8.0.1.1.33以降、PolarDB for MySQL 8.0.2.2.13以降、またはマルチマスタークラスター (データベース /テーブル) エディションPolarDB for MySQL 8.0.1.1.15以降の場合、次のステートメントを実行してコールドデータを手動でアーカイブすることもできます。

    ALTER TABLE table_name ENGINE = CSV STORAGE OSS;
  • コールドデータをORC形式でアーカイブする:

    ALTER TABLE table_name ENGINE = ORC STORAGE OSS;
説明

アーカイブするファイルと同じ名前のファイルがOSSに含まれている場合、システムはファイルがOSSに既に存在することを示すエラーメッセージを返します。 例:

Target file for archived table exists on oss.

上記のステートメントにFORCEキーワードを追加して、OSSの既存のファイルを上書きできます。 次の例は、CSV形式でコールドデータをアーカイブするステートメントにFORCEキーワードを追加する方法を示しています。

ALTER TABLE table_name ENGINE = CSV CONNECTION = 'default_oss_server' , FORCE;

Parameters

パラメーター

説明

table_name

OSSにアーカイブするテーブルの名前。

注意事項

  • InnoDBストレージエンジンとX-engineを使用するテーブルのデータのみをアーカイブできます。

  • コールドデータアーカイブ中にDDLまたはDMLステートメントを実行してテーブルを変更することはできません。

  • データファイルをカスタムOSSサーバーにアーカイブすることはできません。

  • InnoDBストレージエンジンを使用するテーブルにコールドデータをアーカイブするには、テーブルにプライマリキーがあることを確認します。

  • コールドデータがアーカイブされると、OSSのテーブルは読み取り専用になり、このテーブルのクエリ速度は遅くなります。 データアーカイブを実行する前に、テストデータを使用して、アーカイブテーブルのクエリパフォーマンスがビジネス要件を満たしているかどうかを評価することをお勧めします。

tテーブルのデータをCSVまたはORC形式でOSSにアーカイブします。

  1. oss_testデータベースにtという名前のテーブルを作成します。 このテーブルはInnoDBストレージエンジンを使用します。

  2. CREATE TABLE t(a int, b int, c int, primary key(a)) ENGINE = INNODB;
  3. tテーブルにデータを挿入します。

  4. INSERT INTO t VALUES (1,2,3);
  5. ALTERステートメントを実行して、コールドデータをアーカイブします。

    • CSV形式でデータをアーカイブする:

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

      クラスターがPolarDB for MySQL 8.0.1.1.33以降、PolarDB for MySQL 8.0.2.2.13以降、またはマルチマスタークラスター (データベース /テーブル) エディションPolarDB for MySQL 8.0.1.1.15以降の場合は、次のステートメントを実行します。

      ALTER TABLE t ENGINE = CSV STORAGE OSS; 
    • ORC形式でデータをアーカイブする:

      ALTER TABLE t ENGINE = ORC STORAGE OSS;
  6. データがアーカイブされた後、PolarDBコンソールにログインしてOSSのアーカイブされたデータベースとテーブルを表示するか、SQL文を実行してアーカイブされたテーブルのデータを表示します。

    • OSSでアーカイブされたデータベースとテーブルを表示するには、にログインします。PolarDBコンソール. 管理するクラスターを見つけ、[設定と管理] > [コールドデータアーカイブ] を選択して、OSSのアーカイブされたデータベースとテーブルに関する情報を表示します。

    • アーカイブされたテーブルのデータを表示するには、アーカイブ操作の前にSQL文を実行するのと同じ方法でSQL文を実行します。 例:

      SELECT * FROM t;

OSS外部テーブルへのテーブルパーティションのアーカイブ

説明
  • クラスターは、リビジョンバージョンが8.0.2.2.25以降のPolarDB for MySQL 8.0.2を実行する必要があります。

  • PolarDBコンソールで、partition_level_mdl_enabledクラスターパラメーターをONに設定して、パーティションレベルのメタデータロック (MDL) 機能を有効にします。 クラスターパラメーターの設定方法の詳細については、「クラスターパラメーターとノードパラメーターの設定」をご参照ください。

  • PolarDBコンソールでloose_use_oss_metaクラスターパラメーターをONに設定し、use_oss_meta機能を有効にします。 クラスターパラメーターの設定方法の詳細については、「クラスターパラメーターとノードパラメーターの設定」をご参照ください。

構文

CALL dbms_dlm.archive_partition2table('source_db', 'source_tb', 'source_part', 'archive_db', 'archive_table', 'archive_table_file_filter');

Parameters

パラメーター

説明

source_db

ソースデータベースの名前。

source_tb

ソーステーブルの名前です。

source_part

アーカイブするソーステーブルのパーティション。 複数のパーティションはコンマ (,) で区切ります。

archive_db

ターゲットテーブルの名前です。

archive_table

宛先テーブルの名前。

archive_table_file_filter

ターゲットテーブルのファイルフィルターを作成するかどうかを指定します。

注意事項

  • ターゲットOSSテーブルが存在しない場合、システムは自動的にOSSテーブルを作成し、archive_table_file_filterパラメーターで指定された列にOSSファイルフィルターを作成します。 ファイルフィルターにより、クエリのパフォーマンスが向上します。 プライマリキーとパーティションキーは、クエリを高速化するためにarchive_table_file_filterパラメーターに自動的に追加されます。

  • ターゲットOSSテーブルが存在する場合、ソーステーブルとターゲットテーブルの列名とタイプが同じかどうかがチェックされます。 列名と型が同じ場合、指定されたパーティションは宛先テーブルにアーカイブされます。 そうでない場合、アーカイブ操作は失敗します。 DDLステートメントを使用して、2つのテーブル間の定義の一貫性を確保できます。 詳細については、「コールドデータに対するDDL操作の実行」をご参照ください。 宛先テーブルに作成されたOSSファイルフィルターの定義がcall dbms_dlm.archive_partition2tableテーブルと異なる場合、宛先テーブルのOSSファイルフィルターが優先されます。

  • ターゲットOSSテーブルが存在しないが、ターゲットOSSテーブルと同じ名前のファイルがOSS上に存在する場合、アーカイブ操作を実行すると、次のようなエラーメッセージが返されます。サンプルメッセージ:

    mysql> CALL dbms_dlm.archive_partition2table('test', 'sales', 'p0', 'test', 'sales_history', 'id');
    ERROR 8181 (HY000): [Data Lifecycle Management] errmsg: Target file for archived table exists on oss, please remove it first, or use flag 'FORCE' to overwrite on existing files.

    残りのファイルが不要になった場合は、ストレージ手順を使用してOSSからファイルを削除し、データアーカイブを実行できます。

    -- Delete OSS data.
    mysql> CALL dbms_oss.delete_table_file('test', 'sales_history');
    
    Query OK, 0 rows affected (0.76 sec)
    
    -- Perform data archiving.
    mysql> CALL dbms_dlm.archive_partition2table('test', 'sales', 'p0', 'test', 'sales_history', 'id');
    
    Query OK, 0 rows affected (4.24 sec)
  • ターゲットOSSテーブルは、CSV形式でのみコールドデータをアーカイブできます。

  • アーカイブ済みパーティションテーブルには、少なくとも1つのInnoDBパーティションが含まれている必要があります。

  • アーカイブされたパーティションデータは1つのテーブルにまとめられます。 パーティションテーブルにデータを復元する場合は、INSERT SELECTステートメントを実行します。

  • 個々のレベル2パーティションをアーカイブすることはできません。 ただし、レベル1パーティションの下にあるすべてのレベル2パーティションをアーカイブできます。

  • 次の表に、OSS外部テーブルにアーカイブできるパーティションタイプを示します。

    レベル1パーティション

    レベル2パーティション

    OSS外部テーブルにアーカイブ可能

    HASH

    すべてのタイプ

    不可

    リスト

    すべてのタイプ

    RANGE

    すべてのタイプ

    キー

    すべてのタイプ

    リストデフォルト

    すべてのタイプ

    リストデフォルトハッシュなし

  1. InnoDBパーティションテーブルを作成し、テーブルにデータを挿入します。

    DROP TABLE IF EXISTS `sales`;
    -- Create a partitioned table.
    CREATE TABLE `sales` (
      `id` int DEFAULT NULL,
      `name` varchar(20) DEFAULT NULL,
      `order_time` datetime NOT NULL,
      primary key (order_time)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
    PARTITION BY RANGE  COLUMNS(order_time) INTERVAL(month, 1)
    (PARTITION p0 VALUES LESS THAN ('2022-01-01') ENGINE = InnoDB,
     PARTITION p1 VALUES LESS THAN ('2023-01-01 00:00:00') ENGINE = InnoDB,
     PARTITION p2 VALUES LESS THAN ('2024-01-01 00:00:00') ENGINE = InnoDB);
    
    DROP PROCEDURE IF EXISTS proc_batch_insert;
    delimiter $$
    CREATE PROCEDURE proc_batch_insert(IN begin INT, IN end INT, IN name VARCHAR(20))
      BEGIN
      SET @insert_stmt = concat('INSERT INTO ', name, ' VALUES(?  , ?, ?);');
      PREPARE stmt from @insert_stmt;
      WHILE begin <= end DO
        SET @ID1 = begin;
        SET @NAME = CONCAT(begin+begin*281313, '@stiven');
        SET @TIME = from_days(begin + 738368);
        EXECUTE stmt using @ID1, @NAME, @TIME;
        SET begin = begin + 1;
        END WHILE;
      END;
    $$
    delimiter ;
    
    CALL proc_batch_insert(1, 1000, 'sales');
  2. パーティションテーブルのp0パーティションをOSSテーブルにアーカイブします。

    1. salesテーブルのスキーマを表示するには、次の文を実行します。

      -- View the status of the InnoDB table.
      mysql> SHOW CREATE TABLE sales;

      サンプル結果:

      *************************** 1. row ***************************
             Table: sales
      Create Table: CREATE TABLE `sales` (
        `id` int(11) DEFAULT NULL,
        `name` varchar(20) DEFAULT NULL,
        `order_time` datetime NOT NULL,
        PRIMARY KEY (`order_time`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
      /*!50500 PARTITION BY RANGE  COLUMNS(order_time) */ /*!99990 800020200 INTERVAL(MONTH, 1) */
      /*!50500 (PARTITION p0 VALUES LESS THAN ('2022-01-01') ENGINE = InnoDB,
       PARTITION p1 VALUES LESS THAN ('2023-01-01 00:00:00') ENGINE = InnoDB,
       PARTITION p2 VALUES LESS THAN ('2024-01-01 00:00:00') ENGINE = InnoDB,
       PARTITION _p20240201000000 VALUES LESS THAN ('2024-02-01 00:00:00') ENGINE = InnoDB,
       PARTITION _p20240301000000 VALUES LESS THAN ('2024-03-01 00:00:00') ENGINE = InnoDB,
       PARTITION _p20240401000000 VALUES LESS THAN ('2024-04-01 00:00:00') ENGINE = InnoDB,
       PARTITION _p20240501000000 VALUES LESS THAN ('2024-05-01 00:00:00') ENGINE = InnoDB) */
      1 row in set (0.03 sec)
    2. 次のステートメントを実行して、P0パーティションをsales_historyという名前のOSSテーブルにアーカイブします。

      -- Archive the p0 partition to the sales_history OSS table and create an OSS file filter on the id column of the table.
      mysql> CALL dbms_dlm.archive_partition2table('test', 'sales', 'p0', 'test', 'sales_history', 'id');
      Query OK, 0 rows affected (1.86 sec)
    3. sales_historyテーブルのスキーマを表示するには、次のステートメントを実行します。

      SHOW CREATE TABLE sales_history;

      サンプル結果:

      *************************** 1. row ***************************;
             Table: sales_history
      Create Table: CREATE TABLE `sales_history` (
        `id` int(11) DEFAULT NULL,
        `name` varchar(20) DEFAULT NULL,
       `order_time` datetime DEFAULT NULL,
        PRIMARY KEY (`order_time`)
      ) /*!99990 800020213 STORAGE OSS */ ENGINE=CSV DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!99990 800020204 NULL_MARKER='NULL' */ /*!99990 800020223 OSS META=1 */ /*!99990 800020224 OSS_FILE_FILTER='id,order_time' */
      1 row in set (0.00 sec)
  3. OSSテーブルのデータを照会します。

    説明

    OSSファイルフィルター機能を有効にして、クエリを高速化できます。 詳細については、「OSSファイルフィルター機能を使用したコールドデータクエリの高速化」をご参照ください。

    mysql> explain SELECT * FROM sales_history WHERE id = 100;
    +----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------------------------------------------------------------------------------+
    | id | select_type | table         | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra                                                                         |
    +----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------------------------------------------------------------------------------+
    |  1 | SIMPLE      | sales_history | NULL       | ALL  | NULL          | NULL | NULL    | NULL |  152 |    10.00 | Using where; With pushed engine condition (`test`.`sales_history`.`id` = 100) |
    +----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------------------------------------------------------------------------------+
    1 row in set, 1 warning (0.00 sec)
    
    mysql> SELECT * FROM sales_history WHERE id = 100;
    +------+-----------------+---------------------+
    | id   | name            | order_time          |
    +------+-----------------+---------------------+
    |  100 | 28131400@stiven | 2021-11-09 00:00:00 |
    +------+-----------------+---------------------+
    1 row in set (0.24 sec)

パーティション分割テーブルのアーカイブ

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

  • クラスターは、リビジョンバージョンが8.0.2.2.14以降のPolarDB for MySQL 8.0.2を実行する必要があります。

パーティションテーブルのアーカイブは、パーティション内のデータをアーカイブするプロセスです。 アーカイブテーブルは、ハイブリッド分割テーブルです。 アーカイブされたパーティションのデータファイルはOSSに保存されます。 コールドデータがアーカイブされた後、元のパーティションテーブルが占有していたPolarStoreスペースが解放されます。

構文

  • コールドデータをCSV形式でアーカイブする:

    ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV;
  • コールドデータをORC形式でアーカイブする:

    ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = ORC;
説明

アーカイブするファイルと同じ名前のファイルがOSSに含まれている場合、システムはファイルがOSSに既に存在することを示すエラーメッセージを返します。 例:

Target file for archived table exists on oss.

上記のステートメントにFORCEキーワードを追加して、OSSの既存のファイルを上書きできます。 次の例は、CSV形式でコールドデータをアーカイブするステートメントにFORCEキーワードを追加する方法を示しています。

ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV FORCE;

Parameters

パラメーター

説明

table_name

OSSにアーカイブするテーブルの名前。

part_name

OSSにアーカイブされるパーティションの名前。

注意事項

  • コールドデータアーカイブ機能は、InnoDBストレージエンジンを使用するパーティションテーブルでのみサポートされます。

  • パーティションテーブルのデータをアーカイブするときは、InnoDBストレージエンジンに少なくとも1つのパーティションが残っていることを確認してください。 つまり、InnoDBストレージエンジンの最後のパーティションにデータをアーカイブすることはできません。

  • アーカイブテーブルは、ハイブリッド分割テーブルです。 ハイブリッドパーティションテーブルでDDLステートメントを実行することはできません。 詳細については、「ハイブリッドパーティションテーブルの作成」をご参照ください。

  • アーカイブされたパーティションのデータは変更できません。

  • コールドデータアーカイブは、パーティションテーブルのサブパーティションではサポートされていません。

  • リストの既定のハッシュパーティションテーブルの既定のパーティションにコールドデータをアーカイブすることはできません。

  • ハッシュまたはキーパーティションテーブルにコールドデータをアーカイブすることはできません。

  • パーティションテーブル全体のコールドデータをアーカイブすることはできません。

  • アーカイブするパーティション内のファイルと同じ名前のファイルがOSSに含まれている場合、実行は失敗し、次のようなエラーメッセージが返されます。

    Target file for archived table exists on oss.

    次のステートメントを実行して、OSSの既存のファイルを上書きします。ステートメントを実行する前に、環境に基づいてtable_namepart_nameを置き換える必要があります。

    ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV/ORC FORCE;

tテーブルのp1およびp2パーティションのデータをCSV形式でOSSにアーカイブします。

  1. データベースにtという名前のテーブルを作成します。 このテーブルはInnoDBストレージエンジンを使用します。

    CREATE TABLE t(a int, b int, c int, primary key(a))
    PARTITION BY RANGE(a)
    (PARTITION p1 values less than(100),
     PARTITION p2 values less than(200),
     PARTITION p3 values less than MAXVALUE
    );
  2. tテーブルにデータを挿入します。

    INSERT INTO t VALUES(1,1,1);
    INSERT INTO t VALUES(10,10,10);
    INSERT INTO t VALUES(100,100,100);
    INSERT INTO t VALUES(150,150,150);
    INSERT INTO t VALUES(200,200,200);
    INSERT INTO t VALUES(1000,1000,1000);
  3. 次のステートメントを実行して、p1およびp2パーティションのデータをOSSにアーカイブします。

    • CSV形式でデータをアーカイブする:

      ALTER TABLE t CHANGE PARTITION p1 ENGINE = csv;
      ALTER TABLE t CHANGE PARTITION p2 ENGINE = csv;
    • ORC形式でデータをアーカイブする:

      ALTER TABLE t CHANGE PARTITION p1 ENGINE = ORC;
      ALTER TABLE t CHANGE PARTITION p2 ENGINE = ORC;
  4. データがアーカイブされた後、PolarDBコンソールにログインしてOSSのアーカイブされたデータベースとテーブルを表示するか、SQL文を実行してハイブリッドパーティションテーブルのデータを表示します。

  • OSSでアーカイブされたデータベースとテーブルを表示するには、にログインします。PolarDBコンソール. 管理するクラスターを見つけ、[設定と管理] > [コールドデータアーカイブ] を選択して、OSSのアーカイブされたデータベースとテーブルに関する情報を表示します。

  • ハイブリッドパーティションテーブルのデータを表示する方法については、「ハイブリッドパーティションテーブルのデータの照会」をご参照ください。

OSSテーブルからPolarStoreへのデータのインポート

OSSにアーカイブされた共通テーブルからのデータのインポート

OSSテーブルにアーカイブされたコールドデータを変更する前に、ALTER ENGINEステートメントを実行して、OSSからPolarStoreにデータをインポートできます。 次に、インポートしたテーブルのデータを変更できます。 データがPolarStoreにインポートされると、OSSのコールドデータは削除されます。 データが変更された後、変更されたテーブルを再度OSSにアーカイブできます。

構文
ALTER TABLE table_name ENGINE[=]engine_name;
Parameters

パラメーター

説明

table_name

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

engine_name

インポートされたテーブルのエンジン。

注意事項

OSSテーブルは読み取り専用状態であり、INSERTUPDATE、またはDELETEステートメントを実行して変更することはできません。 アーカイブされたコールドデータを変更するには、OSSテーブルをInnoDBテーブルなどの読み書き可能なテーブルに変換します。 読み取り専用状態のOSSテーブルを変更すると、次のエラーメッセージが報告されます。

1036 - Table 't1' is read only

tという名前のOSSテーブルから、oss_testデータベースのPolarStoreにデータをインポートします。

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

tという名前のInnoDBテーブルのデータを変更します。 データが変更されたら、InnoDBエンジンのtテーブルを再度OSSにアーカイブします。 例:

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

または

ALTER TABLE t ENGINE = CSV STORAGE OSS;

OSSにアーカイブされたハイブリッドパーティションテーブルからのデータのインポート

OSSテーブルにアーカイブされているハイブリッドパーティションテーブルのデータを変更する前に、ALTERステートメントを実行してOSSからPolarStoreにデータをインポートできます。 データがPolarStoreにインポートされると、OSSのコールドデータは削除されます。

構文
ALTER TABLE table_name REORGANIZE PARTITION part_name INTO (partition_definition);
Parameters

パラメーター

説明

table_name

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

part_name

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

partition_definition

パーティション定義。 値は、インポートするパーティションのpartition_definition値と同じである必要があります。

OSSにアーカイブされているパーティションテーブルtp1パーティションからデータベースのPolarStoreにデータをインポートします。

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

OSSで対応するファイルを削除

説明
  • PolarDB for MySQLクラスターが次のいずれかのバージョンを実行している場合にのみ、OSSの対応するファイルを削除できます。

    • リビジョンバージョンが8.0.1.1.42以降のPolarDB for MySQL 8.0.1

    • リビジョンバージョンが8.0.2.2.23以降のPolarDB for MySQL 8.0.2

  • クラスターのリビジョンバージョンが上記の要件を満たしていない場合、OSSから対応するファイルを削除することはできません。 クラスターのリビジョンバージョンを更新することを推奨します。 詳細については、「マイナーバージョンの更新」をご参照ください。

OSSからテーブルを削除するか、OSSからPolarStoreにテーブルをインポートすると、OSS内の対応するファイルが保持されます。 データが不要になったことを確認した場合は、次のステートメントを使用して、OSSから対応するファイルを削除できます。

CALL dbms_oss.delete_table_file('database_name', 'table_name');

OSSファイルは非同期で削除されます。 したがって、ファイルを削除する前に、クラスター内のすべてのノードがOSSファイルに依存しなくなるまで待つ必要があります。 トラフィックが多いときに遅延が発生することに注意してください。 上記のステートメントが失敗し、「OSSファイルはまだ使用中です」というエラーメッセージが表示された場合は、しばらく待ってからステートメントを再実行してください。