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 格式