如果您想要建立結構相似的表或資料庫,可以通過DESCRIBE文法擷取原表或原資料庫的結構。
適用引擎
DESCRIBE文法適用於寬表引擎和時序引擎。
文法
describe_statement ::= { DESCRIBE | DESC } [{ DATABASE | TABLE }] identifier差異說明
寬表引擎和時序引擎對文法要素的支援情況如下:
文法要素 | 寬表引擎 | 時序引擎 |
✖️ | 〇 | |
〇 | 〇 | |
〇 | 〇 |
使用說明
DATABASE
僅時序引擎支援DATABASE關鍵字。
在DESCRIBE中使用DATABASE關鍵字用於擷取並返回資料庫的結構。
TABLE
在DESCRIBE中使用TABLE關鍵字用於擷取並返回表的結構。需注意,寬表引擎和時序引擎返回的表結構資訊並不完全相同。
對象名稱(identifier)
DESCRIBE語句中使用DATABASE關鍵字時預設identifier為資料庫名,DESCRIBE語句中使用TABLE關鍵字時預設identifier為表名。如果DESCRIBE中未使用DATABASE和TABLE關鍵字,預設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)。