前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apache IoTDB 发布 0.10.0!

Apache IoTDB 发布 0.10.0!

作者头像
Apache IoTDB
发布2020-09-27 10:22:20
9150
发布2020-09-27 10:22:20
举报
文章被收录于专栏:Apache IoTDB

经历了半年的时间,0.10.0 大版本终于发布了!下面来看看这个版本的功能吧~

正文 2652 字,预计阅读时间 7 分钟。

发布手册

参考:https://raw.githubusercontent.com/apache/incubator-iotdb/release/0.10.0/RELEASE_NOTES.md

新功能

  • 查询最新数据点,如 select last * from root
  • 新的 Group by 语法,例如 select avg(s1) from root.sg.d1.s1 GROUP BY ([1, 50), 5ms),每个区间可 前开后闭 或 前闭后开
  • 支持 GroupByFill 查询,在 group by 查询结果上补空值,如 select last_value(s1) from root.sg.d1 GROUP BY ([1, 10), 2ms) FILL(int32[previous])
  • 增加 PrefiousUntilLast 填充规则,仅填充到最新时间点为止
  • 新的 disable align 查询,不按照时间对齐结果集,如 select * from root disable align
  • align by device 查询中 select 可选择不存在的 Measurement 和常量
  • 增加 IN 谓词,如 where time in (1,2,3)
  • Show Timeseries 时允许使用 limit & offset
  • TsFile 集成 Apache Flink
  • IoTDB 集成 Apache Flink
  • 增加 MQTT 协议,默认关闭,可在配置文件中开启
  • 增加 Measurement 的别名
  • 可修改 Measurement 别名:upsert alias
  • 为时间序列元数据增加标签和属性
  • 可修改时间序列的标签和属性
  • 在时间序列路径中支持特殊字符:-/+&%$#@
  • 路径可以使用数字开头的字符串,如 root.sg.12a
  • 允许用户指定非默认的JAVA_HOME,允许JAVA_HOME带空格
  • 允许在 JDBC URL 中使用域名
  • 允许加载外部TsFile
  • 支持通过 show flush task info 查看 flush 任务状态(运维用)
  • 将 Align by device 查询中的值过滤改为设备分别过滤
  • 增加 0.8.1、0.9.0、0.9.1 的 Dockerfile
  • 增加 RandomOnDiskUsableSpaceStrategy 多目录选择策略
  • Session 中增加 insertRecords 接口
  • Session 中增加 test 方法,可测试客户端和网络传输耗时
  • Session 中增加批量创建时间序列功能
  • Session 中增加判断时间序列是否存在的方法
  • Session 中增加 JDBC 的遍历方式,避免构造RowRecord
  • 在 CLI 中分批打印结果集
  • 在 Grafana 中增加指定时间精度
  • 在 Grafana 中支持 TEXT 类型数据展示
  • 使用脚本启动 IoTDB 时可手动指定配置文件
  • 热加载配置文件
  • 在 SQL 中增加 flush/merge 语法
  • 增加清空查询 cache 命令:clear cache
  • 0.9 版本可在线升级为 0.10
  • JDBC 支持 OSGI
  • 打印 resource 的工具支持指定单一 resource 文件
  • count timeseries group by level=x 查询默认以 root 为前缀
  • 增加基于 OpenID 的 JWT 访问连接(代替用户名密码)
  • 可根据系统内存比例分配内存大小
  • 可配置自动注册时间序列时如何推断不同类型的 String 值
  • 可配置时间序列的最长缓存点数 avg_series_point_number_threshold
  • 在 insert 方法中支持某一列写入失败不影响其他列
  • 增加 NaN 的 Double 类型数据格式

不兼容旧版本的修改

  • 修改 last 和 first 聚合函数为 last_value 和 first_value
  • 更新 RPC 版本为 V2,不可连接 0.9 系列
  • TsFile 版本更新为第 2 版
  • Session 中方法改名:insertBatch-> insertTablet, insertInBatch -> insertRecords, insert -> insertRecord
  • 统一各种查询中 level 的含义,root 为 0 层
  • Client 改名为 Cli

其他修改

  • 语法解析从 Antlr 3 升级为 4
  • 查询列为空时不再抛异常
  • 统一 timestamp 和 time,都可以用
  • 官网增加设计文档
  • TsFile 尾部增加索引,优化单设备几十万测点的管理和查询
  • Session 中可通过 isNull 判断某个 Field 是否为空
  • PreviousFill 和 LinearFill 性能优化
  • 优化 Count timeseries 查询性能,并且可不加前缀,默认root
  • 优化 TsFileResource 的内存占用
  • 限制 log 日志文件最大数量和大小

Bug 修复

  • 【IOTDB-125】一边删除时间序列元数据,一遍写入数据,可能写入成功但是查询不到,再注册序列又可以查询到写入的数据。
  • 【IOTDB-185】windows 环境由于路径存在空格运行 start-client.bat 失败
  • 【IOTDB-370】修复解析sql的并发问题
  • 【IOTDB-392】修复导出 CSV
  • 【IOTDB-425】无法修改 root 密码
  • 【IOTDB-470】0 字节 TsFile 引发的 IllegalArgumentException
  • 【IOTDB-529】Group by 中不能用 NOW()
  • 【IOTDB-531】Grafana 可视化 boolean 的异常
  • 【IOTDB-643】文件系统使用 HDFS 时的并发查询报 BufferUnderflowException
  • 【IOTDB-692】修复数据合并丢失数据
  • 【IOTDB-735】并发自动创建时间序列报空指针异常
  • 【IOTDB-738】修复 Measurement 存在空格时写入出现空指针

版本升级

0.10 的 数据文件格式升级了,先说如何从 0.9 升级到 0.10。可参考 http://iotdb.apache.org/Download/

(1)0.9 版本停止数据写入

(2)启动 CLI,执行 flush 命令,执行完成后关闭 server

(3)下载 0.10 版本,将配置文件中的各个目录指向 0.9 的各目录

(4)启动 0.10 版本,0.9 的数据即可查询

(5)客户端更新至 0.10 版本,即可继续写入

推荐提前备份数据。

总结

0.10 主要升级了查询引擎,为之后扩展查询功能打下了坚实的基础。同时规范了很多代码,我是盯着 PR 一个一个合进去的,亲眼见证了 IoTDB 的成长和完善(0.10 版本我最喜欢的功能是最新点查询)。透露一下,下个大版本会大幅提升查询性能,完善内存控制,届时各种 OOM 就基本不会遇到了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Apache IoTDB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档