Apache Doris 1.2.2 Release 版本正式发布

版本发布
2023/02/15
Apache Doris

亲爱的社区小伙伴们,我们很高兴地宣布,Apache Doris 于 2023 年 2 月 15 日迎来 1.2.2 Release 版本的正式发布!在新版本中,Apache Doris 团队修复了自 1.2.1 版本发布以来超过 200 个问题或性能改进项。同时,1.2.2 版本作为 1.2 LTS 的迭代版本,具备更高的稳定性,建议用户升级到这个版本

GitHub下载

官网下载页

New Feature

数据湖分析

  • 支持自动同步 Hive Metastore 元数据信息。 默认情况下外部数据源的元数据变更,如创建或删除表、加减列等操作不会同步给 Doris,用户需要使用 REFRESH CATALOG 命令手动刷新元数据。在 1.2.2 版本中支持自动刷新 Hive Metastore 元数据信息,通过让 FE 节点定时读取 HMS 的 notification event 来感知 Hive 表元数据的变更情况。参考文档

  • 支持读取 Iceberg Snapshot 以及查询 Snapshot 历史。 在执行 Iceberg 数据写入时,每一次写操作都会产生一个新的快照。默认情况下通过 Apache Doris 读取 Iceberg 表仅会读取最新版本的快照。在 1.2.2 版本中可以使用 FOR TIME AS OFFOR VERSION AS OF 语句,根据快照 ID 或者快照产生的时间读取历史版本的数据,也可以使用 iceberg_meta 表函数查询指定表的快照信息。参考文档

  • JDBC Catalog 支持 PostgreSQL、Clickhouse、Oracle、SQLServer。

  • JDBC Catalog 支持 insert into 操作。 在 Doris 中建立 JDBC Catalog 后,可以通过 insert into 语句直接写入数据,也可以将 Doris 执行完查询之后的结果写入 JDBC Catalog,或者是从一个 JDBC 外表将数据导入另一个 JDBC 外表。参考文档

自动分桶推算

支持通过 DISTRIBUTED BY HASH(……) BUCKETS AUTO 语句设置自动分桶,系统帮助用户设定以及伸缩不同分区的分桶数,使分桶数保持在一个相对合适的范围内。参考文档

新增函数

增加归类分析函数 width_bucket参考文档

Behavior Changes

默认情况下禁用 BE 的 Page Cache

关闭此配置以优化内存使用并降低内存 OOM 的风险,但有可能增加一些小查询的查询延迟。如果您对查询延迟敏感,或者具有高并发小查询场景,可以配置 disable_storage_page_cache=false 以再次启用 Page Cache。

增加新 Session 变量 group_by_and_having_use_alias_first

用于控制 group by 和 having 语句是否优先使用列的别名,而非从 From 语句里寻找列的名字,默认为false。

Improvement

Compaction 优化

  • 支持 Vetical Compaction。在过去版本中,宽列场景 Compaction 往往会带来大量的内存开销。在 1.2.2 版本中,Vertical Compaction 采用了按列组的方式进行数据合并,单次合并只需要加载部分列的数据,能够极大减少合并过程中的内存占用。在实际测试中,Vertical compaction 使用内存仅为原有 compaction 算法的 1/10,同时 Compaction 速率提升15%。
  • 支持 Segment Compaction。在过去版本中,当用户大数据量高频导入时可能会遇到 -238 以及 -235 问题,Segment Compaction 允许在导入数据的同时进行数据的合并,以有效控制 Segment 文件的数量,提升高频导入的系统稳定性。

参考文档

数据湖分析

  • Hive Catalog 支持访问 Hive 1/2/3 版本。参考文档

  • Hive Catalog 可以使用 Broker 访问数据存储在 JuiceFS 的 Hive。参考文档

  • Iceberg Catalog 支持 Hive Metastore 和 Rest 作为元数据服务。参考文档

  • ES Catalog 支持 元数据字段 _id 列映射。参考文档

  • 优化 Iceberg V2 表有大量删除行诗时的读取性能。

  • 支持读取 Schema Evolution 后 Iceberg 表。

  • Parquet Reader 正确处理列名大小写。

其他

  • 支持访问 Hadoop KMS 加密的 HDFS 。

  • 支持取消正在执行的导出任务。参考文档

  • explode_split 函数执行效率优化 1 倍。

  • 将 nullable 列的读取性能优化 3 倍。

  • 优化 Memtracker 的部分问题,提高内存管理精度,优化内存应用。

BugFix

  • 修复了使用 Doris-Flink-Connectore 导入数据时的内存泄漏问题;
  • 修复了 BE 可能的线程调度问题,并减少了 BE 线程耗尽导致的 Fragment_sent_timeout。
  • 修复了 datetimev2/decivalv3 的部分正确性和精度问题。
  • 修复了 Light Schema Change 功能的各种已知问题。
  • 修复了 bitmap 类型 Runtime Filter 的各种数据正确性问题。
  • 修复了 1.2.1 版本中引入的 CSV 读取性能差的问题。
  • 修复了 Spark Load 数据下载阶段导致的 BE OOM 问题。
  • 修复了从 1.1.x 版升级到 1.2.x 版时可能出现的元数据兼容性问题。
  • 修复了创建 JDBC Catalog 时的元数据问题。
  • 修复了由于导入操作导致的 CPU 使用率高的问题。
  • 修复了大量失败 Broker Load 作业导致的 FE OOM 问题。
  • 修复了加载浮点类型时精度丢失的问题。
  • 修复了 Stream Load 使用两阶段提交时出现的内存泄漏问题。

其他

添加指标以查看 BE 上的 Rowset 和 Segment 总数量 doris_be_all_rowset_numsdoris_be_all_segment_nums