[0.56.1-public] - 2026-02-04
🐛 问题修复
- [CVE]: 更新 commons-io 至 2.20.0 - 通过将 commons-io 库升 级到 2.20.0 版本,修复了安全漏洞。
- [CVE]: 使用 at.yawk.lz4 替代 org.lz4.pure-java - 将 org.lz4.pure-java 依赖替换为 at.yawk.lz4,以解决安全漏洞问题。
[0.56.0-public] - 2026-01-30
✨ 新功能
- [Account]: 重构认证体系,采用新的
Credentials 类替代旧版 Credential,并新增 getRegionId() 方法支持区域 ID 配置,使认证机制更加灵活和标准化。
- 相关 API:
Account.getCredentials(), Account.getRegionId()
- [Instance]: 增强 MaxQA 查询结果状态管理,新增
SelectResultStatus 枚举以区分查询结果的完整状态(完整/截断/无结果),便于用户判断数据是否完整返回。
- 相关 API:
Instance.ResultDescriptor.SelectResultStatus, Instance.ResultDescriptor.getSelectResultStatus()
- [ProxyConfig]: 新增 Netty DNS 解析器控制选项,允许通过
withDisableNettyLocalResolver() 禁用本地 Netty DNS 解析器,适用于需要代理服务器进行 DNS 解析的场景。
- 相关 API:
ProxyConfig.Builder.withDisableNettyLocalResolver()
🚀 功能增强与性能优化
- [Arrow]: 优化 Arrow 数据读取器,统一使用
CommonsCompressionFactory 处理压缩数据,提升大规模数据读取性能和兼容性。
- [Tunnel]: 改进 Tunnel Endpoint 解析逻辑,优先使用
odps.getTunnelEndpoint() 配置项,简化端点配置流程。
- [RestClient]: 优化重试等待时间计算,仅使用连接超时时间而非连接+读取超时时间总和,使重试策略更加精准。
- [TableSchema]: 新增批量分区列配置方法
withPartitionColumns(),简化多分区列的创建流程。
- 相关 API:
TableSchema.Builder.withPartitionColumns()
🐛 问题修复
- [Instance]: 修复任务失败时的错误处理,在
waitForSuccess() 和 isSelect() 方法中增加 checkTaskFailed() 检查,确保在任务失败时能及时抛出异常并提供详细的失败信息。
📦 依赖更新
- 升级:
commons-io: 2.11.0 → 2.14.0
- 替换:
commons-lang:2.6 → org.apache.commons:commons-lang3:3.18.0
- 升级:
io.netty:netty-all: 4.1.119.Final → 4.1.130.Final
- 新增:
org.locationtech.jts:jts-core:1.19.0
- 替换:
com.aliyun:aliyun-java-auth:0.2.16-beta → com.aliyun:credentials-api:1.0.0
[0.55.1-public] - 2026-01-22
🐛 问题修复
- Arrow 字典解码
修复了 ArrowBatchNonReusedReader 中字典解码未使用压缩工厂的问题,提升 Arrow 数据读取的稳定性和性能。
[0.55.0-public] - 2025-12-12
✨ 新增功能
- Account 凭证信息获取
所有 Account 实现类新增
getCredential() 方法,支持获取当前账号的 AccessKey ID、AccessKey Secret 和 Security Token 信息,便于账号信息管理和安全审计。
- Tunnel 动态分区写入
新增
DynamicPartitionRecordPack 和 PartitionRecord,支持单次写入多个分区,大幅提升多分区数据写入效率。通过 TableTunnel.StreamUploadSession.Builder.setDynamicPartition() 启用。
- Tunnel Arrow 缓冲读取器
为非 Delta 表新增基于 Arrow 格式的高性能缓冲读取能力,优化大规模数据读取性能。通过
DownloadSession.openBufferedArrowRecordReader() 使用。
- Tunnel 批次追踪
FlushResult 接口新增 getBatchId() 方法,StreamUploadSession 新增 getLastBatchId() 和 getLastBatchCommitTime() 方法,支持追踪 flush 批次 ID 和提交时间。
- Arrow 异步流式读取
新增
ArrowStreamAsyncReader 类,支持在独立线程中异步读取 Arrow 数据流,提升 IO 密集型场景下的读取性能。通过 ReaderOptions.Builder.withAsync() 和 withAsyncQueue() 配置。
- 性能监控指标
新增
RateLimitCost 和 ServerProcessCost 两个计数器指标,用于监控限流成本和服务器处理时间,帮助用户优化读取性能。
- Quota 自动扩容配置
Quota 类新增 autoScaleCPULimit、autoScaleMemoryLimit 和 autoScaleGPULimit 字段,支持获取项目的自动扩容配额信息。
- Project 属性获取改进
Project.getAllProperties() 方法现在会从服务器获取包含从 group 继承来的完整配置信息,提供更全面的项目属性视图。
🚀 功能优化
- Arrow 字典解码优化
ArrowBatchNonReusedReader 和 ArrowBatchReusedReader 改进了字典编码的处理逻辑,修复了字典解码未使用压缩工厂的问题,提升 Arrow 数据读取的稳定性和性 能。
- TunnelRecordReader 增强
DownloadSession 新增 openRecordReader() 方法,支持通过 sizeLimit 参数控制读取的数据大小限制。
- 缓冲读取器参数优化
openBufferedRecordReader() 方法新增 bufferSize 参数,允许用户更精细地控制缓冲区大小,优化内存使用。
- 按原始大小读取支持
DownloadSession 新增 isSupportReadByRawSize() 方法,支持判断当前会话是否支持按原始数据大小进行读取。
🐛 问题修复
- Instance 异步任务结果获取
修复了在异步场景下调用
getTaskResult() 方法时,如果任务结果列表为空会返回 null 的问题,现在会抛出明确的异常信息。
- Arrow 字典编码字段处理
改进了 Arrow Reader 对嵌套结构中字典编码字段的处理逻辑,确保字典数据正确加载和解码。
[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 类以保持向后兼容性
📄 文档更新