テーブルは MaxCompute のデータストレージユニットです。テーブルデータの処理は、データウェアハウスの開発、分析、保守に不可欠です。このトピックでは、テーブルの作成、削除、表示などの一般的なテーブル操作について説明し、具体的な例を示します。
ツール
このトピックのコマンドは、次のプラットフォームで実行できます。
一般的なコマンド
テーブル操作の詳細については、「テーブル操作」をご参照ください。
タイプ
特徴
ロール
非パーティションテーブルまたはパーティションテーブルを作成します。
プロジェクトに対する CreateTable 権限を持つユーザー
テーブルのオーナーを変更します。
プロジェクトオーナー
非パーティションテーブルまたはパーティションテーブルを削除します。
テーブルに対する DROP 権限を持つユーザー
MaxCompute のビュー、内部テーブル、または外部テーブルの情報を表示します。
テーブルのメタデータを読み取るための Describe 権限を持つユーザー
パーティションテーブルのパーティション情報を表示します。
テーブルのメタデータを読み取るための Describe 権限を持つユーザー
プロジェクト内のすべてのテーブルとビュー、または正規表現などの特定のルールに一致するテーブルとビューを表示します。
プロジェクト内のオブジェクトに対する List 権限を持つユーザー
テーブルのすべてのパーティションを表示します。
プロジェクト内のオブジェクトに対する List 権限を持つユーザー
パーティションと列の操作の詳細については、「パーティションと列の操作」をご参照ください。
テーブルのライフサイクル操作の詳細については、「ライフサイクル」をご参照ください。
テーブルの作成
非パーティションテーブル、パーティションテーブル、外部テーブル、またはクラスター化テーブルを作成します。
制限事項
パーティションテーブルは最大 6 レベルのパーティションを持つことができます。たとえば、テーブルがパーティションキー列として日付列を使用する場合、6 レベルのパーティションは
year/month/week/day/hour/minuteとなります。デフォルトでは、テーブルは最大 60,000 個のパーティションを持つことができます。ビジネス要件に基づいて、テーブル内のパーティションの最大数を調整できます。
テーブルの制限事項の詳細については、「MaxCompute SQL の制限事項」をご参照ください。
構文
-- テーブルを作成します。 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>], ...)] -- 作成するクラスター化テーブルのシャッフルおよびソートプロパティを設定します。 [clustered by | range clustered by (<col_name> [, <col_name>, ...]) [sorted by (<col_name> [asc | desc] [, <col_name> [asc | desc] ...])] into <number_of_buckets> buckets] -- 外部テーブルにのみ使用されます。 [stored by StorageHandler] -- 外部テーブルにのみ使用されます。 [with serdeproperties (options)] -- 外部テーブルにのみ使用されます。 [location <osslocation>] -- テーブルをトランザクションテーブルに設定します。後でトランザクションテーブルのデータを変更または削除できます。トランザクションテーブルには特定の制限があります。ビジネス要件に基づいてトランザクションテーブルを作成してください。 [tblproperties("transactional"="true")] -- テーブルを Delta テーブルに設定します。UPSERT 操作を実行してテーブルにデータを書き込み、プライマリキーに基づいてテーブルに対して増分クエリとタイムトラベルクエリを実行できます。 [tblproperties ("transactional"="true" [, "write.bucket.num" = "N", "acid.data.retain.hours"="hours"...])] [lifecycle <days>] ; -- 既存のテーブルに基づいてテーブルを作成し、既存のテーブルから新しいテーブルにデータを複製します。パーティションプロパティは複製されません。CREATE TABLE 文を実行して、データレイクハウスソリューションを実装するために使用される外部テーブルまたは外部プロジェクトの既存のテーブルに基づいてテーブルを作成できます。 create table [if not exists] <table_name> [lifecycle <days>] as <select_statement>; -- 既存のテーブルに基づいてテーブルを作成し、既存のテーブルのスキーマを複製します。CREATE TABLE 文を実行して、データレイクハウスソリューションを実装するために使用される外部テーブルまたは外部プロジェクトの既存のテーブルに基づいてテーブルを作成できます。 create table [if not exists] <table_name> like <existing_table_name> [lifecycle <days>];パラメーター
external:任意。このパラメーターは、作成するテーブルが外部テーブルであることを指定します。
if not exists:任意。既存のテーブルの名前を使用してテーブルを作成する際に if not exists パラメーターを指定しない場合、エラーが返されます。既存のテーブルの名前を使用してテーブルを作成し、if not exists パラメーターを指定した場合、既存のテーブルのスキーマが作成しようとしているテーブルのスキーマと異なっていても、成功メッセージが返されます。既存のテーブルの名前を使用してテーブルを作成した場合、テーブルは作成されず、既存のテーブルのメタデータは変更されません。
table_name:必須。作成するテーブルの名前。名前の長さは 1~128 バイトで、文字、数字、アンダースコア (_) を含めることができます。名前は文字で始まり、特殊文字を含めることはできません。名前は大文字と小文字を区別しません。このパラメーターの値が要件を満たさない場合、エラーが返されます。
primary key:任意。テーブルのプライマリキー。1 つ以上の列をプライマリキーとして指定できます。これは、これらの列の組み合わせがテーブル内で一意でなければならないことを示します。プライマリキーには標準の SQL 構文に従う必要があります。プライマリキーとして定義された列は not null に設定する必要があり、変更することはできません。
col_name:任意。テーブル列の名前。名前の長さは 1~128 バイトで、文字、数字、アンダースコア (_) を含めることができます。名前は文字で始まり、特殊文字を含めることはできません。名前は大文字と小文字を区別しません。このパラメーターの値が要件を満たさない場合、エラーが返されます。
col_comment:任意。列のコメント。コメントは、長さが 1~1,024 バイトの有効な文字列である必要があります。このパラメーターの値が要件を満たさない場合、エラーが返されます。
data_type:任意。列のデータ型。BIGINT、DOUBLE、BOOLEAN、DATETIME、DECIMAL、STRING のデータ型がサポートされています。データ型の詳細については、「データ型のエディション」をご参照ください。
not 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 型にすることができます。データ型の詳細については、「データ型のエディション」をご参照ください。パーティションフィールドを使用してテーブルをパーティション分割すると、パーティションの追加、パーティションデータの更新、またはパーティションデータの読み取り時に全表スキャンが不要になります。これにより、データ処理の効率が向上します。
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 個の Reducer をサポートします。これは、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 個のハッシュバケットがあります。ハッシュバケットの数を 2n (512、1024、2048、4096 など) に設定することを推奨します。これにより、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。
with serdeproperties (options):任意。外部テーブルの権限付与、圧縮、および文字解析に関連するパラメーター。
osslocation:任意。外部テーブルのデータが保存されている Object Storage Service (OSS) バケット。詳細については、「ORC 外部テーブル」をご参照ください。
トランザクションテーブルと Delta テーブルのパラメーター
トランザクションテーブルのパラメーター
tblproperties("transactional"="true"):任意。テーブルをトランザクションテーブルに設定します。
UPDATEまたはDELETE操作をトランザクションテーブルで実行して、行ごとにデータを更新または削除できます。詳細については、「データの更新または削除 (UPDATE | DELETE)」をご参照ください。トランザクションテーブルには次の制限があります。
MaxCompute では、テーブルを作成するときにのみトランザクションテーブルに設定できます。
ALTER TABLE文を実行して既存のテーブルをトランザクションテーブルに変更すると、エラーが返されます。alter table not_txn_tbl set tblproperties("transactional"="true"); -- 次のエラーが返されます: FAILED: Catalog Service Failed, ErrorCode: 151, Error Message: Set transactional is not supportedクラスター化テーブルまたは外部テーブルを作成するときに、それをトランザクションテーブルに設定することはできません。
トランザクションテーブルと MaxCompute 内部テーブル、外部テーブル、またはクラスター化テーブルの間で変換することはできません。
トランザクションテーブルファイルは自動的にマージできません。トランザクションテーブルファイルを手動でマージする必要があります。詳細については、UPDATE および DELETE の「トランザクションテーブルファイルのマージ」セクションをご参照ください。
MERGE PARTITION操作はサポートされていません。他のシステムのジョブからトランザクションテーブルへのアクセスには特定の制限が課せられます。たとえば、ジョブが Graph ジョブの場合、そのジョブを使用してトランザクションテーブルからデータを読み書きすることはできません。ジョブが Spark ジョブまたは Platform for AI (PAI) ジョブの場合、そのジョブを使用してトランザクションテーブルからデータを読み取ることしかできず、トランザクションテーブルにデータを書き込むことはできません。
トランザクションテーブルの重要なデータに対して
UPDATE、DELETE、またはINSERT OVERWRITE文を実行する前に、SELECTおよびINSERT文を実行して、データを他のテーブルにバックアップする必要があります。
Delta テーブルのパラメーター
Delta テーブルは、ほぼリアルタイムの読み書き、増分読み書き、増分ストレージ、リアルタイム更新などの機能をサポートします。プライマリキーを持つ Delta テーブルのみがサポートされます。
primary key:
このパラメーターは、Delta テーブルを作成するときに必須です。複数の列をプライマリキーとして指定できます。プライマリキーには標準の SQL 構文に従う必要があります。プライマリキーとして定義された列は not null に設定する必要があり、変更することはできません。Delta テーブルにプライマリキーを指定すると、プライマリキーに基づいてテーブルから重複データが削除されます。プライマリキー列の一意性制約は、単一のパーティションまたは非パーティションテーブルで有効です。
tblproperties ("transactional"="true" [, "write.bucket.num" = "N", "acid.data.retain.hours"="hours"...])]
transactional:このパラメーターは、Delta テーブルを作成するときに必須です。このパラメーターを true に設定する必要があります。true の値は、テーブルが MaxCompute の原子性、一貫性、分離性、永続性 (ACID) テーブルのトランザクション特性に準拠し、Multi Version Concurrency Control (MVCC) モデルがスナップショット分離をサポートするために使用されることを示します。
write.bucket.num:任意。デフォルト値:16。有効な値:(0,4096]。このパラメーターは、パーティションテーブルのパーティションまたは非パーティションテーブルのバケット数を示します。このパラメーターは、データの書き込みに使用される同時ノード数も指定します。パーティションテーブルに対してこのパラメーターの値を変更できます。パーティションテーブルに新しいパーティションが追加された場合、このパラメーターの構成はデフォルトで新しいパーティションに適用されます。非パーティションテーブルに対してこのパラメーターの値を変更することはできません。次の点に注意してください。
MaxCompute トンネルを使用してデータが書き込まれる場合、このパラメーターの値はデータの書き込みに使用される同時ノード数を指定します。パラメーターの設定はインポートトラフィックに影響し、トンネル内の最大同時ノード数にも影響されます。
SQL 文を使用してデータが書き込まれる場合、このパラメーターの値はデータの書き込みに使用される Reducer の同時実行数を指定します。この設定は、最大同時 Reducer ノード数に影響されます。
各バケットに約 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 を超える場合、複数のファイルが生成されます。このパラメーターは、複数のファイルのデータ重複除去には使用できません。
Delta テーブルの他の共通パラメーターの設定
lifecycle:テーブルのライフサイクル。単位:日。テーブルのライフサイクルは、次の数式の値以上である必要があります:
acid.data.retain.hours/24。この数式の値は、タイムトラベル機能を使用して既存データステータスをクエリできる日数を示します。テーブルを作成するとき、MaxCompute は指定したテーブルのライフサイクルをチェックします。指定したライフサイクルが要件を満たさない場合、エラーが返されます。その他のサポートされていない機能:Delta テーブルは、RANGE CLUSTER BY および CREATE TABLE AS 文をサポートしておらず、外部テーブルとして使用することはできません。
その他の制限事項:
MaxCompute SQL のみが Delta テーブルに対して直接操作を実行できます。
既存の共通テーブルを 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 テーブルから 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テーブルはパーティションテーブルですが、create table ... as select_statement ...を使用して作成されたsale_detail_ctas1テーブルはパーティションプロパティを複製しません。ソーステーブルのパーティションキー列は、作成されたテーブルでは共通列と見なされます。sale_detail_ctas1テーブルは 5 つの列を持つ非パーティションテーブルです。例 4:sale_detail_ctas2 テーブルを作成し、
SELECT句で列の値として定数を使用します。SET odps.sql.allow.fullscan=true; -- 列名が指定されています。 create table sale_detail_ctas2 as select shop_name, customer_id, total_price, '2013' as sale_date, 'China' as region from sale_detail; -- 列名が指定されていません。 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 [if not exists] <table_name> [lifecycle <days>] as <select_statement>;文を実行して内部テーブルを作成し、パーティション化された外部テーブルのデータを内部テーブルに複製します。パーティションプロパティは内部テーブルに複製されません。-- MaxCompute でデータレイクハウスソリューションを実装するために使用される外部プロジェクトの外部テーブルをクエリします。 select * from hive_external2_1.myhive_0110; -- 次の結果が返されます: a b c 101 1 20230110 102 2 20230110 103 3 20230110 -- CREATE TABLE AS 文を実行して内部テーブルを作成します。 create table from_exetbl_as_par as select * from hive_external2_1.myhive_0110_par; -- 内部テーブルをクエリします。 select * from from_exetbl_as_par; -- 内部テーブルのすべてのデータが返されます。 a b c 101 1 20230110 102 2 20230110 103 3 20230110 -- 内部テーブルのスキーマをクエリします。 desc from_exetbl_as_par; -- 次の結果が返されます: +------------------------------------------------------------------------------------+ | 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 [if not exists] <table_name> like <existing_table_name> [lifecycle <days>];文を実行して内部テーブルを作成し、パーティション化された外部テーブルのスキーマを内部テーブルに複製します。パーティションプロパティは内部テーブルに複製されます。-- MaxCompute でデータレイクハウスソリューションを実装するために使用される外部プロジェクトの外部テーブルをクエリします。 select * from hive_external2_1.myhive_0110_par; -- 次の結果が返されます: a b c 101 1 20230110 102 2 20230110 103 3 20230110 -- CREATE TABLE LIKE 文を実行して内部テーブルを作成します。 create table from_exetbl_like like hive_external2_1.myhive_0110_par; -- 内部テーブルをクエリします。 select * from from_exetbl_like; -- 内部テーブルのスキーマのみが返されます。 a b c -- 内部テーブルのスキーマをクエリします。 desc from_exetbl_like; -- 次の結果が返されます: +------------------------------------------------------------------------------------+ | 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:Delta テーブルを作成します。
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';ram_testという名前の RAM ユーザーに test1 テーブルのオーナーを変更します。alter table test1 changeowner to 'RAM$13xxxxxxxxxxx:ram_test';
テーブルの削除
非パーティションテーブルまたはパーティションテーブルを削除します。
注意事項
テーブルを削除する前に、そのテーブルが削除可能であることを確認してください。慎重に進めてください。誤ってテーブルを削除した場合、プロジェクトでバックアップと復元機能が有効になっており、テーブルがプロジェクトに指定されたバックアップデータ保持期間内に削除された場合は、テーブルを復元できます。バックアップと復元機能の詳細については、「ローカルバックアップ」をご参照ください。
テーブルを削除すると、MaxCompute プロジェクトに保存されているデータの量が減少します。
構文
drop table [if exists] <table_name>;パラメーター
if exists:任意。if exists パラメーターを指定せずに、削除しようとしているテーブルが存在しない場合、エラーが返されます。if exists パラメーターを指定した場合、テーブルが存在するかどうかに関係なく、成功メッセージが返されます。
table_name:必須。削除するテーブルの名前。
例
-- sale_detail テーブルを削除します。sale_detail テーブルが存在するかどうかに関係なく、成功メッセージが返されます。 drop table if exists sale_detail;
テーブルまたはビューの情報の表示
MaxCompute の内部テーブル、ビュー、外部テーブル、クラスター化テーブル、またはトランザクションテーブルの情報を表示します。テーブルの詳細情報の表示方法については、「SELECT 構文」をご参照ください。
構文
-- テーブルまたはビューの情報を表示します。 desc <table_name|view_name> [partition (<pt_spec>)]; -- 外部テーブル、クラスター化テーブル、またはトランザクションテーブルの情報を表示します。この文を実行して、内部テーブルの拡張情報を表示することもできます。 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 ハッシュクラスター化テーブルの情報を表示します。このテーブルは非パーティションテーブルです。クラスタリング属性は Extended Info に表示されます。
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 ハッシュクラスター化テーブルの情報を表示します。このテーブルはパーティションテーブルです。クラスタリング属性は Extended Info に表示されます。
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 レンジクラスター化テーブルの情報を表示します。このテーブルは非パーティションテーブルです。クラスタリング属性は Extended Info に表示されます。
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 レンジクラスター化テーブルの情報を表示します。このテーブルはパーティションテーブルです。クラスタリング属性は Extended Info に表示されます。
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...形式です。テーブルに複数レベルのパーティションがある場合、すべてのパーティションキー列の値を指定する必要があります。
例
-- パーティションテーブル 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
プロジェクト内のテーブルとビューの表示
プロジェクト内のすべてのテーブルとビュー、または特定のルールに一致するテーブルとビューを表示します。
構文
-- プロジェクト内のすべてのテーブルとビューを表示します。 show tables; -- プロジェクト内で名前に chart キーワードを含むテーブルまたはビューを表示します。 show tables like '<chart>';例
-- プロジェクト内で名前に sale* キーワードを含むテーブルを表示します。アスタリスク (*) は任意の文字を示します。 show tables like 'sale*';次の結果が返されます:
ALIYUN$account_name:sale_detail ...... -- ALIYUN はシステムプロンプトで、テーブルが Alibaba Cloud アカウントを使用して作成されたことを示します。テーブルが RAM ユーザーによって作成された場合、システムプロンプトは RAM です。
パーティションの表示
テーブルのすべてのパーティションを表示します。テーブルが存在しないか、非パーティションテーブルの場合、エラーが返されます。
構文
show partitions <table_name>;パラメーター
table_name:必須。パーティション情報を表示するパーティションテーブルの名前。
例
-- sale_detail テーブルのすべてのパーティションを表示します。 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
参考
列の追加、列の削除、列のデータ型の変更など、既存のテーブルのスキーマを変更するには、「パーティションと列の操作」をご参照ください。
あるテーブルから別のテーブルにデータをクローンする方法の詳細については、「CLONE TABLE」をご参照ください。
トランザクションテーブルの特定の行のデータを削除または更新する方法の詳細については、「データの更新または削除 (UPDATE | DELETE)」をご参照ください。