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

MaxCompute:パーティション操作

最終更新日:Jan 22, 2026

MaxCompute では、既存のテーブルのパーティションに対して、パーティションの追加、削除、値の変更などの操作を実行できます。これらの操作は必要に応じて実行できます。

機能インデックス

以下は、パーティション操作のための MaxCompute SQL コマンドです。

操作

機能

ロール

エントリポイント

パーティションの追加

既存のパーティションテーブルに新しいパーティションを追加します。

テーブルに対する Alter 権限を持つユーザー

このトピックのコマンドは、次のプラットフォームで実行できます。

パーティションの最終更新日時の更新

パーティションテーブル内のパーティションの LastModifiedTime を更新します。

パーティション値の変更

パーティションテーブル内のパーティションの値を変更します。

パーティションのマージ

テーブルの複数のパーティションを単一のパーティションにマージします。この操作は、ソースパーティションのディメンション情報を削除し、データを宛先パーティションに移動します。

全パーティションのリスト表示

テーブル内のすべてのパーティションをリスト表示します。

パーティション情報の表示

パーティションテーブル内の特定のパーティションに関する情報を表示します。

パーティションの削除

既存のパーティションテーブルからパーティションを削除します。

パーティションからのデータクリア

指定されたパーティションからデータをクリアします。

適用範囲

  • データ型:TINYINT、SMALLINT、INT、BIGINT、CHAR、VARCHAR、STRING のデータ型のフィールドをパーティションキー列として使用できます。

  • 単一テーブルのパーティションレベル:テーブルは最大 6 レベルのパーティションを持つことができます。

  • 単一テーブルのパーティション数:テーブルは最大 60,000 個のパーティションを持つことができます。

  • 一度にクエリできる最大パーティション数:一度に最大 10,000 個のパーティションをクエリできます。

  • パーティションのマージ操作は、トランザクションパーティションテーブルではサポートされていません。

パーティションの追加

既存のパーティションテーブルに新しいパーティションを追加できます。

  • 制限事項

    • 複数レベルのパーティションテーブルの場合、パーティションを追加する際にすべてのパーティションキー列の値を指定する必要があります。

    • 追加できるのはパーティション値のみです。パーティションフィールドは追加できません。

  • コマンドフォーマット

    ALTER TABLE <table_name> ADD [IF NOT EXISTS] PARTITION <pt_spec> [PARTITION <pt_spec> PARTITION <pt_spec>...];
  • パラメーター

    パラメーター

    必須

    説明

    table_name

    はい

    パーティションを追加するパーティションテーブルの名前。

    IF NOT EXISTS

    いいえ

    IF NOT EXISTS を指定しない場合、同じ名前のパーティションが既に存在すると、文は失敗し、エラーが返されます。

    pt_spec

    はい

    追加するパーティション。フォーマットは (partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...) です。partition_col はパーティションフィールドで、partition_col_value はパーティション値です。パーティションフィールドでは大文字と小文字は区別されません。パーティション値では大文字と小文字が区別されます。

  • sale_detail という名前のパーティションテーブルを作成できます。テーブルの作成と削除の詳細については、「テーブルの作成と削除」をご参照ください。

    CREATE TABLE IF NOT EXISTS sale_detail(
     shop_name     STRING,
     customer_id   STRING,
     total_price   DOUBLE)
    PARTITIONED BY (sale_date STRING, region STRING);
    • 例 1: sale_detail テーブルに、2025 年 12 月の杭州リージョンの販売レコードを格納するためのパーティションを追加します。

      ALTER TABLE sale_detail ADD IF NOT EXISTS PARTITION (sale_date='202512', region='hangzhou');
    • 例 2: sale_detail テーブルに 2 つのパーティションを同時に追加して、2025 年 12 月の北京および上海リージョンの売上レコードを格納します。

      ALTER TABLE sale_detail ADD IF NOT EXISTS PARTITION (sale_date='202512', region='beijing') PARTITION (sale_date='202512', region='shanghai');
    • 例 3: sale_detail テーブルにパーティションを追加し、sale_date パーティションフィールドのみを指定します。この操作ではエラーが返されます。sale_dateregion の両方のパーティションフィールドを指定する必要があります。

      ALTER TABLE sale_detail ADD IF NOT EXISTS PARTITION (sale_date='20260111');
      
      -- 次のエラーメッセージが返されます:
      FAILED: ODPS-0130071:[1,58] Semantic analysis exception - provided partition spec does not match table partition spec
    • 例 4:Delta Lake テーブルにパーティションを追加します。

      -- Delta Lake テーブルを作成します。
      CREATE TABLE delta_table_test_par (
        pk BIGINT NOT NULL PRIMARY KEY, 
        val BIGINT NOT NULL) 
        PARTITIONED BY (dd STRING, hh STRING) 
        TBLPROPERTIES ("transactional"="true"); 
                   
      -- パーティションを追加します。           
      ALTER TABLE delta_table_test_par ADD PARTITION (dd='01', hh='01');
      
      CREATE TABLE delta_table_test_nonpar (
        pk BIGINT NOT NULL PRIMARY KEY, 
        val BIGINT NOT NULL) 
        TBLPROPERTIES ("transactional"="true");
    • 例 5:PK Delta Lake テーブルのプロパティを変更します。

      -- パーティション化されたプライマリーキー (PK) Delta Lake テーブルのバケット数を更新します。
      ALTER TABLE delta_table_test_par SET tblproperties("write.bucket.num"="64");
      
      -- パーティション化されていない PK Delta Lake テーブルのバケット数を更新します。更新後、既存データは新しいバケット数に基づいて再分散されます。
      ALTER TABLE delta_table_test_nonpar REWRITE tblproperties("write.bucket.num"="128");
      
      -- retain プロパティを更新します。このプロパティは、Time Travel を使用してデータの履歴状態をクエリできる時間範囲 (時間単位) を指定します。
      ALTER TABLE delta_table_test_par SET tblproperties("acid.data.retain.hours"="60");

パーティションの最終更新日時の更新

MaxCompute SQL は、パーティションテーブル内のパーティションの LastModifiedTime を更新する touch 操作を提供します。この操作は LastModifiedTime を現在時刻に変更します。これにより、MaxCompute はデータが変更されたと見なし、そのライフサイクルを再計算します。

  • 制限事項

    複数レベルのパーティションテーブルの場合、すべてのパーティションキー列の値を指定する必要があります。

  • コマンドフォーマット

    ALTER TABLE <table_name> touch PARTITION (<pt_spec>);
  • パラメーター

    パラメーター

    必須

    説明

    table_name

    はい

    パーティションを更新するパーティションテーブルの名前。テーブルが存在しない場合、エラーが返されます。

    pt_spec

    はい

    最終更新日時を更新するパーティションに関する情報。フォーマットは (partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...) です。partition_col はパーティションフィールドで、partition_col_value はパーティション値です。指定されたパーティションフィールドまたはパーティション値が存在しない場合、エラーが返されます。

  • -- sale_detail テーブルの sale_date='202512', region='shanghai' パーティションの LastModifiedTime を更新します。
    ALTER TABLE sale_detail touch PARTITION (sale_date='202512', region='shanghai');

パーティション値の変更

MaxCompute SQL は、パーティションテーブルのパーティション値を変更するために、rename 操作をサポートしています。

  • 制限事項

    • パーティションキー列の名前は変更できません。パーティションキー列に対応する値のみを変更できます。

    • 複数レベルのパーティションテーブルの場合、すべてのパーティションキー列の値を指定する必要があります。

  • コマンドフォーマット

    ALTER TABLE <table_name> PARTITION (<pt_spec>) rename TO PARTITION (<new_pt_spec>);
  • パラメーター

    パラメーター

    必須

    説明

    table_name

    はい

    パーティション値を変更するテーブルの名前。

    pt_spec

    はい

    値を変更するパーティションに関する情報。フォーマットは (partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...) です。partition_col はパーティションフィールドで、partition_col_value はパーティション値です。指定されたパーティションフィールドまたはパーティション値が存在しない場合、エラーが返されます。

    new_pt_spec

    はい

    変更後のパーティションに関する情報。フォーマットは (partition_col1 = new_partition_col_value1, partition_col2 = new_partition_col_value2, ...) です。partition_col はパーティションフィールドで、new_partition_col_value は新しいパーティション値です。

  • -- sale_detail テーブルのパーティション値を変更します。
    ALTER TABLE sale_detail PARTITION (sale_date = '201312', region = 'hangzhou') rename TO PARTITION (sale_date = '201310', region = 'beijing');

パーティションのマージ

MaxCompute SQL では、merge partition 操作を使用してパーティションテーブルのパーティションをマージできます。この操作は、同じテーブルの複数のパーティションを 1 つのパーティションにマージします。データは宛先パーティションに移動され、ソースパーティションは削除されます。

  • 制限事項

    • 外部テーブルはサポートされていません。クラスター化テーブルのパーティションをマージすると、結果のパーティションはクラスター化されなくなります。

    • 一度に最大 4,000 個のパーティションをマージできます。

  • コマンドフォーマット

    ALTER TABLE <table_name> MERGE [IF EXISTS] PARTITION (<predicate>) [, PARTITION(<predicate2>) ...] overwrite PARTITION (<fullpartitionSpec>) [purge];
  • パラメーター

    パラメーター

    必須

    説明

    table_name

    はい

    パーティションをマージするパーティションテーブルの名前。

    IF EXISTS

    いいえ

    IF EXISTS を指定せず、パーティションが存在しない場合、文は失敗し、エラーが返されます。IF EXISTS を指定しても、merge 条件を満たすパーティションがない場合、新しいパーティションは作成されません。実行中にソースデータが insertrename、または drop などの操作によって同時に変更された場合、IF EXISTS を指定していてもエラーが返されます。

    predicate

    はい

    マージされるパーティションが満たすべき条件。

    fullpartitionSpec

    はい

    宛先パーティションに関する情報。

    purge

    いいえ

    オプションのキーワード。このキーワードを指定すると、セッションディレクトリがクリアされます。デフォルトでは、過去 3 日以内のログがクリアされます。詳細については、「パージ」をご参照ください。

    • 例 1:指定された条件を満たすパーティションを宛先パーティションにマージします。

      -- パーティションテーブルのパーティションを表示します。
      SHOW PARTITIONS sale_detail;
      
      -- 結果のサンプル:
      sale_date=202512/region=beijing
      sale_date=202512/region=shanghai
      sale_date=202602/region=beijin
      
      --sale_date='201512' 条件を満たすすべてのパーティションを sale_date='202601', region='hangzhou' パーティションにマージします。
      ALTER TABLE sale_detail MERGE PARTITION(sale_date='202512') overwrite PARTITION(sale_date='202601', region='hangzhou');
      
      --マージ後のパーティションを表示します。
      SHOW PARTITIONS sale_detail;
      
      -- 結果のサンプル:
      sale_date=202601/region=hangzhou
      sale_date=202602/region=beijing                   
    • 例 2:複数の指定されたパーティションを宛先パーティションにマージします。

      -- 複数の指定されたパーティションをマージします。
      ALTER TABLE sale_detail MERGE IF EXISTS 
        PARTITION(sale_date='202601', region='hangzhou'), 
        PARTITION(sale_date='202602', region='beijing') 
        overwrite PARTITION(sale_date='202603', region='shanghai') purge;
      
      -- パーティションテーブルのパーティションを表示します。
      SHOW PARTITIONS sale_detail;
      
      -- 結果のサンプル:
      sale_date=202603/region=shanghai

全パーティションのリスト表示

テーブル内のすべてのパーティションをリスト表示できます。テーブルが存在しないか、パーティションテーブルでない場合、この操作はエラーを返します。

  • コマンドフォーマット

    SHOW PARTITIONS <table_name>; 
  • パラメーター

    table_name:必須。パーティションを表示するパーティションテーブルの名前。

  • -- sale_detail テーブルのすべてのパーティションをリスト表示します。
    SHOW PARTITIONS sale_detail;
    
    -- 結果のサンプル:
    sale_date=202603/region=shanghai

パーティション情報の表示

パーティションテーブル内の特定のパーティションに関する情報を表示できます。

  • コマンドフォーマット

    DESC <table_name> PARTITION (<pt_spec>);
  • パラメーター

    パラメーター

    必須

    説明

    table_name

    はい

    パーティション情報を表示するパーティションテーブルの名前。

    pt_spec

    はい

    表示するパーティションに関する情報。フォーマットは partition_col1=col1_value1, partition_col2=col2_value1... です。複数レベルのパーティションテーブルの場合、すべてのパーティション値を指定する必要があります。

  • -- sale_detail パーティションテーブルのパーティションの情報をクエリします。
    DESC sale_detail PARTITION (sale_date='202603',region='shanghai');
    -- 次の結果が返されます:
    +------------------------------------------------------------------------------------+
    | PartitionSize: 0                                                                   |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2026-01-13 11:35:49                                      |
    | LastDDLTime:              2026-01-13 11:35:49                                      |
    | LastModifiedTime:         2026-01-13 11:35:49                                      |
    +------------------------------------------------------------------------------------+
    
    OK

パーティションの削除

既存のパーティションテーブルからパーティションを削除できます。

MaxCompute では、フィルター条件に基づいてパーティションを削除できます。特定のルールを満たす複数のパーティションを一度に削除するには、式をフィルター条件として指定して、バッチ操作でパーティションを照合して削除できます。

  • 制限事項

    • 各パーティションフィルター句は、1 つのパーティションキー列にのみアクセスできます。

    • 式で使用される関数は、組み込みスカラー関数である必要があります。

  • 注意事項

    • パーティションを削除すると、MaxCompute プロジェクトのストレージ使用量が減少します。

    • MaxCompute のライフサイクル機能を使用して、古いパーティションを自動的に削除できます。

  • コマンドフォーマット

    • フィルター条件なし

      -- 一度に 1 つのパーティションを削除します。
      ALTER TABLE <table_name> DROP [IF EXISTS] PARTITION <pt_spec>;
      -- 一度に複数のパーティションを削除します。
      ALTER TABLE <table_name> DROP [IF EXISTS] PARTITION <pt_spec>,PARTITION <pt_spec>[,PARTITION <pt_spec>....];
    • フィルター条件

      ALTER TABLE <table_name> DROP [IF EXISTS] PARTITION <partition_filtercondition>;
  • パラメーター

    パラメーター

    必須

    説明

    table_name

    はい

    パーティションを削除するパーティションテーブルの名前。

    IF EXISTS

    いいえ

    IF EXISTS を指定せず、パーティションが存在しない場合、エラーが返されます。

    pt_spec

    はい

    削除するパーティション。フォーマットは (partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...) です。partition_col はパーティションフィールドで、partition_col_value はパーティション値です。パーティションフィールドでは大文字と小文字は区別されません。パーティション値では大文字と小文字が区別されます。

    partition_filtercondition

    いいえ

    フィルター条件を指定する場合に必須です。パーティションフィルター条件。このパラメーターでは大文字と小文字は区別されません。フォーマットは次のとおりです。

    partition_filtercondition
        : PARTITION (<partition_col> <relational_operators> <partition_col_value>)
        | PARTITION (scalar(<partition_col>) <relational_operators> <partition_col_value>)
        | PARTITION (<partition_filtercondition1> AND|OR <partition_filtercondition2>)
        | PARTITION (NOT <partition_filtercondition>)
        | PARTITION (<partition_filtercondition1>)[,PARTITION (<partition_filtercondition2>), ...]

    詳細は次のとおりです。

    • partition_col:パーティション名。

    • relational_operators:関係演算子。詳細については、「オペレーター」をご参照ください。

    • partition_col_value:パーティションキー列の値と比較される値または正規表現。値のデータ型は、パーティションキー列のデータ型と同じである必要があります。

    • scalar():スカラー関数。スカラー関数は、入力値に基づいてスカラー値を生成します。パーティションキー列 (partition_col) の値が処理され、指定された relational_operators に基づいて partition_col_value と比較されます。

    • パーティションフィルター条件は、論理演算子 NOT、AND、OR をサポートしています。NOT フィルター条件句を使用して、フィルタリングルールの補集合を取得できます。また、AND または OR 演算子を使用して複数のフィルター条件句を組み合わせて、全体的なパーティションマッチングルールを形成することもできます。

    • 複数のパーティションフィルター句を指定できます。複数のパーティションフィルター句がカンマ (,) で区切られている場合、句は OR 論理演算子を使用して結合され、全体的なパーティションマッチングルールを形成します。

    • フィルター条件なし

      -- sale_detail テーブルから 2026年3月の上海リージョンの販売レコードを含むパーティションを削除します。
      ALTER TABLE sale_detail DROP IF EXISTS PARTITION(sale_date='202603',region='shanghai'); 
      -- sale_detail テーブルから 2024年12月の杭州リージョンと上海リージョンの販売レコードを含む 2 つのパーティションを削除します。
      ALTER TABLE sale_detail DROP IF EXISTS PARTITION(sale_date='202412',region='hangzhou'),PARTITION(sale_date='202412',region='shanghai');
    • フィルター基準の指定

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

        -- パーティションテーブルを作成します。
        CREATE TABLE IF NOT EXISTS sale_detail_del(
        shop_name     STRING,
        customer_id   STRING,
        total_price   DOUBLE)
        partitioned BY (sale_date STRING);
        
        -- パーティションを追加します。
        ALTER TABLE sale_detail_del ADD if NOT EXISTS
        PARTITION (sale_date= '201910') PARTITION (sale_date= '201911') PARTITION (sale_date= '201912')
        PARTITION (sale_date= '202001') PARTITION (sale_date= '202002') PARTITION (sale_date= '202003')
        PARTITION (sale_date= '202004') PARTITION (sale_date= '202005') PARTITION (sale_date= '202006')
        PARTITION (sale_date= '202007');
        
        -- パーティションをバッチで削除します。
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(sale_date < '201911');
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(sale_date >= '202007');
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(sale_date LIKE '20191%');
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(sale_date IN ('202002','202004','202006'));
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(sale_date BETWEEN '202001' AND '202007');
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(substr(sale_date, 1, 4) = '2020');
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(sale_date < '201912' OR sale_date >= '202006');
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(sale_date > '201912' AND sale_date <= '202004');
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(NOT sale_date > '202004');
        
        -- 複数のパーティションフィルター式がサポートされています。式は OR 論理演算子を使用して結合されます。
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(sale_date < '201911'), PARTITION(sale_date >= '202007');
        
        -- 他のフォーマットでパーティションを追加します。
        ALTER TABLE sale_detail_del ADD IF NOT EXISTS
        PARTITION (sale_date= '2019-10-05') 
        PARTITION (sale_date= '2019-10-06') 
        PARTITION (sale_date= '2019-10-07');
        
        -- 正規表現を使用してパーティションを照合し、バッチでパーティションを削除します。
        ALTER TABLE sale_detail_del DROP IF EXISTS PARTITION(sale_date RLIKE '2019-\\d+-\\d+');
      • 複数レベルのパーティションテーブル

        -- 複数レベルのパーティションテーブルを作成します。
        CREATE TABLE IF NOT EXISTS region_sale_detail(
        shop_name     STRING,
        customer_id   STRING,
        total_price   DOUBLE)
        partitioned BY (sale_date STRING , region STRING );
        
        -- パーティションを追加します。
        ALTER TABLE region_sale_detail ADD IF NOT EXISTS
        PARTITION (sale_date= '201910',region = 'shanghai') PARTITION (sale_date= '201911',region = 'shanghai')
        PARTITION (sale_date= '201912',region = 'shanghai') PARTITION (sale_date= '202001',region = 'shanghai')
        PARTITION (sale_date= '202002',region = 'shanghai') PARTITION (sale_date= '201910',region = 'beijing')
        PARTITION (sale_date= '201911',region = 'beijing') PARTITION (sale_date= '201912',region = 'beijing')
        PARTITION (sale_date= '202001',region = 'beijing') PARTITION (sale_date= '202002',region = 'beijing');
        
        -- 次の文を実行して、複数レベルのパーティションテーブルからバッチでパーティションを削除します。2 つの照合条件は OR 論理演算子を使用して結合されます。sale_date が 201911 未満または region が beijing のすべてのパーティションが削除されます。
        ALTER TABLE region_sale_detail DROP IF EXISTS PARTITION(sale_date < '201911'),PARTITION(region = 'beijing');
        
        -- sale_date が 201911 未満で、region が beijing のパーティションを削除するには、次のメソッドを使用します。
        ALTER TABLE region_sale_detail DROP IF EXISTS PARTITION(sale_date < '201911', region = 'beijing');

        複数レベルのパーティションテーブルからバッチ操作でパーティションを削除する場合、partition フィルター句で複数のパーティションキー列に基づいて複合条件を作成してパーティションを照合することはできません。次の文はエラーメッセージを返します:FAILED: ODPS-0130071:[1,82] Semantic analysis exception - invalid column reference region, partition expression must have one and only one column reference

        -- パーティションフィルター句は、1 つのパーティションキー列にのみアクセスできます。次の文はエラーを返します。
        ALTER TABLE region_sale_detail DROP IF EXISTS PARTITION(sale_date < '201911' AND region = 'beijing');

パーティションからのデータクリア

パーティションテーブルの指定されたパーティションからデータをクリアできます。

MaxCompute では、フィルター条件に基づいてパーティションからデータをクリアできます。特定のルールを満たす 1 つ以上のパーティションから一度にデータをクリアするには、式をフィルター条件として指定してパーティションを照合し、バッチ操作でデータをクリアできます。

  • コマンドフォーマット

    • フィルター条件なし

      TRUNCATE TABLE <table_name> PARTITION <pt_spec>[, PARTITION <pt_spec>....];
    • フィルター基準の指定

      TRUNCATE TABLE <table_name> PARTITION <partition_filtercondition>;
  • パラメーター

    パラメーター

    必須

    説明

    table_name

    はい

    パーティションデータをクリアするパーティションテーブルの名前。

    pt_spec

    はい

    データをクリアするパーティション。フォーマットは (partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...) です。partition_col はパーティションフィールドで、partition_col_value はパーティション値です。パーティションフィールドでは大文字と小文字は区別されません。パーティション値では大文字と小文字が区別されます。

    partition_filtercondition

    いいえ

    フィルター条件を指定する場合に必須です。パーティションフィルター条件。このパラメーターでは大文字と小文字は区別されません。フォーマットは次のとおりです。

    partition_filtercondition
        : PARTITION (<partition_col> <relational_operators> <partition_col_value>)
        | PARTITION (scalar(<partition_col>) <relational_operators> <partition_col_value>)
        | PARTITION (<partition_filtercondition1> AND|OR <partition_filtercondition2>)
        | PARTITION (NOT <partition_filtercondition>)
        | PARTITION (<partition_filtercondition1>)[,PARTITION (<partition_filtercondition2>), ...]

    詳細は次のとおりです。

    • partition_col:パーティション名。

    • relational_operators:関係演算子。詳細については、「オペレーター」をご参照ください。

    • partition_col_value:パーティションキー列の値と比較される値または正規表現。値のデータ型は、パーティションキー列のデータ型と同じである必要があります。

    • scalar():スカラー関数。スカラー関数は、入力値に基づいてスカラー値を生成します。パーティションキー列 (partition_col) の値が処理され、指定された relational_operators に基づいて partition_col_value と比較されます。

    • パーティションフィルター条件は、論理演算子 NOT、AND、OR をサポートしています。NOT フィルター条件句を使用して、フィルタリングルールの補集合を取得できます。また、AND または OR 演算子を使用して複数のフィルター条件句を組み合わせて、全体的なパーティションマッチングルールを形成することもできます。

    • 複数のパーティションフィルター句を指定できます。複数のパーティションフィルター句がカンマ (,) で区切られている場合、句は OR 論理演算子を使用して結合され、全体的なパーティションマッチングルールを形成します。

    • フィルター条件なし

      -- sale_detail テーブルから 2026年1月の杭州リージョンの販売レコードを含むパーティションをクリアします。
      TRUNCATE TABLE sale_detail PARTITION(sale_date='202601',region='hangzhou');
      
      -- sale_detail テーブルから 2025年12月の杭州リージョンと上海リージョンの販売レコードを含む 2 つのパーティションをクリアします。
      TRUNCATE TABLE sale_detail PARTITION(sale_date='202512',region='hangzhou'),  PARTITION(sale_date='202512',region='shanghai');
    • フィルター基準の指定

      -- sale_detail テーブルから sale_date が 2025 で始まる杭州リージョンの販売レコードを含む複数のパーティションをクリアします。
      TRUNCATE TABLE sale_detail PARTITION(sale_date LIKE '2025%' AND region='hangzhou');
    • パーティション化されていない Delta Lake テーブルをクリアします。

      -- パーティション化されていないテーブルをクリアします。テーブルはパーティション化されていないテーブルである必要があります。そうでない場合、エラーが返されます。
      TRUNCATE TABLE non_par_table; 

関連ドキュメント

テーブル操作コマンドの詳細については、次のトピックをご参照ください。