跳到主要内容
跳到主要内容

Release 2.0.3

亲爱的社区小伙伴们,Apache Doris 2.0.3 版本已于 2023 年 12 月 14 日正式发布,该版本对复杂数据类型、统计信息收集、倒排索引、数据湖分析、分布式副本管理等多个功能进行了优化,有 104 位贡献者为 Apache Doris 2.0.3 版本提交了超过 1000 个功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。

GitHub 下载https://github.com/apache/doris/releases

官网下载页https://doris.apache.org/download/

新增特性

自动统计信息收集

统计信息是 CBO 优化器进行代价估算时的依赖,通过收集统计信息有助于优化器了解数据分布特性、估算每个执行计划的成本并选择更优的执行计划,以此大幅提升查询效率。从 2.0.3 版本开始,Apache Doris 开始支持自动统计信息收集,默认为开启状态。

在每次导入事务提交后,Apache Doris 将记录导入事务更新的表信息并估算表统计信息的健康度,对于健康度低于配置参数的表会认为统计信息已过时并自动触发表的统计信息收集作业。同时为了降低统计信息作业的资源开销,Apache Doris 会自动采取采样的方式收集统计信息,用户也可以调整参数来采样更多行以获得更准确的数据分布信息。

更多信息请参考:Statistics

数据湖框架支持复杂数据类型

增加更多内置函数

改进优化

性能优化

  • 在过滤率高的倒排索引 match where 条件和过滤率低的普通 where 条件组合时,大幅降低索引列的 IO
  • 优化经过 where 条件过滤后随机读数据的效率
  • 优化在 JSON 数据类型上使用老的 get_json_xx 函数的性能,提升 2-4 倍
  • 支持配置降低读数据线程的优先级,保证写入的 CPU 资源和实时性
  • 增加返回 largeint 的 uuid-numeric 函数,性能比返回 string 的 uuid 函数快 20 倍
  • Case when 的性能提升 3 倍
  • 在存储引擎执行中裁剪不必要的谓词计算
  • 支持 count 算子下推到存储层
  • 优化支持 and or 表达式中包含 nullable 类型的计算性能
  • 支持更多场景下 limit 算子提前到 join 前执行的改写,以提升执行效率
  • 增加消除 inline view 中的无用的 order by 算子,以提升执行效率
  • 优化了部分情况下的基数估计和代价模型的准确性,以提升执行效率
  • 优化了 JDBC catalog 的谓词下推逻辑和大小写逻辑
  • 优化了 file cache 的第一次开启后的读取效率
  • 优化 Hive 表 SQL cache 策略,使用 HMS 中存储的分区更新时间作为 cache 是否失效的判断,提高 cache 命中率
  • 优化了 Merge-on-Write compaction 效率
  • 优化了外表查询的线程分配逻辑,降低内存使用
  • 优化 column reader 的内存使用

分布式副本管理改进

优化跳过删除分区、colocate group、持续写时均衡失败、冷热分层表不能均衡等;

安全性提升

Bugfix 和稳定性提升

复杂数据类型

倒排索引

物化视图

采样查询

主键表

导入和 Compaction

数据湖兼容性

JDBC 外表兼容性

SQL 规划和优化

行为变更

  • 复杂数据类型 array/map/struct 的输出格式改成跟输入格式以及 JSON 规范保持一致,跟之前版本的主要变化是日期和字符串用双引号括起来,array/map 内部的空值显示为 null 而不是 NULL。

  • 默认情况下,当用户属性 resource_tags.location 没有设置时,只能使用 default 资源组的节点,而之前版本中可以访问任意节点。

  • 支持 SHOW_VIEW 权限,拥有 SELECT 或 LOAD 权限的用户将不再能够执行 SHOW CREATE VIEW 语句,必须单独授予 SHOW_VIEW 权限。