更新日志
[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
方法返回的列名将始终为小写。
功能
- Table 新增
getMetadataJson
和getExtendedInfoJson
方法 - Partition 新增
getMetadataJson
,getExtendedInfoJson
,getCdcSize
,getCdcRecordNum
方法 - CommandApi 增强 DescribeTableCommand,现在将额外返回
MetadataJson
和ExtendedInfoJson
字段 - PartitionSpec 改进构建失败时的报错信息,使报错更加明晰
[0.51.7-public] - 2025-02-13
功能
- EPV2 新增对 EPV2(External Project V2)的支持,包括
ListTable
,ListSchema
,DescribeTable
等接口 - MCQA 在通过 InstanceTunnel 取结果,发生失败回退的场景,加入回退日志
[0.51.6-public] - 2025-01-26
修复
- TypeInfo 修复了当
StructTypeInfo
嵌套在ArrayTypeInfo
或MapTypeInfo
内时,getTypeName(true)
方法不会对嵌套内字段名进行 quote 的问题。
[0.51.5-public] - 2025-01-14
修复
- MCQA2 修复了 MCQA2 作业,可能会使用tunnel取结果时,无法正确抛出异常的问题
[0.51.4-public] - 2025-01-14
功能
- MCQA2 增加若干项优化,提升了 MCQA2 作业的执行效率。MCQA2 作业的模式变为
ExecuteMode.INTERACTIVE_V2
,与 MCQA1 的ExecuteMode.INTERACTIVE
区别开 - SQLExecutor 新增
getExecuteMode
方法,用于获取作业执行模式
变更
- UpsertStream 在 0.51.0 版本,修改了
close
方法的函数签名(不再抛出TunnelException
),在本版本中恢复,以保证接口兼容性。 - ClusterInfo 在 0.51.0 版本,toString 方法有所变更,在本版本中恢复,以保证接口兼容性。
- TunnelRetryStrategy,ConfigurationImpl 类在 0.48.6 版本被移除,在本版本中恢复(但不会起到任何效果!),以保证接口兼容性。
[0.51.3-public] - 2025-01-07
功能
- MCQA2 SQLExecutorImpl 新增
setProject
方法,用于指定提交作业使用的默认项目
变更
- StreamTunnel 在调用 append 方法时,当 Record 列数量大于 Session Schema 列数量,现在将抛出
SchemaMismatchException(extend IOExcption)
,而不是抛出IOException
,并优化了错误信息
[0.51.2-public] - 2024-12-20
功能
- Authorization 引入
credential-java
鉴权包,现在能够使用AlibabaCloudCredentialsProvider
进行鉴权 - StreamUploadSession 新增对 Slot 更新的感知和自动重试逻辑
- table-api 引入
TableRetryHandler
类,为table-api
添加重试逻辑 - udf 中
InputSplitter
新增方法setLimit
变更
- TypeInfo
StructTypeInfo
新增方法getTypeName(boolean quote)
,在0.51.0-public (rc0)
版本,StructTypeInfo
默认会对字段名使用反引号进行 quote,我们怀疑这项变更对用户有影响,因此决定恢复原行为(默认不进行quote) 而是当用户需要 quote 时,可以调用getTypeName(true)