ByteHouse 1.1.0.0 版本发布,2021 年 9 月
ByteHouse 的 1.1.0.0 版本在 2021 年 9 月正式发布,本次版本中我们引入了分桶,计算组自动启动暂停,谷歌云 GCP 支持等新特性。
联系我们
如您对于我们在灰度中的功能感兴趣,欢迎提交工单来联系我们开通灰度功能的试用。
新功能
支持分桶表 Bucketing Table
分区可以在特定的区域进行数据检索,减少扫描成本从而提升查询效率。与分区表 (Partition Table) 类似,分桶表(Bucketing Table)可以在建立分区索引的基础上,进一步对数据进行划分,提升查询效率。
分区表一般会根据分区键的值进行划分(例如,按月分区,或按国家/地域名称分区),而分桶表是通过指定某一列,并通过哈希函数取模进行数据划分的。根据业务场景不同,分桶数量也有区别,ByteHouse 支持在创建表时手动指定桶的数量。
由于分桶会将哈希取模相同的数据放在相同的桶文件中,因此分桶表有以下优势:
- ByteHouse在查询中只访问对应的桶,从而减少了需要扫描的数据量。
- 对多表的相同列进行分桶操作,可以有效改善 JOIN,AGGREGATE 和查询等操作的性能,如:对两张表的同一列做了分桶操作后,这两张表进行 JOIN 操作时,只需要对存储了相同列值的桶进行 JOIN 即可,从而提升了查询效率。此外,分桶也可以让采样 Sampling 更加高效。
- 对于点查的场景,如果查询的是分桶键所在列,可以指定一个桶进行查询,从而支持更高的查询 QPS
自动启动和暂停计算组
在创建和编辑计算组时,ByteHouse 支持配置两个新的选项:自动启动和自动暂停计算组。
优点:
- 配置自动暂停和启动,可以让你的计算组只在需要/有查询请求时运行,从而减少了资源和运维成本,提升资源的利用率。该配置十分适用于的查询负载在一天内有波峰波谷的场景。
支持新的流数据源 Confluent Cloud
除了开源 Apache Kafka 之外,ByteHouse 支持将 Confluent Cloud 作为一个流数据源。
列表达式 [灰度中]
1.1.0.0 版本中,ByteHouse 支持通过表达式转换功能,在数据导入过程中,支持用户对导入的数据进行一些简单的预处理,例如数据类型的转换 toString() toDate(),嵌套 JSON 中某字段的抽取 JSONExtract(),对某一列设置默认值为当前时间的函数 Now()。
这是一个灰度功能,如需使用,请通过提交工单联系我们进行开通试用。
新增云厂商和地域支持:谷歌云 GCP [灰度中]
ByteHouse现在支持在谷歌云(新加坡地域)上部署。
这是一个灰度功能,如需使用,请通过提交工单联系我们进行开通试用。
JDBC 驱动 [灰度中]
在 1.1.0.0 版本中,ByteHouse 发布了 JDBC 驱动,支持用户通过 JDBC 对 ByteHouse 进行连接和数据导入等操作。
这是一个灰度功能,如需使用,请通过提交工单联系我们进行开通试用。
改进
界面优化
- 改进 ByteHouse 所有子页面的可访问性
- 在创建计算组页面增加提示,引导用户在计算组大小不满足需求时工单申请特殊配置。
- 优化改进 ByteHouse 报错信息,使报错信息更加易读
- 上传新的 SQL 文件到 SQL 工作表时,添加覆盖原文件的提示
- 优化新手引导的弹出体验
- 完善了界面文案的翻译和提示文案补充
- 增加 AWS S3 仅对分区表支持增量加载的提示
性能优化
- 支持 CREATE Table AS SELECT * 语法
- 优化了压缩导入任务的性能
Bug 修复
- SQL解析器:优化 YEAR 和 DATE 类型在引擎层被反解析为列名的 Bug
- 修正了按顺序/按小数点排序的问题
- 针对执行的提交(submit executions)启用了安全规则
- 分桶表 Bucket Table DDL 语义中支持括号指定列的语义 Cluster by ()
- 创建数据库后支持使用 USE DB
- 在 Operator 指标中修正了 JSON 格式