全部產品
Search
文件中心

Lindorm:DESCRIBE

更新時間:Jul 06, 2024

如果您想要建立結構相似的表或資料庫,可以通過DESCRIBE文法擷取原表或原資料庫的結構。

適用引擎

DESCRIBE文法適用於寬表引擎和時序引擎。

文法

describe_statement ::= { DESCRIBE | DESC } [{ DATABASE | TABLE }] identifier

差異說明

寬表引擎和時序引擎對文法要素的支援情況如下:

文法要素

寬表引擎

時序引擎

DATABASE

✖️

TABLE

對象名稱(identifier)

使用說明

DATABASE

時序引擎支援DATABASE關鍵字。

DESCRIBE中使用DATABASE關鍵字用於擷取並返回資料庫的結構。

TABLE

DESCRIBE中使用TABLE關鍵字用於擷取並返回表的結構。需注意,寬表引擎和時序引擎返回的表結構資訊並不完全相同。

對象名稱(identifier

DESCRIBE語句中使用DATABASE關鍵字時預設identifier為資料庫名,DESCRIBE語句中使用TABLE關鍵字時預設identifier為表名。如果DESCRIBE中未使用DATABASETABLE關鍵字,預設identifier為表名。例如DESCRIBE test;表示擷取當前資料庫下test表的結構。

樣本

假設建表語句如下:

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
);

擷取表結構

DESCRIBE TABLE sensor; -- 完整寫法
DESC sensor; -- 縮減寫法

寬表引擎返回結果如下:

+--------------+------------+-------------+-----------+----------------+------------+
| TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME |   TYPE    | IS_PRIMARY_KEY | SORT_ORDER |
+--------------+------------+-------------+-----------+----------------+------------+
| default      | sensor     | device_id   | VARCHAR   | true           | ASC        |
| default      | sensor     | region      | VARCHAR   | true           | ASC        |
| default      | sensor     | time        | TIMESTAMP | true           | ASC        |
| default      | sensor     | temperature | DOUBLE    | false          | none       |
| default      | sensor     | humidity    | BIGINT    | false          | none       |
+--------------+------------+-------------+-----------+----------------+------------+

時序引擎返回結果如下:

+-------------+-----------+------------+------------+--------------+
| columnName  | typeName  | columnKind | primaryKey | partitionTag |
+-------------+-----------+------------+------------+--------------+
| device_id   | VARCHAR   | TAG        | true       | true         |
| region      | VARCHAR   | TAG        | true       | true         |
| time        | TIMESTAMP | TIMESTAMP  | true       | false        |
| temperature | DOUBLE    | FIELD      | false      | false        |
| humidity    | BIGINT    | FIELD      | false      | false        |
+-------------+-----------+------------+------------+--------------+

擷取資料庫結構

擷取時序資料庫DB1的結構。

DESCRIBE DATABASE DB1;

返回結果如下:

+--------------------+-------+
|     attribute      | value |
+--------------------+-------+
| shard_num_per_node | 0     |
| skip_wal           | false |
| string_compression | false |
| cold_boundary      | 30    |
| partition_interval | 30    |
| ttl                | 60    |
| shard_num          | 0     |
+--------------------+-------+

返回結果說明:

  • shard_num_per_node:Database在每個節點使用的分區數量。預設值為1。

  • skip_wal:是否記錄日誌資料。預設值為false,即預設資料庫記錄日誌資料。

  • string_compression:是否對STRING類型的資料進行壓縮。預設值為false,即不壓縮STRING資料。

  • shard_num:Database在叢集中的分區總數。無預設值。

  • cold_boundary、partition_interval、ttl:CREATE DATABASE時設定的資料庫屬性,詳細介紹,請參見資料庫屬性(attribute_definition)