跳到主要内容
版本: 最新版本-3.5

DESC

DESC 用于查看表结构

  • 查看存储在 StarRocks 集群中的表的结构,以及表的排序键物化视图的类型。
  • 查看存储在以下外部数据源中的表的结构,例如 Apache Hive™。 请注意,您只能在 StarRocks 2.4 及更高版本中执行此操作。

语法

DESC[RIBE] { [[<catalog_name>.]<db_name>.]<table_name> [ALL] | FILES(files_loading_properties) }

参数

参数必需描述
catalog_name内部 Catalog 或外部 Catalog 的名称。
  • 如果将参数值设置为内部目录的名称,即 default_catalog,则可以查看存储在 StarRocks 集群中的表的结构。
  • 如果将参数值设置为外部目录的名称,则可以查看存储在外部数据源中的表的结构。
db_name数据库名称。
table_name表名。
ALL
  • 如果指定了此关键字,则可以查看存储在 StarRocks 集群中的表的排序键类型、物化视图和结构。 如果未指定此关键字,则只能查看表结构。
  • 当您查看存储在外部数据源中的表的结构时,请勿指定此关键字。
FILESFILES() 表函数。 从 v3.3.4 开始,您可以将 DESC 与 FILES() 结合使用,以查看存储在远程存储中的文件的结构信息。 有关详细信息,请参见函数参考 - FILES()

输出

+-----------+---------------+-------+------+------+-----+---------+-------+
| IndexName | IndexKeysType | Field | Type | Null | Key | Default | Extra |
+-----------+---------------+-------+------+------+-----+---------+-------+

下表描述了此语句返回的参数。

参数描述
IndexName表名。 如果您查看存储在外部数据源中的表的结构,则不会返回此参数。
IndexKeysType表的排序键类型。 如果您查看存储在外部数据源中的表的结构,则不会返回此参数。
字段列名。
类型列的数据类型。
Null列值是否可以为 NULL。
  • yes:表示值可以为 NULL。
  • no:表示值不能为 NULL。
Key该列是否用作排序键。
  • true:表示该列用作排序键。
  • false:表示该列不用作排序键。
默认列的数据类型的默认值。 如果数据类型没有默认值,则返回 NULL。
Extra
  • 如果您看到存储在 StarRocks 集群中的表的结构,则此字段会显示有关该列的以下信息
    • 该列使用的聚合函数,例如 SUMMIN
    • 是否在该列上创建了 Bloom Filter 索引。 如果是,则 Extra 的值为 BLOOM_FILTER
  • 如果您看到存储在外部数据源中的表的结构,则此字段会显示该列是否为分区列。 如果该列是分区列,则 Extra 的值为 partition key

注意:有关物化视图如何在输出中显示的信息,请参见示例 2。

示例

示例 1:查看存储在 StarRocks 集群中的 example_table 的结构。

DESC example_table;

DESC default_catalog.example_db.example_table;

上述语句的输出如下所示。

+-------+---------------+------+-------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-------+---------+-------+
| k1 | TINYINT | Yes | true | NULL | |
| k2 | DECIMAL(10,2) | Yes | true | 10.5 | |
| k3 | CHAR(10) | Yes | false | NULL | |
| v1 | INT | Yes | false | NULL | |
+-------+---------------+------+-------+---------+-------+

示例 2:查看存储在 StarRocks 集群中的 sales_records 的结构、排序键类型和物化视图。 在以下示例中,基于 sales_records 创建了一个物化视图 store_amt

DESC db1.sales_records ALL;

+---------------+---------------+-----------+--------+------+-------+---------+-------+
| IndexName | IndexKeysType | Field | Type | Null | Key | Default | Extra |
+---------------+---------------+-----------+--------+------+-------+---------+-------+
| sales_records | DUP_KEYS | record_id | INT | Yes | true | NULL | |
| | | seller_id | INT | Yes | true | NULL | |
| | | store_id | INT | Yes | true | NULL | |
| | | sale_date | DATE | Yes | false | NULL | NONE |
| | | sale_amt | BIGINT | Yes | false | NULL | NONE |
| | | | | | | | |
| store_amt | AGG_KEYS | store_id | INT | Yes | true | NULL | |
| | | sale_amt | BIGINT | Yes | false | NULL | SUM |
+---------------+---------------+-----------+--------+------+-------+---------+-------+

示例 3:查看存储在 Hive 集群中的 hive_table 的结构。

DESC hive_catalog.hive_db.hive_table;

+-------+----------------+------+-------+---------+---------------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------------+------+-------+---------+---------------+
| id | INT | Yes | false | NULL | |
| name | VARCHAR(65533) | Yes | false | NULL | |
| date | DATE | Yes | false | NULL | partition key |
+-------+----------------+------+-------+---------+---------------+

示例 4:查看存储在 AWS S3 中的 Parquet 文件 lineorder 的结构。

注意

对于存储在远程存储中的文件,DESC 仅返回三个字段:FieldTypeNull

DESC FILES(
"path" = "s3://inserttest/lineorder.parquet",
"format" = "parquet",
"aws.s3.access_key" = "AAAAAAAAAAAAAAAAAAAA",
"aws.s3.secret_key" = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"aws.s3.region" = "us-west-2"
);

+------------------+------------------+------+
| Field | Type | Null |
+------------------+------------------+------+
| lo_orderkey | int | YES |
| lo_linenumber | int | YES |
| lo_custkey | int | YES |
| lo_partkey | int | YES |
| lo_suppkey | int | YES |
| lo_orderdate | int | YES |
| lo_orderpriority | varchar(1048576) | YES |
| lo_shippriority | int | YES |
| lo_quantity | int | YES |
| lo_extendedprice | int | YES |
| lo_ordtotalprice | int | YES |
| lo_discount | int | YES |
| lo_revenue | int | YES |
| lo_supplycost | int | YES |
| lo_tax | int | YES |
| lo_commitdate | int | YES |
| lo_shipmode | varchar(1048576) | YES |
+------------------+------------------+------+
17 rows in set (0.05 sec)

参考