適用対象: Databricks SQL
Databricks Runtime
テーブルの基本的なメタデータ情報を返します。 メタデータ情報には、列名、列の型、列のコメントが含まれています。 必要に応じて、パーティションの仕様または列名を指定して、パーティションまたは列にそれぞれ関連するメタデータを返すことができます。 Delta テーブルでは、すべてのフィールドが返されるわけではありません。
メタデータは、レポート フォームまたは JSON ドキュメントとして返されます。
重要
DESCRIBE AS JSON
を使用し、describe 出力をプログラムで解析します。 JSON 以外のレポート形式は変更される可能性があります。
構文
{ DESC | DESCRIBE } [ TABLE ] [ EXTENDED ] table_name { [ PARTITION clause ] | [ column_name ] } [ AS JSON ]
互換性のために FORMATTED
は、EXTENDED
のシノニムとして指定できます。
パラメーター
EXTENDED
指定した場合、コマンドによって収集された列の統計を含む指定した列に関する詳細情報、および追加のメタデータ情報 (スキーマ修飾子、所有者、アクセス時刻など) が表示されます。
-
説明するテーブルを識別します。 名前には、 時仕様またはオプション指定を使用することはできません。 テーブルが見つからない場合、Azure Databricks で TABLE_OR_VIEW_NOT_FOUND エラーが発生します。
-
名前付きパーティションの追加メタデータを返すように Databricks SQL を指定する省略可能なパラメーター。
-
説明を必要とする列の名前を指定する省略可能なパラメーター。 現在、入れ子になった列を指定することはできません。
JSON 形式は、個々の列でサポートされています。
AS JSON
適用対象:
Databricks SQL
Databricks Runtime 16.2 以降
必要に応じて、人間が判読できるレポートの代わりに JSON 文字列としてテーブル メタデータを返します。 プログラムを使用して結果を解析する場合は、この形式を使用します。
EXTENDED
形式が指定されている場合にのみサポートされます。
partition_spec
と column_name
パラメーターは相互に排他的であり、一緒に指定することはできません。
JSON 形式の出力
AS JSON
を指定すると、出力は JSON 文字列として返されます。 次のスキーマがサポートされています。
{
"table_name": "<table_name>",
"catalog_name": "<catalog_name>",
"schema_name": "<schema_name>",
"namespace": ["<schema_name>"],
"type": "<table_type>",
"provider": "<provider>",
"columns": [
{
"name": "<name>",
"type": <type_json>,
"comment": "<comment>",
"nullable": <boolean>,
"default": "<default_val>",
"is_measure": <boolean>, // Included only for measure columns of metric views
}
],
"partition_values": {
"<col_name>": "<val>"
},
"partition_columns": ["col1", "col2"],
"___location": "<path>",
"view_text": "<view_text>",
"view_original_text": "<view_original_text>",
"view_schema_mode": "<view_schema_mode>",
"view_catalog_and_namespace": "<view_catalog_and_namespace>",
"view_query_output_columns": ["<col_name>"],
"comment": "<comment>",
"table_properties": {
"property1": "<property1>",
"property2": "<property2>"
},
"statistics": {
"num_rows": <count>,
"size_in_bytes": <bytes>,
"table_change_stats": {
"inserted": <count>,
"deleted": <count>,
"updated": <count>,
"change_percent": <percent_changed_float>
}
},
"storage_properties": {
"property1": "<property1>",
"property2": "<property2>"
},
"serde_library": "<serde_library>",
"input_format": "<input_format>",
"output_format": "<output_format>",
"num_buckets": <num_buckets>,
"bucket_columns": ["<col_name>"],
"sort_columns": ["<col_name>"],
"created_time": "<timestamp_ISO-8601>",
"created_by": "<created_by>",
"last_access": "<timestamp_ISO-8601>",
"partition_provider": "<partition_provider>",
"collation": "<default_collation>", // Available in DBR 16.4 and above
"language": "<language>", // Language such as YAML, included only for metric views
"row_filter": { // Available in DBR 17.0 and above
"filter_function": {
"catalog_name": "<catalog_name>",
"schema_name": "<schema_name>",
"function_name: "<function_name>",
"specific_name": "<specific_name>"
},
"arguments": ["<arg1>", "<arg2>"]
},
"column_masks": [ // Available in DBR 17.0 and above
{"column_name": "<column_name>",
"mask_function": {
"catalog_name": "<catalog_name>",
"schema_name": "<schema_name>",
"function_name: "<function_name>",
"specific_name": "<specific_name>"
},
"arguments": ["<arg1>", "<arg2>"]
}
]
}
<type_json>
のスキーマ定義を次に示します。
SQL 型 | JSON 表現 |
---|---|
TINYINT | { "name" : "tinyint" } |
SMALLINT | { "name" : "smallint" } |
INT | { "name" : "int" } |
BIGINT | { "name" : "bigint" } |
フロート | { "name" : "float" } |
複 | { "name" : "double" } |
10進数(p, s) | { "name" : "decimal", "precision": p, "scale": s } |
糸 | { "name" : "string", "collation": "<collation>" } |
VARCHAR(n) | { "name" : "varchar", "length": n } |
文字(n) | { "name" : "char", "length": n } |
バイナリ | { "name" : "binary" } |
ブーリアン | { "name" : "boolean" } |
日付 | { "name" : "date" } |
タイムスタンプ | { "name" : "timestamp_ltz" } |
TIMESTAMP_NTZ | { "name" : "timestamp_ntz" } |
インターバルstart_unitからend_unit | { "name" : "interval", "start_unit": "<start_unit>", "end_unit": "<end_unit>" } |
配列です<element_type> | { "name" : "array", "element_type": <type_json>, "element_nullable": <boolean_val> } |
MAP<キータイプ、値タイプ> | { "name" : "map", "key_type": <type_json>, "value_type": <type_json>, "element_nullable": <boolean_val> } |
構造体<field_name...、...> | { "name" : "struct", "fields": [ {"name" : "<field_name>", "type" : <type_json>, “nullable”: <boolean_val>, "comment": “<field_comment>”, "default": “<default_val>”}] } |
バリアント | { "name" : "variant" } |
例
-- Creates a table `customer`. Assumes current schema is `salesdb`.
> CREATE TABLE customer(
cust_id INT,
state VARCHAR(20),
name STRING COMMENT 'Short name'
)
USING parquet
PARTITIONED BY (state);
> INSERT INTO customer PARTITION (state = 'AR') VALUES (100, 'Mike');
-- Returns basic metadata information for unqualified table `customer`
> DESCRIBE TABLE customer;
col_name data_type comment
----------------------- --------- ----------
cust_id int null
name string Short name
state string null
# Partition Information
# col_name data_type comment
state string null
-- Returns basic metadata information for qualified table `customer`
> DESCRIBE TABLE salesdb.customer;
col_name data_type comment
----------------------- --------- ----------
cust_id int null
name string Short name
state string null
# Partition Information
# col_name data_type comment
state string null
-- Returns additional metadata such as parent schema, owner, access time etc.
> DESCRIBE TABLE EXTENDED customer;
col_name data_type comment
---------------------------- ------------------------------ ----------
cust_id int null
name string Short name
state string null
# Partition Information
# col_name data_type comment
state string null
# Detailed Table Information
Database default
Table customer
Owner <TABLE OWNER>
Created Time Tue Apr 07 22:56:34 JST 2020
Last Access UNKNOWN
Created By <SPARK VERSION>
Type MANAGED
Provider parquet
Location file:/tmp/salesdb.db/custom...
Serde Library org.apache.hadoop.hive.ql.i...
InputFormat org.apache.hadoop.hive.ql.i...
OutputFormat org.apache.hadoop.hive.ql.i...
Partition Provider Catalog
-- Returns partition metadata such as partitioning column name, column type and comment.
> DESCRIBE TABLE EXTENDED customer PARTITION (state = 'AR');
col_name data_type comment
------------------------------ ------------------------------ ----------
cust_id int null
name string Short name
state string null
# Partition Information
# col_name data_type comment
state string null
# Detailed Partition Inform...
Database default
Table customer
Partition Values [state=AR]
Location file:/tmp/salesdb.db/custom...
Serde Library org.apache.hadoop.hive.ql.i...
InputFormat org.apache.hadoop.hive.ql.i...
OutputFormat org.apache.hadoop.hive.ql.i...
Storage Properties [serialization.format=1, pa...
Partition Parameters {transient_lastDdlTime=1586...
Created Time Tue Apr 07 23:05:43 JST 2020
Last Access UNKNOWN
Partition Statistics 659 bytes
# Storage Information
Location file:/tmp/salesdb.db/custom...
Serde Library org.apache.hadoop.hive.ql.i...
InputFormat org.apache.hadoop.hive.ql.i...
OutputFormat org.apache.hadoop.hive.ql.i...
------------------------------ ------------------------------ ----------
-- Returns the metadata for `name` column.
-- Optional `TABLE` clause is omitted and column is fully qualified.
> DESCRIBE customer salesdb.customer.name;
info_name info_value
--------- ----------
col_name name
data_type string
comment Short name
- Returns the table metadata in JSON format.
> DESCRIBE EXTENDED customer AS JSON;
{
"table_name":"customer",
"catalog_name":"spark_catalog",
"schema_name":"default",
"namespace":["default"],
"columns":[
{"name":"cust_id","type":{"name":"integer"},"nullable":true},
{"name":"name","type":{"name":"string"},"comment":"Short name","nullable":true},
{"name":"state","type":{"name":"varchar","length":20},"nullable":true}],
"___location": "file:/tmp/salesdb.db/custom...",
"created_time":"2020-04-07T14:05:43Z",
"last_access":"UNKNOWN",
"created_by":"None",
"type":"MANAGED",
"provider":"parquet",
"partition_provider":"Catalog",
"partition_columns":["state"]}
-- The JSON describe of a metric view
> DESCRIBE EXTENDED region_sales_metrics AS JSON;
{
"table_name":"region_sales_metrics",
"catalog_name":"main",
"namespace":["default"],
"schema_name":"default",
"columns":[
{"name":"month","type":{"name":"timestamp_ltz"},"nullable":true},
{"name":"status","type":{"name":"string","collation":"UTF8_BINARY"},"nullable":true},
{"name":"prder_priority","type":{"name":"string","collation":"UTF8_BINARY"},"nullable":true},
{"name":"count_orders","type":{"name":"bigint"},"nullable":false,"is_measure":true},
{"name":"total_revenue","type":{"name":"decimal","precision":28,"scale":2},"nullable":true,"is_measure":true},
{"name":"total_revenue_per_customer","type":{"name":"decimal","precision":38,"scale":12},"nullable":true,"is_measure":true}],
"owner":"alf@melmak.et",
"created_time":"2025-05-18T23:45:25Z",
"last_access":"UNKNOWN",
"created_by":"Spark ",
"type":"METRIC_VIEW",
"comment":"A metric view for regional sales metrics.",
"view_text":"\n version: 0.1\n source: samples.tpch.orders\n filter: o_orderdate > '1990-01-01'\n dimensions:\n - name: month\n expr: date_trunc('MONTH', o_orderdate)\n - name: status\n expr: case\n when o_orderstatus = 'O' then 'Open'\n when o_orderstatus = 'P' then 'Processing'\n when o_orderstatus = 'F' then 'Fulfilled'\n end\n - name: prder_priority\n expr: split(o_orderpriority, '-')[1]\n measures:\n - name: count_orders\n expr: count(1)\n - name: total_revenue\n expr: SUM(o_totalprice)\n - name: total_revenue_per_customer\n expr: SUM(o_totalprice) / count(distinct o_custkey)\n ","language":"YAML","table_properties":{"metric_view.from.name":"samples.tpch.orders","metric_view.from.type":"ASSET","metric_view.where":"o_orderdate > '1990-01-01'"},
"view_creation_spark_configuration":{ ... },
"collation":"UTF8_BINARY"}
詳細を説明する
DESCRIBE DETAIL [schema_name.]table_name
スキーマ、パーティション分割、テーブル サイズなどに関する情報を返します。 たとえば、Delta テーブルの場合、テーブルの現在のリーダーとライターのバージョンを確認できます。 詳細スキーマについては、「詳細を記述して Delta Lake テーブルの詳細を確認する」を参照してください。