다음을 통해 공유


DESCRIBE TABLE

적용 대상:예 Databricks SQL 예 Databricks 런타임

테이블의 기본 메타데이터 정보를 반환합니다. 메타데이터 정보에는 열 이름, 열 형식 및 열 주석이 포함됩니다. 필요에 따라 파티션 사양 또는 열 이름을 지정하여 파티션 또는 열과 관련된 메타데이터를 각각 반환할 수 있습니다. 델타 테이블을 사용하면 모든 필드가 반환되지 않습니다.

메타데이터는 보고서 형식 또는 JSON 문서로 반환됩니다.

중요하다

DESCRIBE AS JSON 사용하여 프로그래밍 방식으로 출력을 구문 분석합니다. JSON이 아닌 보고서 형식은 변경될 수 있습니다.

구문

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

호환성을 위해 FORMATTEDEXTENDED의 동의어로 지정할 수 있습니다.

매개 변수

  • EXTENDED

    지정된 경우 명령에서 수집한 열 통계 및 추가 메타데이터 정보(예: 스키마 한정자, 소유자 및 액세스 시간)를 포함하여 지정된 열에 대한 자세한 정보를 표시합니다.

  • table_name

    설명할 테이블을 식별합니다. 이름은 임시 사양 또는 옵션 사양을 사용할 수 없습니다. 테이블을 찾을 수 없는 경우 Azure Databricks에서 TABLE_OR_VIEW_NOT_FOUND 오류가 발생합니다.

  • PARTITION 절

    명명된 파티션에 대한 추가 메타데이터를 반환하도록 Databricks SQL에 지시하는 선택적 매개 변수입니다.

  • column_name

    설명해야 하는 열 이름의 선택적 매개 변수입니다. 현재 중첩된 열은 지정할 수 없습니다.

    JSON 형식은 개별 열에 대해 지원됩니다.

  • AS JSON

    적용 대상:확인 표시 예 Databricks SQL 확인 표시 예 Databricks Runtime 16.2 이상

    필요에 따라 테이블 메타데이터를 사람이 읽을 수 있는 보고서 대신 JSON 문자열로 반환합니다. 프로그램을 사용하여 결과를 구문 분석할 때 이 형식을 사용합니다.

    EXTENDED 형식이 지정된 경우에만 지원됩니다.

매개 변수 partition_speccolumn_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 (1바이트 정수 데이터 타입) { "name" : "tinyint" }
SMALLINT { "name" : "smallint" }
정수 { "name" : "int" }
BIGINT { "name" : "bigint" }
뜨다 { "name" : "float" }
더블 { "name" : "double" }
소수(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 Lake 테이블 세부 정보 검토를 참조하세요.