Udostępnij za pośrednictwem


DESCRIBE TABLE

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Zwraca podstawowe informacje o metadanych tabeli. Informacje o metadanych obejmują nazwę kolumny, typ kolumny i komentarz kolumny. Opcjonalnie możesz określić specyfikację partycji lub nazwę kolumny, aby zwrócić metadane odnoszące się odpowiednio do partycji lub kolumny. W przypadku tabel delty nie wszystkie pola są zwracane.

Metadane są zwracane w postaci raportu lub jako dokument JSON.

Ważny

Użyj DESCRIBE AS JSON, aby przeanalizować dane wyjściowe programowo. Format raportu innego niż JSON może ulec zmianie.

Składnia

{ DESC | DESCRIBE } [ TABLE ] [ EXTENDED ] table_name { [ PARTITION clause ] | [ column_name ] } [ AS JSON ]

Dla zgodności FORMATTED można określić jako synonim EXTENDED.

Parametry

  • EXTENDED

    Jeśli to określono, wyświetl szczegółowe informacje o podanych kolumnach, w tym statystyki kolumn zebrane przez to polecenie oraz dodatkowe informacje o metadanych (takie jak kwalifikator schematu, właściciel i czas dostępu).

  • table_name

    Identyfikuje tabelę do opisania. Nazwa może nie używać specyfikacji czasowej ani specyfikacji opcji. Jeśli nie można odnaleźć tabeli, Azure Databricks zgłasza błąd TABLE_OR_VIEW_NOT_FOUND.

  • PARTITION klauzula

    Opcjonalny parametr kierujący usługę Databricks SQL do zwracania metadanych dodawania nazwanych partycji.

  • column_name

    Opcjonalny parametr z nazwą kolumny, który należy opisać. Obecnie nie można określić zagnieżdżonych kolumn.

    Format JSON jest obsługiwany dla poszczególnych kolumn.

  • AS JSON

    Dotyczy:z zaznaczoną opcją 'tak' Databricks Runtime 16.2 lub nowsze

    Opcjonalnie zwraca metadane tabeli jako ciąg JSON zamiast raportu czytelnego dla człowieka. Użyj tego formatu podczas analizowania wyniku przy użyciu programu.

    Obsługiwane tylko w przypadku określenia formatu EXTENDED.

Parametry partition_spec i column_name wykluczają się wzajemnie i nie można ich określić razem.

Dane wyjściowe sformatowane w formacie JSON

Po określeniu AS JSON dane wyjściowe są zwracane jako ciąg JSON. Obsługiwany jest następujący schemat:

{
  "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>"
}

Poniżej przedstawiono definicje schematu dla <type_json>:

Typ SQL Reprezentacja JSON
TINYINT { "name" : "tinyint" }
SMALLINT { "name" : "smallint" }
INT { "name" : "int" }
BIGINT { "name" : "bigint" }
SPŁAWIK { "name" : "float" }
PODWÓJNY { "name" : "double" }
dziesiętne (p, s) { "name" : "decimal", "precision": p, "scale": s }
STRUNA { "name" : "string" }
VARCHAR(n) { "name" : "varchar", "length": n }
CHAR(n) { "name" : "char", "length": n }
DWÓJKOWY { "name" : "binary" }
BOOLOWSKI { "name" : "boolean" }
DATA { "name" : "date" }
TIMESTAMP { "name" : "timestamp_ltz" }
TIMESTAMP_NTZ { "name" : "timestamp_ntz" }
INTERWAŁ od START_UNIT do END_UNIT { "name" : "interval", "start_unit": "<start_unit>", "end_unit": "<end_unit>" }
ARRAY<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> }
STRUKTURA<field_name ..., ...> { "name" : "struct", "fields": [ {"name" : "<field_name>", "type" : <type_json>, “nullable”: <boolean_val>, "comment": “<field_comment>”, "default": “<default_val>”}] }
WARIANT { "name" : "variant" }

Przykłady

-- 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"]}

OPIS SZCZEGÓŁÓW

DESCRIBE DETAIL [schema_name.]table_name

Zwraca informacje o schemacie, partycjonowaniu, rozmiarze tabeli itd. Na przykład w przypadku tabel Delta można zobaczyć bieżące wersje czytnika i zapisywania tabeli. Zobacz Przejrzyj szczegóły tabeli Delta Lake, używając polecenia 'opisz szczegółowo', aby uzyskać szczegółowy schemat.