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 的名称。
|
db_name | 否 | 数据库名称。 |
table_name | 是 | 表名。 |
ALL | 否 |
|
FILES | 否 | FILES() 表函数。 从 v3.3.4 开始,您可以将 DESC 与 FILES() 结合使用,以查看存储在远程存储中的文件的结构信息。 有关详细信息,请参见函数参考 - FILES()。 |
输出
+-----------+---------------+-------+------+------+-----+---------+-------+
| IndexName | IndexKeysType | Field | Type | Null | Key | Default | Extra |
+-----------+---------------+-------+------+------+-----+---------+-------+
下表描述了此语句返回的参数。
参数 | 描述 |
---|---|
IndexName | 表名。 如果您查看存储在外部数据源中的表的结构,则不会返回此参数。 |
IndexKeysType | 表的排序键类型。 如果您查看存储在外部数据源中的表的结构,则不会返回此参数。 |
字段 | 列名。 |
类型 | 列的数据类型。 |
Null | 列值是否可以为 NULL。
|
Key | 该列是否用作排序键。
|
默认 | 列的数据类型的默认值。 如果数据类型没有默认值,则返回 NULL。 |
Extra |
|
注意:有关物化视图如何在输出中显示的信息,请参见示例 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 仅返回三个字段:
Field
,Type
和Null
。
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)