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

MaxCompute:テーブル操作

最終更新日:Dec 10, 2024

MaxComputeでは、テーブルを使用してデータを保存します。 データウェアハウスを開発、分析、および保守するときは、テーブルデータを処理する必要があります。 このトピックでは、テーブルの作成や削除、テーブル情報の表示など、一般的なテーブル操作について説明します。

次の表に、テーブルの操作に使用される一般的なステートメントを示します。 テーブル操作の詳細については、「テーブル操作」をご参照ください。

API 操作

説明

承認済みユーザー

操作プラットフォーム

テーブルの作成

非パーティションテーブルまたはパーティションテーブルを作成します。

プロジェクトに対するCreateTable権限を持つユーザー

次のプラットフォームを使用して操作を実行できます。

テーブルの所有者の変更

テーブルの所有者を変更します。

プロジェクト所有者

Drop a table

非パーティションテーブルまたはパーティションテーブルを削除します。

テーブルのドロップ権限を持つユーザー

テーブルまたはビューに関する情報の表示

MaxComputeビュー、内部テーブル、または外部テーブルに関する情報を表示します。

テーブルのメタデータを読み取るためのDescribe権限を持つユーザー

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

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

テーブルのメタデータを読み取るためのDescribe権限を持つユーザー

プロジェクト内のテーブルとビューの表示

プロジェクト内のすべてのテーブルとビュー、または正規表現などの特定のルールを満たすテーブルとビューを表示します。

プロジェクト内のオブジェクトに対するList権限を持つユーザー

パーティションの表示

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

プロジェクト内のオブジェクトに対するList権限を持つユーザー

パーティションと列の操作の詳細については、「パーティションと列の操作」をご参照ください。

テーブルのライフサイクルに関する操作の詳細については、「ライフサイクル管理操作」をご参照ください。

テーブルの作成

非パーティションテーブル、パーティションテーブル、外部テーブル、またはクラスタテーブルを作成します。

  • 制限事項

    • パーティションテーブルは、最大6レベルのパーティションを持つことができます。 たとえば、テーブルがパーティションキー列として日付列を使用している場合、パーティションの6つのレベルは年 /月 /週 /日 /時間 /分です。

    • デフォルトでは、テーブルに最大60,000個のパーティションを設定できます。 ビジネス要件に基づいて、テーブル内のパーティションの最大数を調整できます。

    テーブルの制限の詳細については、「MaxCompute SQLの制限」をご参照ください。

  • 構文

    -- Create a table. 
     create [external] table [if not exists] <table_name>
     [primary key (<pk_col_name>, <pk_col_name2>),(<col_name> <data_type> [not null] [default <default_value>] [comment <col_comment>], ...)]
     [comment <table_comment>]
     [partitioned by (<col_name> <data_type> [comment <col_comment>], ...)]
     
    -- Configure the shuffle and sort properties of a clustered table that you want to create. 
     [clustered by | range clustered by (<col_name> [, <col_name>, ...]) [sorted by (<col_name> [asc | desc] [, <col_name> [asc | desc] ...])] into <number_of_buckets> buckets] 
    
    -- Used only for external tables. 
     [stored by StorageHandler] 
     -- Used only for external tables. 
     [with serdeproperties (options)] 
     -- Used only for external tables. 
     [location <osslocation>] 
    
    -- Set the table to a transactional table. You can later modify or delete the data of the transactional table. Transactional tables have specific limits. Create a transactional table based on your business requirements. 
     [tblproperties("transactional"="true")]
    
    -- Set the table to a Delta table. You can perform the UPSERT operation to write data to the table and perform incremental queries and time travel queries on the table based on the primary key.
     [tblproperties ("transactional"="true" [, "write.bucket.num" = "N", "acid.data.retain.hours"="hours"...])] [lifecycle <days>]
    ;
    
    -- Create a table based on an existing table and replicate data from the existing table to the new table. Partition properties are not replicated. You can execute the CREATE TABLE statement to create a table based on an external table or an existing table of an external project that is used to implement the data lakehouse solution. 
    create table [if not exists] <table_name> [lifecycle <days>] as <select_statement>;
    
    -- Create a table based on an existing table and replicate the schema of the existing table. You can execute the CREATE TABLE statement to create a table based on an external table or an existing table of an external project that is used to implement the data lakehouse solution. 
    create table [if not exists] <table_name> like <existing_table_name> [lifecycle <days>];
  • Parameters

    • external: オプション。 このパラメーターは、作成するテーブルが外部テーブルであることを指定します。

    • if not exists: オプション。 既存のテーブルの名前を使用してテーブルを作成し、If not existsパラメーターを指定しない場合、エラーが返されます。 既存のテーブルの名前を使用してテーブルを作成し、If not existsパラメーターを指定すると、既存のテーブルのスキーマが作成するテーブルのスキーマと異なる場合でも、成功メッセージが返されます。 既存のテーブルの名前を使用してテーブルを作成する場合、テーブルは作成されず、既存のテーブルのメタデータは変更されません。

    • table_name: 必須です。 作成するテーブルの名前を指定します。 名前は1〜128バイトで、英数字、アンダースコア (_) を使用できます。 名前は文字で始める必要があり、特殊文字を含めることはできません。 名前は大文字と小文字を区別しません。 このパラメーターの値が要件を満たさない場合、エラーが返されます。

    • primary key: オプション。 テーブルの主キー。 1つ以上の列を主キーとして指定できます。 これは、これらの列の組み合わせがテーブル内で一意でなければならないことを示します。 プライマリキーの標準SQL構文に準拠する必要があります。 主キーとして定義されている列は、nullに設定する必要があり、変更することはできません。

    • col_name: オプション。 テーブル列の名前。 名前は1〜128バイトで、英数字、アンダースコア (_) を使用できます。 名前は文字で始める必要があり、特殊文字を含めることはできません。 名前は大文字と小文字を区別しません。 このパラメーターの値が要件を満たさない場合、エラーが返されます。

    • col_comment: オプション。 列のコメント。 コメントは、長さが1〜1,024バイトの有効な文字列である必要があります。 このパラメーターの値が要件を満たさない場合、エラーが返されます。

    • data_type: オプション。 列のデータ型。 BIGINT、DOUBLE、BOOLEAN、DATETIME、DECIMAL、およびSTRINGのデータ型がサポートされています。 データ型の詳細については、「data type editions」をご参照ください。

    • not null: オプション。 このパラメーターを列に設定する場合、列の値をNULLにすることはできません。 パラメーターを変更する方法の詳細については、「テーブル内のパーティション以外のキー列のnull非対応プロパティの変更」をご参照ください。

    • default_value: オプション。 指定された列のデフォルト値。 INSERT操作で列が指定されていない場合、その列にはデフォルト値が使用されます。

      説明

      指定された列のデフォルト値は、getdate()now() などの関数にすることはできません。

    • table_comment: オプション。 テーブルのコメント。 コメントは、長さが1〜1,024バイトの有効な文字列である必要があります。 このパラメーターの値が要件を満たさない場合、エラーが返されます。

    • lifecycle: オプション。 テーブルのライフサイクル。 値は正の整数である必要があります。 単位:日

      • 非パーティションテーブル: 非パーティションテーブルのデータが、最後のデータ更新後daysで指定された日数の間変更されない場合、MaxComputeはDROP tableなどのステートメントを実行してテーブルを再利用します。

      • パーティションテーブル: MaxComputeは、LastModifiedTimeの値に基づいてパーティションを再利用するかどうかを決定します。 非パーティションテーブルとは異なり、パーティションテーブルは、すべてのパーティションが再利用されても削除されません。 テーブルにはライフサイクルを設定できますが、パーティションには設定できません。

  • パーティションテーブルのパラメーター

    partitioned by (<col_name> <data_type> [comment <col_comment>]] 、...: オプション。 パーティションテーブルのパーティションフィールド。

    • col_name: パーティションキー列の名前。 名前は1〜128バイトで、英数字、アンダースコア (_) を使用できます。 名前は文字で始める必要があり、特殊文字を含めることはできません。 名前は大文字と小文字を区別しません。 このパラメーターの値が要件を満たさない場合、エラーが返されます。

    • data_type: パーティションキー列のデータ型。 MaxCompute V1.0データ型エディションでは、パーティションキー列はSTRING型である必要があります。 MaxCompute V2.0データ型エディションでは、パーティションキー列は、TINYINT、SMALLINT、INT、BIGINT、VARCHAR、またはSTRING型にすることができます。 データ型の詳細については、「data type editions」をご参照ください。 パーティションフィールドを使用してテーブルをパーティション分割する場合、パーティションの追加、パーティションデータの更新、またはパーティションデータの読み取りを行うときに、完全なテーブルスキャンは必要ありません。 これにより、データ処理の効率が向上する。

    • col_comment: パーティションキー列のコメント。 コメントは、長さが1〜1,024バイトの有効な文字列である必要があります。 このパラメーターの値が要件を満たさない場合、エラーが返されます。

    説明

    パーティションキー列の値には、漢字などの2バイト文字を含めることはできません。 パーティションキー列の値は文字で始まる必要があり、文字、数字、およびサポートされている特殊文字を含めることができます。 長さは1〜255バイトでなければなりません。 次の特殊文字がサポートされています: スペース、コロン (:) 、アンダースコア (_) 、ドル記号 ($) 、数字記号 (#) 、ピリオド (.) 、感嘆符 (!) 、およびアット記号 (@) 。 エスケープ文字 \t\n/など、他の文字の動作は定義されていません。

  • クラスタ化テーブルのパラメーター

    clustered by | range clustered by (<col_name> [, <col_name>, ...]) [sorted by (<col_name> [asc | desc] [, <col_name> [asc | desc] ...])] into <number_of_buckets> buckets: オプションです。 作成するクラスター化テーブルのシャッフルプロパティとソートプロパティ。

    クラスタ化テーブルは、ハッシュクラスタ化テーブルと範囲クラスタ化テーブルに分類される。

    ハッシュクラスタ化テーブル

    • CLUSTERED BY: ハッシュキー。 MaxComputeは、指定された列に対してハッシュ操作を実行し、ハッシュ値に基づいて各バケットにデータを分散します。 データのスキューやホットスポットを防ぎ、同時実行ステートメントをより適切に実行するために、CLUSTERED BYで、値の範囲が大きく、重複するキー値が少ない列を指定することをお勧めします。 さらに、JOIN操作を最適化するために、一般的に使用される結合キーまたは集約キーを選択することを推奨します。 結合および集約キーは、従来のデータベースの主キーと同様である。

    • SORTED BY: バケット内のフィールドをソートする方法を指定します。 パフォーマンスを向上させるために、SORTED BY句の構成をCLUSTERED BY句の構成と一致させることを推奨します。 SORTED BY句でフィールドを指定すると、MaxComputeは自動的にインデックスを生成します。これを使用してデータクエリを高速化できます。

    • number_of_buckets: ハッシュバケットの数。 このパラメーターは必須であり、このパラメーターの値はデータ量によって異なります。 デフォルトでは、MaxComputeは最大1,111リデューサーをサポートしています。 つまり、MaxComputeは最大1,111個のハッシュバケットをサポートしています。 set odps.stage.reducer.num =<Number of concurrent reducers>; コマンドを実行して、ハッシュバケットの最大数を増やします。 ハッシュバケットの最大数は4,000を超えることはできません。 ハッシュバケットの数が4,000を超えると、コンピューティングパフォーマンスに影響を与える可能性があります。

      最適なパフォーマンスを維持するために、ハッシュバケットの数を指定するときは、次のルールに注意することをお勧めします。

      • 各ハッシュバケットのサイズは約500 MBにします。 たとえば、パーティションサイズが500 GBの場合、1,000ハッシュバケットを指定することを推奨します。 このように、各ハッシュバケットのサイズは平均で500 MBです。 テーブルに大量のデータが含まれている場合、各ハッシュバケットのサイズを500 MBから2 GB〜3 GBの範囲のサイズに増やすことができます。 set odps.stage.reducer.num =<Number of concurrent reducers>; コマンドを実行して、ハッシュバケットの最大数を1111より大きい値に設定することもできます。

      • JOIN操作のパフォーマンスを最適化するために、ハッシュクラスタ化テーブルのシャッフルおよびソートプロパティを構成しないことをお勧めします。 テーブルのハッシュバケットの数は、他のテーブルのハッシュバケットの数の倍数でなければなりません。 例えば、一方のテーブルは256個のハッシュバケットを有し、他方のテーブルは512個のハッシュバケットを有する。 512、1024、2048、4096など、ハッシュバケットの数を2 nに設定することを推奨します。 これにより、MaxComputeはハッシュバケットを自動的に分割およびマージできます。 実行をより効率的にするために、シャッフルおよびソートプロパティを構成しないことをお勧めします。

    範囲クラスタ化テーブル

    • RANGE CLUSTERED BY: 範囲クラスタ化された列。 MaxComputeは、指定された列に対してバケット操作を実行し、バケットIDに基づいて各バケットにデータを配信します。

    • SORTED BY: バケット内のフィールドのシーケンス。 このパラメーターは、ハッシュクラスタ化テーブルに使用するのと同じ方法で使用できます。

    • number_of_buckets: ハッシュバケットの数。 ハッシュクラスタ化テーブルと比較して、データが均等に分散されている場合、範囲クラスタ化テーブルにはバケットの数に制限がありません。 範囲クラスタ化テーブル内のバケットの数を指定しない場合、MaxComputeはデータ量に基づいて最適な数を自動的に決定します。

    • JOINおよびAGGREGATE操作が範囲クラスター化テーブルで実行され、結合キーまたはグループキーが範囲クラスター化キーまたは範囲クラスター化キーのプレフィックスである場合、フラグを管理してシャッフルを無効にできます。 これにより、実行効率が向上する。 odps.optimizer.enable.range.partial.repartitioningをtrueまたはfalseに設定して、シャッフルを制御できます。 デフォルトでは、このパラメーターはfalseに設定されています。 デフォルト値は、シャッフルが無効であることを示します。

      説明
      • クラスタテーブルは、次の側面を最適化するのに役立ちます。

        • バケツ剪定

        • 集約

        • ストレージ

      • クラスタ化テーブルの制限

        • INSERT INTO文はサポートされていません。 クラスタ化されたテーブルにデータを追加するには、INSERT OVERWRITE文のみを実行できます。

        • Tunnelコマンドを使用してインポートされたデータが順番に並べられていません。 したがって、Tunnelコマンドを使用して範囲クラスタ化テーブルにデータをインポートすることはできません。

        • データのバックアップと復元機能はサポートされていません。

  • 外部テーブルのパラメータ

    • stored by StorageHandler: オプション。 外部テーブルのデータ形式に基づいて指定されたStorageHandler。

    • 付きserdeproperties (options): オプション。 外部テーブルの承認、圧縮、および文字解析に関連するパラメーター。

    • osslocation: オプション。 外部テーブルのデータが保存されているObject Storage Service (OSS) バケット。 詳細については、「OSS外部テーブルの作成」をご参照ください。

  • トランザクションテーブルとデルタテーブルのパラメーター

    トランザクションテーブルのパラメータ

    tblproperties("transactional"="true"): オプション。 テーブルをトランザクションテーブルに設定します。 トランザクションテーブルに対してUPDATEまたはDELETE操作を実行して、行単位でデータを更新または削除できます。 詳細については、「更新と削除」をご参照ください。

    トランザクションテーブルには次の制限があります。

    • MaxComputeでは、テーブルを作成するときにのみ、テーブルをトランザクションテーブルに設定できます。 ALTER TABLEステートメントを実行して既存のテーブルをトランザクションテーブルに変更すると、エラーが返されます。

      alter table not_txn_tbl set tblproperties("transactional"="true");
      -- The following error is returned: 
      FAILED: Catalog Service Failed, ErrorCode: 151, Error Message: Set transactional is not supported
    • クラスタ化テーブルまたは外部テーブルを作成する場合、トランザクションテーブルに設定することはできません。

    • トランザクションテーブルとMaxCompute内部テーブル、外部テーブル、またはクラスタ化テーブルを変換することはできません。

    • トランザクションテーブルファイルは自動的にマージできません。 トランザクションテーブルファイルを手動でマージする必要があります。 詳細については、UPDATE and DELETEのALTER TABLE COMPACTセクションをご参照ください。

    • MERGE PARTITION操作はサポートされていません。

    • 他のシステムのジョブからトランザクションテーブルへのアクセスには特定の制限が課される。 たとえば、ジョブがGraphジョブの場合、そのジョブを使用してトランザクションテーブルからデータを読み書きすることはできません。 ジョブがSparkジョブまたはPlatform for AI (PAI) ジョブの場合、ジョブを使用してトランザクションテーブルからデータを読み取ることのみができ、ジョブを使用してトランザクションテーブルにデータを書き込むことはできません。

    • トランザクションテーブルの重要なデータに対してUPDATEDELETE、またはINSERT OVERWRITEステートメントを実行する前に、SELECTおよびINSERTステートメントを実行して、データを他のテーブルにバックアップする必要があります。

    デルタテーブルのパラメータ

    デルタテーブルは、ほぼリアルタイムの読み取りと書き込み、増分読み取りと書き込み、増分ストレージ、リアルタイムの更新などの機能をサポートします。 プライマリキーを持つデルタテーブルのみがサポートされています。

    • 主キー:

      このパラメーターは、Deltaテーブルを作成するときに必要です。 複数の列を主キーとして指定できます。 プライマリキーの標準SQL構文に準拠する必要があります。 主キーとして定義されている列は、nullに設定する必要があり、変更することはできません。 Deltaテーブルにプライマリキーを指定すると、プライマリキーに基づいて重複データがテーブルから削除されます。 主キー列の一意性の制約は、単一のパーティションまたはパーティション分割されていないテーブルで有効です。

    • tblproperties ("transactional"="true" [, "write.bucket.num"="N", "acid.data.retain.hours"="hours"...])]

      • transactional: このパラメーターは、Deltaテーブルを作成するときに必要です。 このパラメーターをtrueに設定する必要があります。 真の値は、テーブルがMaxComputeアトミック性、一貫性、分離、耐久性 (ACID) テーブルのトランザクション特性に準拠していることを示し、スナップショットの分離をサポートするためにマルチバージョン同時実行制御 (MVCC) モデルが使用されています。

      • write.bucket.num: オプション。 デフォルト値: 16。 有効な値: (0,4096) 。 このパラメーターは、パーティションテーブルのパーティションまたは非パーティションテーブルのバケット数を示します。 このパラメーターには、データの書き込みに使用される同時ノードの数も指定します。 パーティションテーブルのこのパラメーターの値を変更できます。 新しいパーティションがパーティションテーブルに追加された場合、このパラメーターの設定はデフォルトで新しいパーティションに有効になります。 非パーティションテーブルのこのパラメーターの値は変更できません。 以下の点に注意する必要があります。

        • MaxComputeトンネルを使用してデータを書き込む場合、このパラメーターの値は、データの書き込みに使用される同時ノードの数を指定します。 パラメーターの設定はインポートトラフィックに影響し、トンネル内の同時ノードの最大数にも依存します。

        • SQL文を使用してデータを書き込む場合、このパラメーターの値には、データの書き込みに使用されるレデューサーの同時実行性を指定します。 この設定は、同時レデューサノードの最大数に依存します。

        • 各バケットに約500 MBのデータを書き込むことを推奨します。 たとえば、パーティションサイズが約500 GBの場合、1,000バケットを指定することを推奨します。 このように、各バケットのサイズは平均500 MBです。 テーブルに大量のデータが含まれている場合は、各バケットのサイズを500 MBから2 GB〜3 GBの範囲に増やすことができます。

      • acid.data.retain.hours: オプション。 デフォルト値: 72。 有効な値: [0,168] 。 タイムトラベル機能を使用して履歴データステータスを照会できる時間範囲。 単位:時間。

        • このパラメーターを0に設定すると、履歴データのステータスは保持されず、タイムトラベルはサポートされません。

        • このパラメーターで指定された範囲外の期間、履歴データのステータスが保持されている場合は、データを削除できます。 compactメソッドを使用して、データによって占有されている領域を再利用できます。

        • このパラメーターで指定された時間範囲より前に生成されたデータに対してタイムトラベルクエリを実行すると、エラーが返されます。 たとえば、このパラメーターの値が72時間で、72時間前の履歴データステータスを照会するためにタイムトラベル照会が実行された場合、エラーが返されます。

      • acid.incremental.query.out.of.time.range.enabled: オプション。 デフォルト値:false このパラメーターをtrueに設定すると、増分クエリで指定されたendTimestampプロパティの値が、テーブル内のデータの最大コミット時間より後の時点になることがあります。 endTimestampプロパティの値が現在の時刻より大きい場合、新しいデータがDeltaテーブルに挿入され、複数のクエリに対して異なる結果が得られる可能性があります。 テーブルのこのパラメーターの値を変更できます。

      • acid.write.precombine.field: オプションです。 このパラメーターを使用して、1つの列名のみを指定できます。 列名を指定した場合、システムは、このパラメーターと一緒にコミットされたSQL文を含むファイルの主キー列に基づいてデータ重複排除を実行します。 これにより、データの一意性と一貫性が保証されます。

        説明

        一度にコミットされるデータのサイズが128 MBを超えると、複数のファイルが生成されます。 このパラメーターは、複数ファイルのデータ重複排除には使用できません。

    • デルタテーブルの他の共通パラメータのパラメータ設定

      • lifecycle: テーブルのライフサイクル。 単位:日 テーブルのライフサイクルは、次の式acid.data.retain.hours/24の値以上である必要があります。 この式の値は、タイムトラベル機能を使用して履歴データステータスを照会できる日数を示します。 テーブルを作成すると、MaxComputeは指定したテーブルのライフサイクルをチェックします。 指定されたライフサイクルが要件を満たしていない場合、エラーが返されます。

      • その他のサポートされていない機能: DeltaテーブルはRANGE CLUSTER BYおよびCREATE TABLE ASステートメントをサポートしておらず、外部テーブルとして使用することはできません。

    • その他の制限:

      • MaxCompute SQLのみがDeltaテーブルに対して直接操作を実行できます

      • 既存の共通テーブルをデルタテーブルに変更することはできません。

      • Deltaテーブルの主キー列のスキーマを変更することはできません。

  • 既存のデータまたはテーブルに基づくテーブルの作成

    • create table [if not exists] <table_name> [lifecycle <days>] as <select_statement>; ステートメントを実行して、テーブルを作成し、テーブルにデータをレプリケートできます。

      • ただし、ソーステーブルのパーティションプロパティとライフサイクルプロパティは、作成されたテーブルにレプリケートされません。 ソーステーブルのパーティションキー列は、作成されたテーブルの共通列と見なされます。

      • lifecycleパラメーターを設定して、テーブルを再利用できます。 このステートメントを実行して、内部テーブルを作成し、外部テーブルのデータを内部テーブルにレプリケートすることもできます。

    • create table [if not exists] <table_name> like <existing_table_name> [lifecycle <days>]; 文を実行して、ソーステーブルと同じスキーマを持つテーブルを作成できます。

      • ただし、このステートメントを使用して作成されたテーブルは、テーブルデータやソーステーブルのライフサイクルプロパティを複製しません。

      • lifecycleパラメーターを設定して、テーブルを再利用できます。 このステートメントを実行して、既存の外部テーブルと同じスキーマを持つ内部テーブルを作成することもできます。

    • 例1: test1という名前のパーティション分割されていないテーブルを作成します。

      create table test1 (key STRING);
    • 例2: 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); 
    • 例3: sale_detail_ctas1という名前のテーブルを作成し、sale_detail_ctas1テーブルにデータをレプリケートしてから、sale_detail_ctas1テーブルのライフサイクルを設定します。

      SET odps.sql.allow.fullscan=true;
      create table sale_detail_ctas1 lifecycle 10 as select * from sale_detail;

      desc extended sale_detail_ctas1; コマンドを実行して、テーブルのスキーマやライフサイクルなどのテーブルの詳細を表示できます。

      sale_detailテーブルはパーティション分割テーブルですが、sale_detail_ctas1を使用して作成されたテーブルcreate table ... as select_statement ...パーティションのプロパティを複製しません。 ソーステーブルのパーティションキー列は、作成されるテーブルの共通列と見なされます。 sale_detail_ctas1テーブルは、5つの列を含むパーティション分割されていないテーブルです。

    • 例4: sale_detail_ctas2テーブルを作成し、SELECT句の列値として定数を使用します。

      SET odps.sql.allow.fullscan=true;
      -- Column names are specified. 
      create table sale_detail_ctas2
      as
      select shop_name, customer_id, total_price, '2013' as sale_date, 'China' as region
      from sale_detail;
      -- Column names are not specified. 
      create table sale_detail_ctas3
      as
      select shop_name, customer_id, total_price, '2013', 'China' 
      from sale_detail;
      説明

      SELECT句の列値として定数を使用する場合は、列名を指定することを推奨します。 この例では、sale_detail_ctas3テーブルの4番目と5番目の列の名前に、_c4_c5に似たサフィックスが含まれています。

    • 例5: sale_detailテーブルと同じスキーマを使用するsale_detail_likeという名前のテーブルを作成し、sale_detail_likeテーブルのライフサイクルを設定します。

      create table sale_detail_like like sale_detail lifecycle 10;

      desc extended sale_detail_like; コマンドを実行して、テーブルのスキーマやライフサイクルなどのテーブルの詳細を表示できます。

      sale_detail_likeテーブルのスキーマは、sale_detailテーブルのスキーマと同じです。 2つのテーブルには、ライフサイクルを除いて、列名、列コメント、テーブルコメントなどのプロパティが同じです。 ただし、sale_detailテーブルのデータはsale_detail_likeテーブルにレプリケートされません。

    • 例6: 外部テーブルmc_oss_extable_orcと同じスキーマを使用するmc_oss_extable_orc_likeという名前のテーブルを作成します。

      create table mc_oss_extable_orc_like like mc_oss_extable_orc;

      desc mc_oss_extable_orc_like; コマンドを実行して、テーブルのスキーマなどのテーブルの詳細を表示できます。

      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$****@***.aliyunid.com | Project: max_compute_7u************yoq              |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2022-08-11 11:10:47                                      |
      | LastDDLTime:              2022-08-11 11:10:47                                      |
      | LastModifiedTime:         2022-08-11 11:10:47                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field           | Type       | Label | Comment                                     |
      +------------------------------------------------------------------------------------+
      | id              | string     |       |                                             |
      | name            | string     |       |                                             |
      +------------------------------------------------------------------------------------+
    • 例7: 新しいデータ型を使用するtest_newtypeという名前のテーブルを作成します。

      set odps.sql.type.system.odps2=true;
      CREATE TABLE test_newtype (
          c1 TINYINT
          ,c2 SMALLINT
          ,c3 INT
          ,c4 BIGINT
          ,c5 FLOAT
          ,c6 DOUBLE
          ,c7 DECIMAL
          ,c8 BINARY
          ,c9 TIMESTAMP
          ,c10 ARRAY<MAP<BIGINT,BIGINT>>
          ,c11 MAP<STRING,ARRAY<BIGINT>>
          ,c12 STRUCT<s1:STRING,s2:BIGINT>
          ,c13 VARCHAR(20))
      LIFECYCLE 1
      ;
    • 例8: t1という名前のハッシュクラスタ化テーブルを作成する。 このテーブルはパーティション分割されていないテーブルです。

      create table t1 (a STRING, b STRING, c BIGINT) clustered by (c) sorted by (c) into 1024 buckets; 
    • 例9: t2という名前のハッシュクラスタ化テーブルを作成する。 このテーブルはパーティションテーブルです。

      create table t2 (a STRING, b STRING, c BIGINT) partitioned by (dt STRING) clustered by (c) sorted by (c) into 1024 buckets; 
    • 例10: t3という名前の範囲クラスタ化テーブルを作成する。 このテーブルはパーティション分割されていないテーブルです。

      create table t3 (a STRING, b STRING, c BIGINT) range clustered by (c) sorted by (c) into 1024 buckets;
    • 例11: t4という名前の範囲クラスタ化テーブルを作成します。 このテーブルはパーティションテーブルです。

      create table t4 (a STRING, b STRING, c BIGINT) partitioned by (dt STRING) range clustered by (c) sorted by (c); 
    • 例12: t5という名前のトランザクションテーブルを作成する。 このテーブルはパーティション分割されていないテーブルです。

      create table t5(id bigint) tblproperties("transactional"="true");
    • 例13: t6という名前のトランザクションテーブルを作成する。 このテーブルはパーティションテーブルです。

      create table if not exists t6(id bigint) partitioned by(ds string) tblproperties ("transactional"="true");
    • 例14: test_defaultという名前のパーティション分割されていないテーブルを作成し、パラメーターのデフォルト値を設定します。

      create table test_default
      (
      tinyint_name tinyint not NULL default 1Y,
      smallint_name SMALLINT not NULL DEFAULT 1S,
      int_name INT not NULL DEFAULT 1,
      bigint_name BIGINT not NULL DEFAULT 1,
      binary_name BINARY ,
      float_name FLOAT ,
      double_name DOUBLE not NULL DEFAULT 0.1,
      decimal_name DECIMAL(2, 1) not NULL DEFAULT 0.0BD,
      varchar_name VARCHAR(10) ,
      char_name CHAR(2) ,
      string_name STRING not NULL DEFAULT 'N',
      boolean_name BOOLEAN not NULL DEFAULT TRUE
      );
    • 例15: CREATE TABLE [存在しない場合] <table_name> [lifecycle <days>] as <select_statement>; ステートメントを実行して、内部テーブルを作成し、パーティション化された外部テーブルのデータを内部テーブルにレプリケートします。 パーティションのプロパティは内部テーブルにレプリケートされません。

      -- Query the external table of an external project that is used to implement the data lakehouse solution in MaxCompute.
      select * from hive_external2_1.myhive_0110;
      -- The following result is returned:
      a    b    c
      101    1    20230110
      102    2    20230110
      103    3    20230110
      
      -- Execute the CREATE TABLE AS statement to create an internal table.
      create table from_exetbl_as_par as select * from hive_external2_1.myhive_0110_par;
      
      -- Query the internal table.
      select * from from_exetbl_as_par;
      -- All data in the internal table is returned.
      a    b    c
      101    1    20230110
      102    2    20230110
      103    3    20230110
      
      
      -- Query the schema of the internal table.
      desc from_exetbl_as_par;
      -- The following result is returned:
      +------------------------------------------------------------------------------------+
      | Owner:                    ALIYUN$***********                                       |
      | Project:                  ***_*****_***                                            |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2023-01-10 15:16:33                                      |
      | LastDDLTime:              2023-01-10 15:16:33                                      |
      | LastModifiedTime:         2023-01-10 15:16:33                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 919                                                |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field           | Type       | Label | Comment                                     |
      +------------------------------------------------------------------------------------+
      | a               | string     |       |                                             |
      | b               | string     |       |                                             |
      | c               | string     |       |                                             |
      +------------------------------------------------------------------------------------+
    • 例16: CREATE TABLE [存在しない場合] <table_name> like <existing_table_name> [lifecycle <days>]; 文を実行して、内部テーブルを作成し、パーティション化された外部テーブルのスキーマを内部テーブルにレプリケートします。 パーティションのプロパティは内部テーブルにレプリケートされます。

      -- Query the external table of an external project that is used to implement the data lakehouse solution in MaxCompute.
      select * from hive_external2_1.myhive_0110_par;
      -- The following result is returned:
      a    b    c
      101    1    20230110
      102    2    20230110
      103    3    20230110
      
      -- Execute the CREATE TABLE LIKE statement to create an internal table.
      create table from_exetbl_like like hive_external2_1.myhive_0110_par;
      
      -- Query the internal table.
      select * from from_exetbl_like;
      -- Only the schema of the internal table is returned.
      a    b    c
      
      -- Query the schema of the internal table.
      desc from_exetbl_like;
      -- The following result is returned:
      +------------------------------------------------------------------------------------+
      | Owner:                    ALIYUN$************                                      |
      | Project:                  ***_*****_***                                            |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2023-01-10 15:09:47                                      |
      | LastDDLTime:              2023-01-10 15:09:47                                      |
      | LastModifiedTime:         2023-01-10 15:09:47                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field           | Type       | Label | Comment                                     |
      +------------------------------------------------------------------------------------+
      | a               | string     |       |                                             |
      | b               | string     |       |                                             |
      +------------------------------------------------------------------------------------+
      | Partition Columns:                                                                 |
      +------------------------------------------------------------------------------------+
      | c               | string     |                                                     |
      +------------------------------------------------------------------------------------+
    • 例17: デルタテーブルを作成します。

      create table mf_tt (pk bigint not null primary key, 
                          val bigint) 
                          tblproperties ("transactional"="true");
    • 例18: Deltaテーブルを作成し、メインテーブルのプロパティを設定します。

      create table mf_tt2 (pk bigint not null, 
                        pk2 bigint not null, 
                        val bigint, 
                        val2 bigint, primary key (pk, pk2)
                       ) 
                   tblproperties ("transactional"="true", 
                                  "write.bucket.num" = "64", 
                                  "acid.data.retain.hours"="120") 
                   lifecycle 7;

テーブルの所有者を変更する

テーブルの所有者を変更します。

重要

プロジェクト所有者またはSuper_Administratorロールを持つユーザーのみが、テーブル所有者を変更するコマンドを実行できます。

  • 構文

    alter table <table_name> changeowner to <new_owner>;
  • パラメーター

    • table_name: 必須です。 所有者を変更するテーブルの名前。

    • new_owner: 必須です。 テーブルの新しい所有者。 テーブルの所有者をRAMユーザーに変更する場合は、このパラメーターをRAM$<UID >:< ram_name> 形式の値に設定する必要があります。 UIDはAlibaba CloudアカウントのIDを示し、ram_nameはramユーザーの表示名を示します。

      説明

      テーブルの所有者をRAMユーザーに変更する場合は、テーブルが属するプロジェクトにRAMユーザーが追加されていることを確認します。

    • test1テーブルの所有者をALIYUN$xxx@aliyun.comに変更します。

      alter table test1 changeowner to 'ALIYUN$xxx@aliyun.com';
    • test1テーブルの所有者をRAM_testという名前のramユーザーに変更します。

      alter table test1 changeowner to 'RAM$13xxxxxxxxxxx:ram_test';

テーブルの削除

非パーティションテーブルまたはパーティションテーブルを削除します。

  • 注意事項

    • テーブルを削除する前に、テーブルを削除できることを確認してください。 作業は慎重に行ってください。 誤ってテーブルを削除した場合、プロジェクトのバックアップおよび復元機能が有効になっていて、プロジェクトに指定されたバックアップデータ保持期間内にテーブルが削除された場合、テーブルを復元できます。 バックアップと復元機能の詳細については、「バックアップと復元」をご参照ください。

    • テーブルを削除すると、MaxComputeプロジェクトに保存されているデータの量が減少します。

  • 構文

    drop table [if exists] <table_name>; 
  • パラメーター

    • if exists: オプション。 If existsパラメーターを指定せず、削除するテーブルが存在しない場合、エラーが返されます。 If existsパラメーターを指定すると、テーブルが存在するかどうかに関係なく、成功メッセージが返されます。

    • table_name: 必須です。 削除するテーブルの名前。

  • -- Drop the sale_detail table. A success message is returned regardless of whether the sale_detail table exists. 
    drop table if exists sale_detail; 

テーブルまたはビューに関する情報の表示

MaxCompute内部テーブル、ビュー、外部テーブル、クラスタ化テーブル、またはトランザクションテーブルに関する情報を表示します。 詳細なテーブル情報を表示する方法の詳細については、「SELECT構文」をご参照ください。

  • 構文

    -- View the information about a table or view. 
    desc <table_name|view_name> [partition (<pt_spec>)]; 
    -- View the information about an external table, a clustered table, or a transactional table. You can also execute this statement to view extended information about an internal table. 
    desc extended <table_name>; 
  • パラメーター

    • table_name: 必須です。 表示するテーブルの名前。

    • view_name: 必須です。 情報を表示するビューの名前。

    • pt_spec: オプション。 表示するパーティション分割テーブル内のパーティション。 このパラメーターの値は、(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...) 形式です。

    • extended: このパラメーターは、テーブルが外部テーブル、クラスタ化テーブル、またはトランザクションテーブルの場合に必要です。 このパラメーターは、テーブルに関する拡張情報を照会するために使用されます。 このパラメーターを使用して、内部テーブルの列にNULL値を含めることができるかどうかなど、内部テーブルに関する拡張情報を表示することもできます。

    • 例1: test1テーブルに関する情報を表示します。

      desc test1;

      次の応答が返されます。

      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$maoXXX@alibaba-inc.com | Project: $project_name                      |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2020-11-16 17:47:48                                      |
      | LastDDLTime:              2020-11-16 17:47:48                                      |
      | LastModifiedTime:         2020-11-16 17:47:48                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field           | Type       | Label | Comment                                     |
      +------------------------------------------------------------------------------------+
      | key             | string     |       |                                             |
      +------------------------------------------------------------------------------------+
    • 例2: sale_detailテーブルに関する情報を表示します。

      desc sale_detail;

      次の応答が返されます。

      +--------------------------------------------------------------------+
      | Owner: ALIYUN$maoXXX@alibaba-inc.com | Project: $project_name      |
      | TableComment:                                                      |
      +--------------------------------------------------------------------+
      | CreateTime:               2017-06-28 15:05:17                      |
      | LastDDLTime:              2017-06-28 15:05:17                      |
      | LastModifiedTime:         2017-06-28 15:05:17                      |
      +--------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                  |
      +--------------------------------------------------------------------+
      | Native Columns:                                                    |
      +--------------------------------------------------------------------+
      | Field           | Type       | Label | Comment                     |
      +--------------------------------------------------------------------+
      | shop_name       | string     |       |                             |
      | customer_id     | string     |       |                             |
      | total_price     | double     |       |                             |
      +--------------------------------------------------------------------+
      | Partition Columns:                                                 |    
      +--------------------------------------------------------------------+
      | sale_date       | string     |                                     |
      | region          | string     |                                     |
      +--------------------------------------------------------------------+
    • 例3: sale_detail_ctas1テーブルに関する詳細情報を表示します。

      desc extended sale_detail_ctas1;

      次の応答が返されます。

      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$maoXXX@alibaba-inc.com | Project: $project_name                      |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2021-07-07 15:29:53                                      |
      | LastDDLTime:              2021-07-07 15:29:53                                      |
      | LastModifiedTime:         2021-07-07 15:29:53                                      |
      | Lifecycle:                10                                                       |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
      +------------------------------------------------------------------------------------+
      | shop_name | string |       |               | true     | NULL         |              |
      | customer_id | string |       |               | true     | NULL         |              |
      | total_price | double |       |               | true     | NULL         |              |
      | sale_date | string |       |               | true     | NULL         |              |
      | region   | string |       |               | true     | NULL         |              |
      +------------------------------------------------------------------------------------+
      | Extended Info:                                                                     |
      +------------------------------------------------------------------------------------+
      | TableID:                  98cb8a38733c49eabed4735173818147                         |
      | IsArchived:               false                                                    |
      | PhysicalSize:             0                                                        |
      | FileNum:                  0                                                        |
      | StoredAs:                 AliOrc                                                   |
      | CompressionStrategy:      normal                                                   |
      +------------------------------------------------------------------------------------+

      sale_date列とregion列は共通列と見なされます。 パーティションキー列ではありません。

    • 例4: sale_detail_ctas2テーブルに関する情報を表示します。

      desc sale_detail_ctas2;

      次の応答が返されます。

      +--------------------------------------------------------------------+
      | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name       |
      | TableComment:                                                      |
      +--------------------------------------------------------------------+
      | CreateTime:               2017-06-28 15:42:17                      |
      | LastDDLTime:              2017-06-28 15:42:17                      |
      | LastModifiedTime:         2017-06-28 15:42:17                      |
      +--------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                  |
      +--------------------------------------------------------------------+
      | Native Columns:                                                    |
      +--------------------------------------------------------------------+
      | Field           | Type       | Label | Comment                     |
      +--------------------------------------------------------------------+
      | shop_name       | string     |       |                             |
      | customer_id     | string     |       |                             |
      | total_price     | double     |       |                             |
      | sale_date       | string     |       |                             |
      | region          | string     |       |                             |
      +--------------------------------------------------------------------+
    • 例5: sale_detail_likeテーブルの詳細を表示します。

      desc extended sale_detail_like;

      次の応答が返されます。

      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name                       |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2021-07-07 15:40:38                                      |
      | LastDDLTime:              2021-07-07 15:40:38                                      |
      | LastModifiedTime:         2021-07-07 15:40:38                                      |
      | Lifecycle:                10                                                       |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
      +------------------------------------------------------------------------------------+
      | shop_name | string |       |               | true     | NULL         |              |
      | customer_id | string |       |               | true     | NULL         |              |
      | total_price | double |       |               | true     | NULL         |              |
      +------------------------------------------------------------------------------------+
      | Partition Columns:                                                                 |
      +------------------------------------------------------------------------------------+
      | sale_date       | string     |                                                     |
      | region          | string     |                                                     |
      +------------------------------------------------------------------------------------+
      | Extended Info:                                                                     |
      +------------------------------------------------------------------------------------+
      | TableID:                  61782ff7713f426e9d6f91d5deeac99a                         |
      | IsArchived:               false                                                    |
      | PhysicalSize:             0                                                        |
      | FileNum:                  0                                                        |
      | StoredAs:                 AliOrc                                                   |
      | CompressionStrategy:      normal                                                   |
      +------------------------------------------------------------------------------------+

      ライフサイクル設定を除いて、sale_detail_likeテーブルのフィールドタイプやパーティションタイプなどのプロパティは、sale_detailテーブルのプロパティと同じです。

      説明

      DESC table_nameステートメントの出力のデータサイズには、ごみ箱のデータサイズが含まれます。 ごみ箱をクリアする場合は、PURGE TABLE table_nameステートメントを実行します。 次に、DESC table_nameステートメントを実行して、ごみ箱内のデータのサイズを除くデータのサイズを表示します。 SHOW RECYCLEBINステートメントを実行して、現在のプロジェクトのごみ箱内のデータに関する詳細を表示することもできます。

    • 例6: test_newtypeテーブルに関する情報を表示します。

      desc test_newtype;

      次の応答が返されます。

      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field           | Type       | Label | Comment                                     |
      +------------------------------------------------------------------------------------+
      | c1              | tinyint    |       |                                             |
      | c2              | smallint   |       |                                             |
      | c3              | int        |       |                                             |
      | c4              | bigint     |       |                                             |
      | c5              | float      |       |                                             |
      | c6              | double     |       |                                             |
      | c7              | decimal    |       |                                             |
      | c8              | binary     |       |                                             |
      | c9              | timestamp  |       |                                             |
      | c10             | array<map<bigint,bigint>> |       |                              |
      | c11             | map<string,array<bigint>> |       |                              |
      | c12             | struct<s1:string,s2:bigint> |       |                            |
      | c13             | varchar(20) |       |                                            |
      +------------------------------------------------------------------------------------+
      
      OK
    • 例7: t1ハッシュクラスタ化テーブルの情報を表示します。 このテーブルはパーティション分割されていないテーブルです。 クラスタリング属性は拡張情報に表示されます。

      desc extended t1;

      次の応答が返されます。

      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name                       |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2020-11-16 18:00:56                                      |
      | LastDDLTime:              2020-11-16 18:00:56                                      |
      | LastModifiedTime:         2020-11-16 18:00:56                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
      +------------------------------------------------------------------------------------+
      | a        | string |       |               | true     | NULL         |              |
      | b        | string |       |               | true     | NULL         |              |
      | c        | bigint |       |               | true     | NULL         |              |
      +------------------------------------------------------------------------------------+
      | Extended Info:                                                                     |
      +------------------------------------------------------------------------------------+
      | TableID:                  e6b06f705dc34a36a5b72e5af486cab7                         |
      | IsArchived:               false                                                    |
      | PhysicalSize:             0                                                        |
      | FileNum:                  0                                                        |
      | StoredAs:                 AliOrc                                                   |
      | CompressionStrategy:      normal                                                   |
      | ClusterType:              hash                                                     |
      | BucketNum:                1024                                                     |
      | ClusterColumns:           [c]                                                      |
      | SortColumns:              [c ASC]                                                  |
      +------------------------------------------------------------------------------------+
      
      OK
    • 例8: t2ハッシュクラスタ化テーブルに関する情報を表示します。 このテーブルはパーティションテーブルです。 クラスタリング属性は拡張情報に表示されます。

      desc extended t2;

      次の応答が返されます。

      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name                       |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime: 2017-12-25 11:18:26                                                    |
      | LastDDLTime: 2017-12-25 11:18:26                                                   |
      | LastModifiedTime: 2017-12-25 11:18:26                                              |
      | Lifecycle: 2                                                                       |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES | Size: 0                                                       |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field | Type   | Label | Comment                                                   |
      +------------------------------------------------------------------------------------+
      | a     | string |       |                                                           |
      | b     | string |       |                                                           |
      | c     | bigint |       |                                                           |
      +------------------------------------------------------------------------------------+
      | Partition Columns:                                                                 |
      +------------------------------------------------------------------------------------+
      | dt    | string |                                                                   |
      +------------------------------------------------------------------------------------+
      | Extended Info:                                                                     |
      +------------------------------------------------------------------------------------+
      | TableID: 91a3395d3ef64b4d9ee1d2852755                                              |
      | IsArchived: false                                                                  |
      | PhysicalSize: 0                                                                    |
      | FileNum: 0                                                                         |
      | ClusterType: hash                                                                  |
      | BucketNum: 1024                                                                    |
      | ClusterColumns: [c]                                                                |
      | SortColumns: [c ASC]                                                               |
      +------------------------------------------------------------------------------------+
      
      OK
    • 例9: t3レンジクラスタ化テーブルに関する情報を表示します。 このテーブルはパーティション分割されていないテーブルです。 クラスタリング属性は拡張情報に表示されます。

      desc extended t3;

      次の応答が返されます。

      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name                       |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2020-11-16 18:01:05                                      |
      | LastDDLTime:              2020-11-16 18:01:05                                      |
      | LastModifiedTime:         2020-11-16 18:01:05                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
      +------------------------------------------------------------------------------------+
      | a        | string |       |               | true     | NULL         |              |
      | b        | string |       |               | true     | NULL         |              |
      | c        | bigint |       |               | true     | NULL         |              |
      +------------------------------------------------------------------------------------+
      | Extended Info:                                                                     |
      +------------------------------------------------------------------------------------+
      | TableID:                  38d170aca2684f4baadbbe1931a6ae1f                         |
      | IsArchived:               false                                                    |
      | PhysicalSize:             0                                                        |
      | FileNum:                  0                                                        |
      | StoredAs:                 AliOrc                                                   |
      | CompressionStrategy:      normal                                                   |
      | ClusterType:              range                                                    |
      | BucketNum:                1024                                                     |
      | ClusterColumns:           [c]                                                      |
      | SortColumns:              [c ASC]                                                  |
      +------------------------------------------------------------------------------------+
      
      OK
    • 例10: t4レンジクラスタ化テーブルに関する情報を表示します。 このテーブルはパーティションテーブルです。 クラスタリング属性は拡張情報に表示されます。

      desc extended t4;

      次の応答が返されます。

      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name                       |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2020-11-16 19:17:48                                      |
      | LastDDLTime:              2020-11-16 19:17:48                                      |
      | LastModifiedTime:         2020-11-16 19:17:48                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
      +------------------------------------------------------------------------------------+
      | a        | string |       |               | true     | NULL         |              |
      | b        | string |       |               | true     | NULL         |              |
      | c        | bigint |       |               | true     | NULL         |              |
      +------------------------------------------------------------------------------------+
      | Partition Columns:                                                                 |
      +------------------------------------------------------------------------------------+
      | dt              | string     |                                                     |
      +------------------------------------------------------------------------------------+
      | Extended Info:                                                                     |
      +------------------------------------------------------------------------------------+
      | TableID:                  6ebc3432e283449188c861427bcd6ee4                         |
      | IsArchived:               false                                                    |
      | PhysicalSize:             0                                                        |
      | FileNum:                  0                                                        |
      | StoredAs:                 AliOrc                                                   |
      | CompressionStrategy:      normal                                                   |
      | ClusterType:              range                                                    |
      | BucketNum:                0                                                        |
      | ClusterColumns:           [c]                                                      |
      | SortColumns:              [c ASC]                                                  |
      +------------------------------------------------------------------------------------+
      
      OK
    • 例11: t5非パーティションテーブルがトランザクションテーブルであるかどうかを確認します。

      説明

      MaxComputeクライアントを使用して、テーブルがトランザクションテーブルであるかどうかを確認することを推奨します。 MaxComputeクライアントのバージョンはV0.35.4以降である必要があります。 MaxComputeクライアントをダウンロードして使用する方法の詳細については、「MaxComputeクライアント」をご参照ください。 他のツールは更新されず、トランザクション情報を表示しない。

      desc extended t5;

      次の応答が返されます。

      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$xxxxx@aliyun.com | Project: $project_name                            |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2021-02-18 10:56:27                                      |
      | LastDDLTime:              2021-02-18 10:56:27                                      |
      | LastModifiedTime:         2021-02-18 10:56:27                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
      +------------------------------------------------------------------------------------+
      | id       | bigint |       |               | true     | NULL         |              |
      +------------------------------------------------------------------------------------+
      | Extended Info:                                                                     |
      +------------------------------------------------------------------------------------+
      ...
      | Transactional:            true                                                     |
      +------------------------------------------------------------------------------------+
    • 例12: 分割テーブルt6がトランザクションテーブルであるかどうかをチェックする。 例:

      説明

      MaxComputeクライアントを使用して、テーブルがトランザクションテーブルであるかどうかを確認することを推奨します。 MaxComputeクライアントのバージョンはV0.35.4以降である必要があります。 MaxComputeクライアントをダウンロードして使用する方法の詳細については、「MaxComputeクライアント」をご参照ください。 他のツールは更新されず、トランザクション情報を表示しません。

      desc extended t6;

      次の応答が返されます。

      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$xxxxx@test.aliyunid.com | Project: $project_name                     |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2021-02-18 15:34:54                                      |
      | LastDDLTime:              2021-02-18 15:34:54                                      |
      | LastModifiedTime:         2021-02-18 15:34:54                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field           | Type       | Label | Comment                                     |
      +------------------------------------------------------------------------------------+
      | id              | bigint     |       |                                             |
      +------------------------------------------------------------------------------------+
      | Partition Columns:                                                                 |
      +------------------------------------------------------------------------------------+
      | ds              | string     |                                                     |
      +------------------------------------------------------------------------------------+
      | Extended Info:                                                                     |
      +------------------------------------------------------------------------------------+
      ...
      | Transactional:            true                                                     |
      +------------------------------------------------------------------------------------+

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

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

  • 構文

    desc <table_name> partition (<pt_spec>);
  • パラメーター

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

    • pt_spec: 必須です。 表示するパーティションに関する情報。 このパラメーターの値は、partition_col1=col1_value1, partition_col2=col2_value1... 形式です。 テーブルに複数レベルのパーティションがある場合は、すべてのパーティションキー列の値を指定する必要があります。

  • -- Query information about the partitioned table sale_detail. 
    desc sale_detail partition (sale_date='201310',region='beijing');

    次の応答が返されます。

    +------------------------------------------------------------------------------------+
    | PartitionSize: 2109112                                                             |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2015-10-10 08:48:48                                      |
    | LastDDLTime:              2015-10-10 08:48:48                                      |
    | LastModifiedTime:         2015-10-11 01:33:35                                      |
    +------------------------------------------------------------------------------------+
    OK

プロジェクト内のテーブルとビューの表示

プロジェクト内の特定のルールを満たすすべてのテーブルとビュー、またはテーブルとビューを表示します。

  • 構文

    -- Display all tables and views in a project. 
    show tables;
    -- Display the tables or views whose names contain the chart keyword in a project. 
    show tables like '<chart>';
  • -- Display the tables whose names contain the sale* keyword in a project. The asterisk (*) indicates any character. 
    show tables like 'sale*';              

    次の応答が返されます。

    ALIYUN$account_name:sale_detail
    ......
    -- ALIYUN is a system prompt, which indicates that the table is created by using an Alibaba Cloud account. If the table was created by a RAM user, the system prompt is RAM.

パーティションの表示

テーブルのすべてのパーティションを表示します。 テーブルが存在しないか、テーブルがパーティション分割されていないテーブルである場合、エラーが返されます。

  • 構文

    show partitions <table_name>; 
  • パラメーター

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

  • -- Display all the partitions of the sale_detail table. 
    show partitions sale_detail;

    次の応答が返されます。

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

関連ドキュメント

  • 列の追加、列の削除、列のデータ型の変更など、MaxComputeテーブルの列で操作を実行する方法の詳細については、「パーティションと列操作」をご参照ください。

  • あるテーブルから別のテーブルにデータをクローンする方法の詳細については、「clone table」をご参照ください。

  • トランザクションテーブルの特定の行のデータを削除または更新する方法の詳細については、「update and delete」をご参照ください。