iotdb时序数据库数据迁移(保留历史数据)
·
对齐序列 ALIGNED TIMESERIES
官网手册
本次针对对齐序列手动创建时间,设置时间序列的类型都为 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.**
更多推荐

所有评论(0)