2024年09月26日— 0.8 Lakehouse Platform 产品更新发布说明
本次发布(Release 2024.09.26),我们引入了一系列新功能、增强特性以及修复项。请注意,这些更新将分阶段逐步推送至以下区域,更新将在发布日起一周至两周内完成,具体时间依据您所在的区域而定。
- 阿里云上海区
- 腾讯云上海区
- 腾讯云北京区
- 腾讯云广州区
- 亚马逊北京区
- 国际站-阿里云-新加坡区
- 国际站-AWS-新加坡区
新功能特性
【预览】支持Clone功能
Lakehouse CREATE CLONE 功能允许你创建现有对象的副本,而无需实际复制数据。这种零副本克隆(Zero Copy Cloning)使用元数据引用原始数据,从而实现快速创建克隆,并且不会消耗额外的存储空间。支持普通表和动态表克隆
联邦查询更新
【预览】外部表新增支持读取Hudi格式
本次发布支持创建和使用Hudi格式的外部表。创建外部表时,支持使用CONNECTION对象定义外部表的服务连接信息。
【预览】Hive联邦支持写入
支持写入:Hive联邦功能现已支持写入操作,使用户能够将数据写入不同的数据存储系统。通过Hive联邦,用户可以使用统一的SQL接口访问和写入多个数据源,简化了数据管理和操作。
External Schema支持使用Connection
之前,External Schema的连接参数需要填写在PROPERTIES中。增强后,这些参数可以在Connection中填写。通过使用Connection,用户无需将身份认证信息以明文形式暴露,从而确保数据的安全性。Connection创建一次后,下游可以多个对象使用,提高了配置的复用性和管理的便捷性。
导入导出更新
COPY INTO <location>功能增强
- 支持PURGE=TRUE参数:当设置PURGE=TRUE时,在加载过程中删除已成功加载的文件。
- 支持
OVERWRITE
参数:使用OVERWRITE
参数时,现有表数据将被清空,然后导入新的数据。OVERWRITE
具有原子性,只有在导入成功后才会清空表数据并写入新数据。
Pipe功能增强
- 新增模式:即使在没有对象存储消息服务通知的情况下,Pipe也能检测到新增文件并进行同步。
- 导入历史记录:Pipe读取对象存储的功能还支持
load_history
函数,用于记录成功导入的文件。 - Pipe过滤:新增了Pipe过滤功能,用户可以通过
query tag
来过滤Pipe作业历史。
虚拟计算集群
- GP型动态扩容能力:支持在任务出现资源等待和排队情况时进行动态扩容,解决了无法纵向扩容(增加单集群实例CPU和内存数)的限制。这有助于应对GP VC上负载波动大的情况,避免按照峰值购买VC资源的不经济性,同时满足负载波峰的需求。
- VC SIZE设置:支持设置CRU数值大小。CRU是计算资源的计量单位,1 CRU相当于云厂商云服务器资源8核运行1小时所提供的算力。
增量计算更新
TABLE_CHANGES函数增强
- 默认行为:TABLE_CHANGES函数会返回在指定偏移量之后和当前时间之前提交的事务所造成的变化,但不会返回具体的操作明细。例如,如果在两个点位之间先发生了插入(insert),然后发生了删除(delete),默认情况下返回结果为空。
- 增强功能:通过增加
map('TABLE_STREAM_MODE', 'ORIGINAL')
参数,TABLE_CHANGES函数会返回两个点位之间的所有变化明细。例如,上述案例中的插入和删除操作都会被返回。
SQL查询优化
小文件优化
- 自动合并小文件:在执行写入操作(如INSERT、UPDATE、DELETE、COPY语句)前,通过设置set cz.sql.compaction.after.commit=true;,可以自动触发小文件合并。这有助于提高后续查询的效率,因为可以避免读取大量小文件。请注意,启用此设置后,INSERT、UPDATE、DELETE、COPY语句的执行时间可能会增加。
Preload Cache
- AP型计算集群(ANALYTICS PURPOSE VIRTUAL CLUSTER)支持查看缓存状态
SQL 能力更新
创建表时支持指定默认值和生成列
- 在本SQL引擎中,创建内部表时,您现在可以为列指定默认值(defalult value)或定义生成列(generated column),以自动化数据填充和处理。这使得数据管理更加高效,特别是在处理分区表时。目前不支持实时写入接口写入,如果实时接口没指定该值则会为null不会自动填充该值。
支持向量索引
采用 HNSW(Hierarchical Navigable Small World)算法构建向量索引。用来加速向量检索。
数据类型
Array类型:可以使用常量格式如 [1, 2, 3]
来定义数组,当字符为上述格式时,会被识别为数组类型。
Vector类型:Lakehouse 提供了 VECTOR 类型来存储这些转化后的向量,构建索引可以提高向量搜索性能
函数支持
函数名称 | 功能 |
---|---|
median | 根据组的值计算出的中值 |
group_concat | 将组中的值连接成一个字符串。 |
multiif | 用于在查询中更紧凑地编写 CASE 运算符. |
ceiling | 返回大于或等于指定数的最小整数。等同于ceil |
log | 计算指定数的对数。 |
current_timezone | 返回当前时区。 |
power | 计算指定数的幂。 |
if | 支持两个参数,如果不写第三个参数默认是NULL |
nvl2 | 如果第一个参数不为NULL,则返回第二个参数,否则返回第三个参数。 |
行为变更
数据类型
varchar数据类型变化:varchar长度变更由65535变为1048576
SDK接口
在 JDBC 2.0.0 之后的版本中,本地 COPY 命令已被弃用。我们建议您使用 PUT 方法将数据上传到 volume 中,然后使用服务器端的 COPY 命令进行导入。