按设备对齐(使用 ALIGN BY DEVICE):全部 intoItem 中指定的目标设备数和查询的设备数(即 FROM 子句中路径模式匹配的设备数)一致,且按照结果集设备的输出顺序一一对应。为每个目标设备指定的目标物理量数量要与查询结果集的列数(除时间和设备列外)一致,且按照表头从左到右的顺序一一对应。
2.3 例子
按时间对齐
IoTDB>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;
+
source target timeseries written
root.sg.d1.s1 root.sg_copy.d1.t1
root.sg.d2.s1 root.sg_copy.d2.t1
root.sg.d1.s2 root.sg_copy.d2.t2
root.sg.d2.s2 root.sg_copy.d1.t2
Total line number It costs s
IOTDB >SELECTcount(s1), last_value(s1)INTO root.sg.agg_${2}(count_s1, last_value_s1)FROM root.sg1.d1 GROUPBY([0,10000),10ms);
+--------------------------+-----------------------------+--------+| source column| target timeseries| written|+--------------------------+-----------------------------+--------+|count(root.sg.d1.s1)| root.sg.agg_d1.count_s1|1000|+--------------------------+-----------------------------+--------+|last_value(root.sg.d1.s2)| root.sg.agg_d1.last_value_s2|1000|+--------------------------+-----------------------------+--------+
Total line number =2 It costs 0.115s
以上语句将降采样查询的结果持久化存储到新序列中。
非对齐序列转对齐序列
对齐序列从 0.13 版本开始支持,可以通过该功能将非对齐序列的数据写入新的对齐序列中。
注意:建议配合使用 LIMIT & OFFSET 子句或 WHERE 子句(时间过滤条件)对数据进行分批,防止单次操作的数据量过大。
IOTDB >SELECT s1, s2 INTO ALIGNED root.sg1.aligned_d(s1, s2)FROM root.sg1.non_aligned_d WHEREtime>=0andtime<10000;
+--------------------------+----------------------+--------+| source column| target timeseries| written|+--------------------------+----------------------+--------+| root.sg1.non_aligned_d.s1| root.sg1.aligned_d.s1|10000|+--------------------------+----------------------+--------+| root.sg1.non_aligned_d.s2| root.sg1.aligned_d.s2|10000|+--------------------------+----------------------+--------+
Total line number =2 It costs 0.375s
以上语句将一组非对齐的序列的数据迁移到一组对齐序列
五、用户权限与配置参数
相关用户权限
用户必须有下列权限才能正常执行查询写回语句:
所有 SELECT 子句中源序列的 WRITE_SCHEMA 权限
所有 INTO 子句中目标序列 WRITE_DATA 权限
相关配置参数
select_into_insert_tablet_plan_row_limit
总结
Apache IoTDB 的 INTO 子句通过'查询即存储'的设计,实现了时序数据处理的高效性与易用性。通过类 SQL 语法降低使用门槛,配合变量占位符实现动态查询,在工业物联网等场景中成为时序数据处理的核心工具之一。掌握 INTO 子句的语法细节有助于理解其背后的设计哲学——让数据库自身成为数据处理的核心引擎。