Apache IoTDB v1.2.2 发布|增加 flink-sql-connector、tsfile 文件级级联传输等功能

Release Announcement

  Version 1.2.2  

Apache IoTDB v1.2.2 已经发布,主要增加了 flink-sql-iotdb-connector 插件、tsfile 文件级级联传输、count_time 聚合函数等新特性,优化了 Limit & Offset 查询性能、ConfigNode 重启逻辑等,并提升压缩效果、删除操作效率、对齐序列合并速度,修复部分产品 bug 和性能问题。

6b04a0cc7e46e2342eb821f12cc82969.png

欢迎在我们的网站下载最新版本:

https://iotdb.apache.org/Download/

完整的 Release Notes 可参考此处:

https://dlcdn.apache.org/iotdb/1.2.2/RELEASE_NOTES.md

当前 Release 可在此处下载:

http://iotdb.apache.org/Download

JDBC driver, session SDK, TsFile SDK, Spark-connector, Hadoop-connector, Hive-connector 以及 Flink-connector 可在此处查询:

https://search.maven.org/search?q=3Dg:org.apache.iotdb

IoTDB server 的 Docker image 在此处查找:

https://hub.docker.com/r/apache/iotdb

Python API 可在此处查找:

https://pypi.org/project/apache-iotdb/

Release Notes

## New Features & Improvements

  • 新增 flink-sql-iotdb-connector 插件

  • 数据同步模块新增 tsfile 文件级级联传输

  • 新增 count_time 聚合函数,支持统计结果集行数

  • RestAPI 新增 insertRecords 批量写入方法

  • 优化 Limit & Offset 查询性能

  • 优化 ConfigNode 重启逻辑,重启时不依赖 Seed ConfigNode 在线

  • 将 INT32 和 INT64 的默认编码方法由 RLE 更改为 TS_2DIFF,提升压缩效果

  • 提升删除操作效率

  • 合并兼容同序列不同编码,对齐序列合并速度提升 6 倍

  • Pipe 框架支持多 NodeUrl 及容错

## Bug Fixes

  • 修复 ConfigNode 并发回滚过程中的死锁问题

  • 修复插入大批量数据时 DataPartition 分配错误

  • 修复 IoTConsensus 中 Thrift AsyncServer 连接超时无效的问题

  • 修复使用关键字创建时间序列时出现异常

  • 修复 UDF 部分临时文件夹未删除问题

  • 修复 Pipe 框架 hybrid 模式下存在可能提前上报进度的情况

c809b3d414f3a64a1936bc47a0e936f0.gif

作为全球性开源项目,截至目前,Apache IoTDB 已拥有 260 名贡献者、4.0K Stars、936 Forks,9665 commits。我们为大家提供了参与指南,欢迎越来越多的小伙伴助力 Apache IoTDB 项目的不断发展与前进。

欢迎迈出加入 Apache IoTDB 社区的第一步!

QQ群:659990460

微信群:添加 IoTDB 小助手(微信公众号:apache_iotdb)

GitHub仓库:

https://github.com/apache/iotdb

官网:http://iotdb.apache.org/

更多内容推荐:

了解如何使用 IoTDB 企业版

0e7f313610c722fa0d6d4815086fcddb.gif

点击左下方阅读原文,下载最新版本

你问的是: > **我可以在 Flink 1.17.2 环境中使用 `org.apache.flink:flink-sql-connector-elasticsearch7:3.0.0-1.16` 吗?** --- ### ✅ 简短结论: **可以,但存在风险,不推荐用于生产环境。** 它可能能“跑起来”,但在某些场景下会出错(如类找不到、方法不存在等)。 --- ## 🔍 一、这个 JAR 是什么? ```xml <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-sql-connector-elasticsearch7</artifactId> <version>3.0.0-1.16</version> </dependency> ``` - 这是 **Flink 官方为 Flink 1.16 构建的 Elasticsearch 7 connector** - 基于 Flink 1.16 的 Table API 和 Runtime 编译 - 发布时间约为 2022 年末 ~ 2023 年初 📌 注意命名变化: - 老版本叫 `flink-connector-elasticsearch7` - 新版本改名为 `flink-sql-connector-elasticsearch7`(更强调 SQL 支持) --- ## ⚠️ 二、为什么在 Flink 1.17.2 中用它有风险? 虽然 Flink 的 API 大体兼容,但从 1.16 → 1.17 仍然有一些 **内部变更或废弃接口调整**,可能导致以下问题: ### ❌ 常见报错示例: ```bash java.lang.NoSuchMethodError: org.apache.flink.table.factories.FactoryUtil.createTableSink(...) ``` ```bash java.lang.NoClassDefFoundError: org/apache/flink/table/connector/format/FormatFactory ``` ```bash Caused by: java.lang.LinkageError: loader constraint violation: loader 'platform' previously initiated loading for a class with the same name ``` 这些错误通常是因为: - Flink 1.17 修改了 `FactoryUtil`、`FormatFactory`、`DynamicTableFactory` 等核心类 - 而你的 connector 是基于旧版编译的,调用了已被修改的方法签名 --- ## ✅ 三、什么情况下“勉强可用”? 如果你的应用满足以下条件,**也许可以临时运行**: | 条件 | 说明 | |------|------| | ✅ 使用简单 DDL | 如 `CREATE TABLE ... WITH ('connector' = 'elasticsearch-7', ...)` | | ✅ 不涉及复杂格式 | 只用 `'format' = 'json'`,且依赖内置 json 实现 | | ✅ 不自定义工厂类 | 没有扩展 `Elasticsearch7DynamicTableFactory` 等 | |Flink 版本是 1.17.x 而非 1.18+ | 1.17 和 1.16 更接近 | 👉 在这种“最简路径”下,由于大部分代码逻辑未变,JVM 可以加载并执行。 但这属于 **侥幸运行(works by accident)**,不是保证行为。 --- ## 📦 四、正确做法:选择匹配版本或自行构建 ### ✅ 推荐方案 1:使用与 Flink 1.17 兼容的构建(最佳) 👉 使用主干分支 + 自定义版本构建: ```bash git clone https://github.com/apache/flink-connector-elasticsearch.git cd flink-connector-elasticsearch mvn clean package -DskipTests \ -pl flink-sql-connector-elasticsearch7 \ -am \ -Dflink.version=1.17.2 \ -Dscala.binary.version=2.12 ``` ✅ 输出: ``` flink-sql-connector-elasticsearch7/target/flink-sql-connector-elasticsearch7-3.1-SNAPSHOT.jar ``` 这个才是真正的“为 1.17 构建”的版本。 --- ### ✅ 推荐方案 2:下载预编译 SNAPSHOT(次优但快) 从 Apache 快照仓库下载: 🔗 https://repository.apache.org/content/repositories/snapshots/org/apache/flink/flink-sql-connector-elasticsearch7/3.1-SNAPSHOT/ 文件名: ``` flink-sql-connector-elasticsearch7-3.1-SNAPSHOT.jar ``` 放入 `$FLINK_HOME/lib/` 同时确保加入: ```bash flink-json-1.17.2.jar ``` --- ### ❌ 不推荐方案:强行混用不同版本 | 组合 | 风险等级 | 建议 | |------|----------|------| | `connector-3.0.0-1.16` + `flink-1.17.2` | ⚠️ 中高风险 | 仅限测试 | | `connector-3.1-SNAPSHOT` + `flink-1.17.2`(重编译) | ✅ 安全 | 推荐 | | `connector-3.0.0-1.15` + `flink-1.17.2` | ❌ 高风险 | 禁止 | --- ## ✅ 五、如何验证是否兼容? 启动后执行一段写入任务,观察日志是否有: - `NoSuchMethodError` - `ClassNotFoundException` - `IncompatibleClassChangeError` - `UnsupportedOperationException` 如果有以上任意一种,说明版本不兼容,必须更换 JAR。 --- ## ✅ 总结:回答你的问题 > **“我使用 `org/apache/flink/flink-sql-connector-elasticsearch7/3.0.0-1.16` 可以吗?”** 🟨 **答案是:** - ✅ 技术上**可能可以运行**(尤其简单场景) - ⚠️ 但存在**兼容性隐患**,容易在升级、扩容、异常恢复时失败 - 🚫 **不建议用于生产环境** - ✅ 正确做法是:使用 `main` 分支重新构建一个针对 `1.17.2` 的版本 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apache IoTDB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值