​​​​​​​​​​​​​​​​​​​​​对齐序列 ALIGNED TIMESERIES

官网手册

SQL手册 | IoTDB Website

本次针对对齐序列手动创建时间,设置时间序列的类型都为 float,后面因为设备添加了点位,上报的数据被自动写入对齐序列,自动创建的时间序列类型是 double 类型,为了类型能统一,切记一定要先在数据库中创建时间序列,再添加设备的点位读取,否则就要手动修改自动创建的时间序列类型,由于官方并不支持直接修改时间序列的类型,下面是变相修改时间序列类型的步骤

--数据迁移(保留历史数据)
--一定要先创建时间序列,再添加硬件读取的点,否则就会自动创建 DOUBLE 类型的时间序列,需要费劲来修改时间序列的类型为FLOAT​


-- 1. 创建新序列  用于备份之前的 DOUBLE 数据

CREATE ALIGNED TIMESERIES root.sg.d1(FT_72002A1_new FLOAT)

-- 2. 查看目前已经有多少数据

SELECT FT_72002A1 
FROM root.sg.d1

SELECT count(FT_72002A1) 
FROM root.sg.d1

-- 3. 转换并迁移数据 转移后记得停掉Java服务,否则又会自动创建时间序列
 
SELECT cast(FT_72002A1 AS FLOAT)
INTO root.sg.d1(FT_72002A1_new) 
FROM root.sg.d1

--官网资料
--https://iotdb.apache.org/zh/UserGuide/latest/SQL-Manual/SQL-Manual.html#_4-10-%E6%9F%A5%E8%AF%A2%E5%86%99%E5%9B%9E-select-into
--select s1, s2 
--into root.sg_copy.d1(t1), root.sg_copy.d2(t1, t2), root.sg_copy.d1(t2) 
--from root.sg.d1, root.sg.d2;

-- 4. 删除旧的 DOUBLE 序列

DELETE TIMESERIES root.sg.d1.FT_72002A1

-- 5. 创建新的 FLOAT 序列(这个时候可以正常写入数据了 记得要去启动java服务)

CREATE ALIGNED TIMESERIES root.sg.d1(FT_72002A1 FLOAT)

-- 6. 把备份的数据还原回来

SELECT FT_72002A1_new
INTO root.sg.d1(FT_72002A1) 
FROM root.sg.d1

-- 7. 验证查看数据

SELECT FT_72002A1
FROM root.sg.d1

SELECT count(FT_72002A1) 
FROM root.sg.d1

-- 8. 删除用于备份的序列

DELETE TIMESERIES root.sg.d1.FT_72002A1_new

-- 9. 查看时间序列

SHOW TIMESERIES root.sg.d1.**

更多推荐