更新日志
[0.54.0-public] - 2025-10-21
✨ 新增功能
- Java 21 支持 新增对 Java 21 的支持,添加了 JDK 21 配置文件和相关构 建配置
- 新数据类型支持 新增 GEOGRAPHY 和 BLOB 数据类型支持,扩展了数据处理能力
- AspectJ 支持 添加 AspectJ Maven 插件支持,为面向切面编程提供基础
- 类加载器增强 改进了类加载器在不同 Java 版本中的兼容性,添加了 getLoadedJars 方法
- Blob 类 新增 Blob 类,用于处理存储服务中的大对象引用
- GeographyObject 接口 添加 GeographyObject 接口,用于处理地理数据类型
- Proxy 支持 新增 ProxyConfig 类,支持 HTTP、HTTPS、SOCKS4、SOCKS5 等多种代理配置
- 增量读取支持 Table API 新增对增量读取的支持,支持基于版本或时间戳的增量数据读取
🐞 问题修复
- PartitionSpec 修复了分区规范解析问题,改进了分割逻辑
- 安全权限 移除了对 sun.security.util.SecurityConstants 的直接依赖,改用标准的 RuntimePermission
- 类加载器兼容性 修复了类加载器在不同 Java 版本中的兼容性问题
- OdpsOptions 修复了 OdpsOptions 实例化问题,确保正确传递 Odps 实例引用
📦 依赖升级
- aspectjrt:
1.8.9→1.9.7 - mockito-core:
1.10.8→4.11.0 - maven-shade-plugin:
3.2.1→3.5.1 - maven-compiler-plugin:
3.1→3.13.0(JDK 21) - maven-surefire-plugin:
2.22.2→3.2.5(JDK 21) - maven-javadoc-plugin:
2.10.4→3.11.2(JDK 21) - 移除了 org.codehaus.jackson:jackson-mapper-asl 依赖
[0.53.2-public] - 2025-09-11
🐞 问题修复
- LogView 修复了 LogView 主机配置并改进了版本处理逻辑
- UpsertRecord 修复了列名处理中的大小写敏感性问题
- CSVRecordParser 移除了掩盖解析错误的不必要 try-catch 块
- TableTunnel 增强了 upsert 操作中的错误处理并改进了 Arrow 选项配置
- ArrowWriterImpl 添加了 flush 方法实现以更好地管理资源
✨ 新增功能
- MaxStorageDownloadOption 新增对时间戳和日期时间单位的配置支持,以更好地处理数据类型
- SQLExecutorBuilder 优化了获取结果的配置并改进了线程管理
- BatchWriter 添加了默认的 flush 方法以更好地符合接口规范
- SessionRecordSetIterator 恢复了 SessionRecordSetIterator 类以保持向后兼容性
📄 文档更新
- 更新了附录文档并添加了 MaxCompute 类型的映射指南
[0.53.1-public] - 2025-08-20
✨ 新增功能
- SQLExecutorImpl 删除了内部"SessionRecordSetIterator"类并将其提取为独立类
📦 依赖升级
- snappy-java:
1.1.10.3→1.1.10.7 - guava:
32.1.1-jre→33.4.8-jre - netty-all:
4.1.86.Final→4.1.119.Final
[0.53.0-public] - 2025-07-25
✨ 新增功能
- VectorizedOutputer
新增
getWriteBytes()方法,支持获取写入字节数统计。 - TableBatchReadSession 新增基 于 JSON 的序列化/反序列化方法,提升数据交互灵活性。
- CreateProjectParam
新增
defaultQuota()方法,支持设置项目默认配额。 - Aliyun V4 签名
支持配置
corporation参数,适配专有云环境部署需求。 - AklessAccount 完整支持 V4 签名协议。
- TableTunnel 新增 ZSTD (Zstandard) 压缩算法支持,优化数据传输效率。
- MaxCompute Query Acceleration (MaxQA) 支持并发读取超大结果集,显著提升性能(注意:并发操作将增加内存消耗,需根据集群容量合理配置并发度)。
- Preview 功能 支持通过 Tunnel 执行标签(Tag)操作。
- InstanceTunnel
新增
getDownloadSession(String projectName, String instanceID, String sessionId)方法,简化下载会话获取流程。
🐞 问题修复
- 修复
Predicate对DateTime类型处理时未使用本地时区的问题,确保时区一致性。 - 修复
Table类在调用reloadExtended()时可能覆盖reload()数据的问题。
📦 依赖升级
- commons-codec:
1.13→1.18.1 - jackson-databind:
2.15.2→2.18.2 - commons-compress:
1.4→1.20 - Apache Arrow:
4.0.0→17.0.0 - 新增 zstd-jni 依赖:
1.5.7-2(支持 ZSTD 压缩)
[0.52.3-public] - 2025-06-14
🎉 新增功能
-
OdpsOptions 新增 Odps 实例级别的一些变量,可以通过
odps.options()获取。现有两个方法:setUseLegacyLogview= true/false/null 当为 true,使用 logview,当为 false,使用 jobinsight(logview v2),当为 null(默认值),智能判断当前 region 是否能够使用 jobinsight,如是使用 jobinsight,否则使用 logview。 ⚠️ 兼容性提示:此前版本默认使用的是 logview,更新到此版本后,获取logview时可能获取到 jobinsight 地址,注意这点以避免兼容性问题。setSkipCheckIfEpv2= true/false 默认为 false,在 0.51.7 版本中,getTable 等接口增加了对 EPv2 项目的支持,但会影响接口性能。可以通过将此配置设置 true,会跳过Epv2的项目,提高性能。
-
ArrayRecord 在主要的初始化 Record 场景,比如通过构造函数初始化ArrayRecord,通过Tunnel Session newRecord 方法生成 Record,都新增了 caseSensitive 参数,用来标识使用该 Record setByName 时,是否区分大小写。 ⚠️ 历史兼容说明:在 0.51.8 版本中,我们让 Record 不再区分大小写(因为 MaxCompute 引擎不区分大小写),但这会导致一些性能损失。因此在本版本,我们提供了方式来恢复原行为。
-
SchemaMismatchRuntimeException 新增了一种异常类型,来试图 try best 的告诉用户:在 Tunnel 写入过程中,传入的数据和表模式不匹配 可能是表模式发生了变化,请重建 Tunnel Session。该类是
IllegalArgumentException的子类。
[0.52.2-public] - 2025-06-03
问题修复
- CommandApi 修复了在 SQLExecutor 开启 CommandApi 功能时,在处理 desc extended table 返回结果中 Comment 字段错误的为 Boolean 类型的问题。
[0.52.1-public] - 2025-05-08
🎉 新增功能
- SQLExecutor
SQLExecutorBuilder 新增参数
skipCheckIfSelect(仅非 MaxQA 场景生效),默认为 false,当为 true 时,会跳过 select 语句的校验,提高极限性能。 可以在请求场景主要为查询语句时使用,在处理非查询语句时,处理延时会变长。
[0.52.0-public] - 2025-04-17
🎉 新增功能
-
TableAPI
TableWriteSessionBuilder新增enhanceWriteCheck参数,增强写入校验能力TableCreator新增Append2 Table预览功能(🚧 Preview)
-
DownloadSession
- 新增
enableMaxStorage配置,支持通过 StorageAPI 下载 Delta Table(🚧 Preview)
- 新增
-
MaxQA
- 实现 CSV 数据解析到强类型记录功能(
Parse CSV To Record) - 服务端 Ready 后,
getResult(非 Tunnel 模式)将返回类型化数据(原全量 String 类型)(🚧 Preview)
- 实现 CSV 数据解析到强类型记录功能(
-
SQL
- 新增
SQLTaskOption和CreateInstanceOption配置类,简化SQLTask.run()方法重载 - 支持通过正则表达式提交 Merge Task 作业
- 新增 UniqueId 机制,确保同 ID 作业幂等提交
- 新增
-
ObjectConverter
- 新增
BINARY_FORMAT_QUOTED_PRINTABLE格式解析支持
- 新增
🛠️ 功能优化
-
ArrowStreamRecordReader 重构类实现,支持将任意来源的
ArrowReader转换为RecordReader -
ArrayRecord
- 优化类型校验逻辑:
✅ 将
set方法可能抛出的ClassCastException改为IllegalArgumentException✅ 增强错误信息可读性 ✅ 避免 JVM 对异常的隐式优化(如错误信息被截断为 null)
- 优化类型校验逻辑:
✅ 将
[0.51.11-public] - 2025-03-18
主要改动
- 结构优化:
Instance类中ResultDescriptor子类由Map<String, String>升级为独立的 POJO 对象,专门适配 MCQA 2.0 场景 - 兼容保障:完全兼容旧版逻辑,现有代码无需修改即可正常运行
注意事项
- 未来服务端可能调整
ResultDescriptor数据格式,建议 MCQA 2.0 用户升级到本版本
[0.51.10-public] - 2025-03-11
功能增强
-
TableTunnel 指标支持 Upload/Download 方法新增指标收集能力 文档参考
-
TunnelBufferedReader 实现 新增
TunnelBufferedReader类,支持通过短连接下载表/实例数据 -
可排序数据结构 新增
ReorderableRecord和ReorderableStruct实体类 设计说明
[0.51.9-public] - 2025-02-26
问题修复
- 结构体字段转义修复
修复
TypeInfo中getName(true)方法未对嵌套结构体字段名添加反引号的问题
[0.51.8-public] - 2025-02-20
变更
-
Record
set(String columnName, Object value)方法现在会忽略 columnName 的大小写。getColumn方法返回的列名将始终为小写。⚠️ 兼容性提示: 注意,这项改动会影响 ArrayRecord 初始化和 setByName 时的性能,用户应当相应的性能测试,我们 在 0.52.3 版本中增加了开关来关闭这项功能。
功能
- Table 新增
getMetadataJson和getExtendedInfoJson方法 - Partition 新增
getMetadataJson,getExtendedInfoJson,getCdcSize,getCdcRecordNum方法 - CommandApi 增强 DescribeTableCommand,现在将额外返回
MetadataJson和ExtendedInfoJson字段 - PartitionSpec 改进构建失败时的报错信息,使报错更加明晰
[0.51.7-public] - 2025-02-13
功能
-
MCQA 在通过 InstanceTunnel 取结果,发生失败回退的场景,加入回退日志
-
EPV2 新增对 EPV2(External Project V2)的支持,包括
ListTable,ListSchema,DescribeTable等接口。⚠️ 兼容性提示:这会略微影响这些接口的性能(功能不受影响),需要用户注意,我们在 0.52.3 版本中增加了开关来关闭这项功能。