diff --git a/documentation/tdenginedocs-cn/super-table/index.html b/documentation/tdenginedocs-cn/super-table/index.html index 13e5cdd17370a1bc3a2e6659c8f529bed23eaefa..efc6fdace07db522075db33a58a9e6c46a313050 100644 --- a/documentation/tdenginedocs-cn/super-table/index.html +++ b/documentation/tdenginedocs-cn/super-table/index.html @@ -11,8 +11,8 @@ tags (location binary(20), type int)
为某个采集点创建表时,可以指定其所属的STable以及标签的值,语法如下:
CREATE TABLE <tb_name> USING <stb_name> TAGS (tag_value1,...)
沿用上面温度计的例子,使用超级表thermometer建立单个温度计数据表的语句如下:
-create table t1 using thermometer tags (‘beijing’, 10)
-上述SQL以thermometer为模板,创建了名为t1的表,这张表的Schema就是thermometer的Schema,但标签location值为‘beijing’,标签type值为10。
+create table t1 using thermometer tags (‘beijing', 10)
+上述SQL以thermometer为模板,创建了名为t1的表,这张表的Schema就是thermometer的Schema,但标签location值为'beijing',标签type值为10。
用户可以使用一个STable创建数量无上限的具有不同标签的表,从这个意义上理解,STable就是若干具有相同数据模型,不同标签的表的集合。与普通表一样,用户可以创建、删除、查看超级表STable,大部分适用于普通表的查询操作都可运用到STable上,包括各种聚合和投影选择函数。除此之外,可以设置标签的过滤条件,仅对STbale中部分表进行聚合查询,大大简化应用的开发。
TDengine对表的主键(时间戳)建立索引,暂时不提供针对数据模型中其他采集量(比如温度、压力值)的索引。每个数据采集点会采集若干数据记录,但每个采集点的标签仅仅是一条记录,因此数据标签在存储上没有冗余,且整体数据规模有限。TDengine将标签数据与采集的动态数据完全分离存储,而且针对STable的标签建立了高性能内存索引结构,为标签提供全方位的快速操作支持。用户可按照需求对其进行增删改查(Create,Retrieve,Update,Delete,CRUD)操作。
STable从属于库,一个STable只属于一个库,但一个库可以有一到多个STable, 一个STable可有多个子表。
@@ -84,27 +84,27 @@ tags (location binary(20), type int)CREATE TABLE thermometer (ts timestamp, degree double)
TAGS(location binary(20), type int)
假设有北京,天津和上海三个地区的采集器共4个,温度采集器有3种类型,我们就可以对每个采集器建表如下:
-CREATE TABLE therm1 USING thermometer TAGS (’beijing’, 1);
-CREATE TABLE therm2 USING thermometer TAGS (’beijing’, 2);
-CREATE TABLE therm3 USING thermometer TAGS (’tianjin’, 1);
-CREATE TABLE therm4 USING thermometer TAGS (’shanghai’, 3);
+CREATE TABLE therm1 USING thermometer TAGS ('beijing', 1);
+CREATE TABLE therm2 USING thermometer TAGS ('beijing', 2);
+CREATE TABLE therm3 USING thermometer TAGS ('tianjin', 1);
+CREATE TABLE therm4 USING thermometer TAGS ('shanghai', 3);
其中therm1,therm2,therm3,therm4是超级表thermometer四个具体的子表,也即普通的Table。以therm1为例,它表示采集器therm1的数据,表结构完全由thermometer定义,标签location=”beijing”, type=1表示therm1的地区是北京,类型是第1类的温度计。
注意,写入数据时不能直接对STable操作,而是要对每张子表进行操作。我们分别向四张表therm1,therm2, therm3, therm4写入一条数据,写入语句如下:
-INSERT INTO therm1 VALUES (’2018-01-01 00:00:00.000’, 20);
-INSERT INTO therm2 VALUES (’2018-01-01 00:00:00.000’, 21);
-INSERT INTO therm3 VALUES (’2018-01-01 00:00:00.000’, 24);
-INSERT INTO therm4 VALUES (’2018-01-01 00:00:00.000’, 23);
+INSERT INTO therm1 VALUES ('2018-01-01 00:00:00.000', 20);
+INSERT INTO therm2 VALUES ('2018-01-01 00:00:00.000', 21);
+INSERT INTO therm3 VALUES ('2018-01-01 00:00:00.000', 24);
+INSERT INTO therm4 VALUES ('2018-01-01 00:00:00.000', 23);
查询位于北京(beijing)和天津(tianjing)两个地区的温度传感器采样值的数量count(*)、平均温度avg(degree)、最高温度max(degree)、最低温度min(degree),并将结果按所处地域(location)和传感器类型(type)进行聚合。
SELECT COUNT(*), AVG(degree), MAX(degree), MIN(degree)
FROM thermometer
-WHERE location=’beijing’ or location=’tianjing’
+WHERE location='beijing' or location='tianjin'
GROUP BY location, type
查询仅位于北京以外地区的温度传感器最近24小时(24h)采样值的数量count(*)、平均温度avg(degree)、最高温度max(degree)和最低温度min(degree),将采集结果按照10分钟为周期进行聚合,并将结果按所处地域(location)和传感器类型(type)再次进行聚合。
SELECT COUNT(*), AVG(degree), MAX(degree), MIN(degree)
FROM thermometer
-WHERE name<>’beijing’ and ts>=now-1d
+WHERE name<>'beijing' and ts>=now-1d
INTERVAL(10M)
GROUP BY location, type
回去