DESCRIBE TABLE
적용 대상: Databricks SQL
Databricks Runtime
테이블의 기본 메타데이터 정보를 반환합니다. 메타데이터 정보에는 열 이름, 열 형식 및 열 주석이 포함됩니다. 필요에 따라 파티션 사양 또는 열 이름을 지정하여 파티션 또는 열과 관련된 메타데이터를 각각 반환할 수 있습니다. 델타 테이블을 사용하면 모든 필드가 반환되지 않습니다.
메타데이터는 보고서 형식 또는 JSON 문서로 반환됩니다.
중요하다
DESCRIBE AS JSON
사용하여 프로그래밍 방식으로 출력을 구문 분석합니다. 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 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>"
}
],
"partition_values": {
"<col_name>": "<val>"
},
"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>"
}
다음은 <type_json>
대한 스키마 정의입니다.
SQL 형식 | JSON 표현 |
---|---|
TINYINT | { "name" : "tinyint" } |
SMALLINT | { "name" : "smallint" } |
INT | { "name" : "int" } |
BIGINT | { "name" : "bigint" } |
FLOAT | { "name" : "float" } |
DOUBLE | { "name" : "double" } |
DECIMAL(p, s) | { "name" : "decimal", "precision": p, "scale": s } |
STRING | { "name" : "string" } |
VARCHAR(n) | { "name" : "varchar", "length": n } |
CHAR(n) | { "name" : "char", "length": n } |
BINARY | { "name" : "binary" } |
BOOLEAN | { "name" : "boolean" } |
DATE | { "name" : "date" } |
TIMESTAMP | { "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<key_type, value_type> | { "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"]}
DESCRIBE DETAIL
DESCRIBE DETAIL [schema_name.]table_name
스키마, 분할, 테이블 크기 등에 대한 정보를 반환합니다. 예를 들어 델타 테이블의 경우 테이블의 현재 읽기 및 쓰기 버전을 볼 수 있습니다. 세부 스키마에 대한 자세한 설명과 함께