DESCRIBE TABLE
Aplica-se a: Databricks SQL
Databricks Runtime
Retorna as informações básicas de metadados de uma tabela. As informações de metadados incluem nome da coluna, tipo de coluna e comentário da coluna. Opcionalmente, você pode especificar uma especificação de partição ou nome de coluna para retornar os metadados pertencentes a uma partição ou coluna, respectivamente. Com tabelas Delta, nem todos os campos são retornados.
Os metadados são retornados em forma de relatório ou como um documento JSON.
Importante
Use DESCRIBE AS JSON
para analisar a saída de forma programática. O formato de relatório não-JSON está sujeito a alterações.
Sintaxe
{ DESC | DESCRIBE } [ TABLE ] [ EXTENDED ] table_name { [ PARTITION clause ] | [ column_name ] } [ AS JSON ]
Para compatibilidade FORMATTED
pode ser especificado como sinônimo de EXTENDED
.
Parâmetros
EXTENDED
Se especificado, exiba informações detalhadas sobre as colunas especificadas, incluindo as estatísticas de coluna coletadas pelo comando, e informações adicionais de metadados (como qualificador de esquema, proprietário e tempo de acesso).
-
Identifica a tabela a ser descrita. O nome não pode usar uma especificação temporal ou especificação de opções. Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.
-
Um parâmetro opcional direcionando o Databricks SQL para retornar metadados de adição para as partições nomeadas.
-
Um parâmetro opcional com o nome da coluna que precisa ser descrito. Atualmente, as colunas aninhadas não podem ser especificadas.
O formato JSON é suportado para colunas individuais.
AS JSON
Aplica-se a:
Databricks Runtime 16.2 e versões posteriores
Opcionalmente, retorna os metadados da tabela como uma cadeia de caracteres JSON em vez de um relatório legível por humanos. Use este formato ao analisar o resultado usando um programa.
Suportado apenas quando o formato
EXTENDED
é especificado.
Os parâmetros partition_spec
e column_name
excluem-se mutuamente e não podem ser especificados em conjunto.
Saída formatada em JSON
Quando AS JSON
é especificado, a saída é retornada como uma cadeia de caracteres JSON. O seguinte esquema é suportado:
{
"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>"
}
Abaixo estão as definições de esquema para <type_json>
:
Tipo SQL | Representação JSON |
---|---|
TINYINT | { "name" : "tinyint" } |
SMALLINT | { "name" : "smallint" } |
INT | { "name" : "int" } |
BIGINT | { "name" : "bigint" } |
FLUTUAR | { "name" : "float" } |
DUPLO | { "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 } |
BINÁRIO | { "name" : "binary" } |
BOOLEANO | { "name" : "boolean" } |
DATE | { "name" : "date" } |
TIMESTAMP | { "name" : "timestamp_ltz" } |
TIMESTAMP_NTZ | { "name" : "timestamp_ntz" } |
INTERVALO start_unit A end_unit | { "name" : "interval", "start_unit": "<start_unit>", "end_unit": "<end_unit>" } |
MATRIZ<tipo_de_elemento> | { "name" : "array", "element_type": <type_json>, "element_nullable": <boolean_val> } |
MAPA<key_type, value_type> | { "name" : "map", "key_type": <type_json>, "value_type": <type_json>, "element_nullable": <boolean_val> } |
STRUCT<field_name ..., ...> | { "name" : "struct", "fields": [ {"name" : "<field_name>", "type" : <type_json>, “nullable”: <boolean_val>, "comment": “<field_comment>”, "default": “<default_val>”}] } |
VARIANTE | { "name" : "variant" } |
Exemplos
-- 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"]}
DESCREVER DETALHES
DESCRIBE DETAIL [schema_name.]table_name
Retorna informações sobre esquema, particionamento, tamanho da tabela e assim por diante. Por exemplo, no caso de tabelas Delta, pode ver as versões atuais de leitura e de escrita de uma tabela. Consulte Revisão dos detalhes da tabela Delta Lake com de detalhes para descrever o esquema de detalhes.