Apache Doris 2.1.5 版本正式发布

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复

亲爱的社区小伙伴们,Apache Doris 2.1.5 版本已于 2024 年 7 月 24 日正式发布。2.1.5 版本在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复,欢迎大家下载使用。

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

GitHub 下载:https://github.com/apache/doris/releases/tag/2.1.5-rc02

行为变更

  • JDBC Catalog 的默认连接池大小从 10 调整为 30。#37023
  • 创建 JDBC Catalog 时,参数 connection_pool_max_size 的默认值改为 30,以避免高并发场景下连接池耗尽的问题。
  • 将系统的保留内存的最小值,即 low water mark 调整为 min (6.4G, MemTotal * 5%),以更好地防止 BE 出现 OOM 问题。
  • 修改了单请求多个语句的处理逻辑,当客户端未设置 CLIENT_MULTI_STATEMENTS 标志位时,将仅返回最后一个语句的结果,而非所有语句结果。
  • 不再允许直接更改异步物化视图的数据。#37129
  • 增加会话变量 use_max_length_of_varchar_in_ctas,用于控制 CTAS 时 VARCHAR 和 CHAR 类型长度的生成行为。默认值是 true。当设置为 false 时,使用推导出的 VARCHAR 长度,而不是使用最大长度。#37284
  • 统计信息收集,默认开启了通过文件大小预估 Hive 表行数的功能。#37694
  • 默认开启异步物化视图透明改写机制。#35897
  • 透明改写利用分区物化视图,如果分物物化视图部分分区失效,默认行为是将所有基础表与物化视图联合,以保证查询数据的正确性。 #35897

新功能

湖仓一体

  • 会话变量 read_csv_empty_line_as_null 用于控制在读取 CSV 格式文件时,是否忽略空行。默认情况下忽略空行,当设置为 true 时,空行将被读取为所有列均为 Null 的行。#37153
  • 新增兼容 Presto 的复杂类型输出格式。通过设置 set serde_dialect="presto",可以控制复杂类型的输出格式 与 Presto 一致,用于平滑迁移 Presto 业务。#37253

多表物化视图

  • 支持在构建物化视图中使用非确定性函数。#37651
  • 支持原子替换异步物化视图定义。#37147
  • 支持通过 show create materialized view 查看异步物化视图创建语句。 #37125
  • 支持对多维聚合查询的透明改写。#37436
  • 支持对非聚合物化视图的聚合查询进行透明改写。 #37497
  • 支持使用 Key 列,对查询中的 DISTINCT 聚合做透明改写。#37651
  • 支持对物化视图进行分区,通过使用 date_trunc 对分区进行汇总。#31812 #35562
  • 支持分区表值函数(TVF) #36479

半结构化数据分析

  • 使用 VARIANT 类型的表支持部分列更新。 #34925
  • 支持默认开启 PreparedStatement。 #36581
  • VARIANT 类型支持导出为 CSV 格式。#37857
  • 支持 explode_json_object 函数,用于将 JSON Object 行转列。 #36887
  • ES Catalog 将 ES 的 NESTED 或者 OBJECT 类型映射成 Doris JSON 类型。#37101
  • 默认情况下,对于具有指定分词器的倒排索引,默认开启 support_phrase 以提升 match_phrase 系列查询性能。#37949

查询优化器

  • 支持 explain DELETE FROM 语句。#37100
  • 支持常量表达式参数的 Hint 形式。#37988

内存管理

  • 增加了 HTTP API 以清除缓存。 #36599

权限管理

  • 支持对表值函数(TVF)中的资源进行鉴权。 #37132

改进提升

湖仓一体

  • 将 Paimon 升级至 0.8.1 版本。
  • 修复在部分情况下,查询 Paimon 表时导致 org.apache.commons.lang.StringUtils 的问题。#37512
  • 支持腾讯云 LakeFS。 #36891
  • 优化了外部表查询时获取文件列表的超时时间。 #36842
  • 可通过会话变量 fetch_splits_max_wait_time_ms 进行设置
  • 改进了 SQLServer JDBC Catalog 的默认连接逻辑。默认情况下,不干预连接加密设置。仅当 force_sqlserver_jdbc_encrypt_false 设置为 true 时,才会强制在 JDBC URL 中添加 encrypt=false 以减少认证错误,从而提供更灵活的控制加密行为的能力。 #36971
  • Hive 表的 show create table 语句增加序列化/反序列化。#37096
  • FE 端 Hive 表列表默认缓存时间由 1 天改为 4 小时
  • 数据导出(Export/Outfile)支持指定 Parquet 和 ORC 的压缩格式。参考文档https://doris.apache.org/docs/sql-manual/sql-statements/Data-Manipulation-Statements/Manipulation/EXPORT/?_highlight=compress_type
  • 当使用 CTAS+TVF 创建表时,TVF 中的分区列将被自动映射为 Varchar(65533) 而非 String,以便该分区列能够作为内表的分区列使用。 #37161
  • 优化 Hive 写入操作元数据的访问次数。#37127
  • ES Catalog 支持将 NESTED/OBJECT 类型映射到 Doris 的 JSON 类型。#37182
  • 优化使用低版本 OBJECT 驱动连接 Oracle 时的报错信息。#37634
  • 当 Hudi 表 Incremental Read 返回空集时,Doris 同样返回空集而非报错。#37636
  • 修复部分情况下内外表关联查询可能导致 FE 超时的问题。#37757
  • 修复了在从旧版本升级到新版本时,如果开启了 Hive Metastore Even Listener 情况下,可能出现 FE 元数据回放错误的问题。 #37757

多表物化视图

  • 创建异步物化视图时,支持自动选择 Key 列。 #36601
  • 异步物化视图分区刷新支持定义中使用 date_trunc 函数。#35562
  • 嵌套物化视图中,当下层命中聚合上卷改写后,上层现在依然可以继续进行透明改写。 #37651
  • 当 Schema Change 不影响异步物化视图数据正确性时,异步物化视图保持可用状态。 #37122
  • 提升了透明改写的规划速度。#37935
  • 计算异步物化视图可用性时,不再考虑当前的刷新状态。#36617

半结构化数据管理

  • 通过采样优化 DESC 查看 VARIANT 子列的性能。 #37217
  • 行存 page_size 默认从 4K 调到 16K 压缩率提升 30%,而且支持表级别可配置。
  • JSON 类型支持 Key 为空的特殊 JSON 数据。 #36762

倒排索引

  • 减少倒排索引 Exists 调用避免对象存储访问延迟。#36945
  • 优化倒排索引查询流程额外开销。#35357
  • 在物化视图中不创建倒排索引。 #36869

查询优化器

  • 当比较表达式两侧都是 Literal 时,String Literal 会尝试向另一侧的类型转换。 #36921
  • 重构了 VARIANT 类型的子路径下推功能,现在可以更好地支持复杂的下推场景。 #36923
  • 优化了物化视图代价计算的逻辑,能够更准确的选择代价更低的物化视图。 #37098
  • 提升了 SQL 中使用用户变量时的 SQL 缓存规划速度。 #37119
  • 优化了 NOT NULL 表达式的估行逻辑,当查询中存在 NOT NULL 时可以获得更好的性能。 #37498
  • 优化了 LIKE 表达式的 NULL 拒绝推导逻辑。#37864
  • 优化查询指定分区失败时的报错信息,可以更清楚看到是哪个表导致的问题。 #37280

查询引擎

  • 将某些场景下 BITMAP_UNION 算子的性能提升了 3 倍。
  • 提升 Arrow Flight 在 ARM 环境下的读取性能。
  • 优化了 explodeexplode_mapexplode_json 函数的执行性能。

数据导入

  • 支持为 INSERT INTO ... FROM TABLE VALUE FUNCTION 语句设置 max_filter_ratio 参数。

Bug 修复

湖仓一体

  • 修复部分情况下查询 Parquet 格式导致 BE 宕机的问题。#37086
  • 修复查询 Parquet 格式,BE 端打印大量日志的问题。#37012
  • 修复部分情况下 FE 端重复创建大量 FileSystem 对象的问题。#37142
  • 修复部分情况下,写入 Hive 后的事务信息未清理的问题。#37172
  • 修复部分情况下,Hive 表写入操作导致线程泄露的问题。#37247
  • 修复部分情况下,无法正确获取 Hive Text 格式行列分隔符的问题。#37188
  • 修复部分情况下,读取 lz4 压缩块时的并发问题。#37187
  • 修复部分情况下,Iceberg 表 count(*) 返回错误的问题。#37810.
  • 修复部分情况下,创建基于 MinIO 的 Paimon Catalog 导致 FE 元数据回放错误的问题。#37249
  • 修复部分情况下使用 Ranger 创建 Catalog 客户端卡死的问题。 #37551

多表物化视图

  • 修复当基表增加新的分区时,可能导致的分区聚合上卷改写后结果错误的问题。 #37651
  • 修复关联的基表分区删除后,物化视图分区状态没有被置为不同步的问题。 #36602
  • 修复异步物化视图构建偶现的死锁问题。 #37133
  • 修复异步物化视图单次刷新大量分区时偶现的,报错 nereids cost too much time 问题。#37589
  • 修复创建异步物化视图时,如果最终的 Select List 中存在 Null Literal,则无法创建的问题。#37281
  • 修复单表物化视图,如果构建了聚合的物化视图,虽然改写成功,但是 CBO 没有选择的问题。 #35721 #36058
  • 修复 Join 输入都是聚合的情况下,构建分区物化视图,分区推导失败的问题。#34781

半结构化数据管理

  • 修复 VARIANT 在并发/异常数据等特殊情况下的问题。#37976 #37839 #37794 #37674 #36997
  • 修复 VARIANT 用在不支持的 SQL 中 Coredump 的问题。 #37640
  • 修复 1.x 版本升级到 2.x 或者更高版本时因为 MAP 数据类型 Coredump 的问题。 #36937
  • 修复 ES Catalog 对 Array 的支持。 #36936

倒排索引

  • 修复倒排索引 v2 DROP INDEX 元数据没有删除的问题。 #37646
  • 修复字符串长度超过 “ignore above” 时查询准确性问题。 #37679
  • 修复索引大小统计的问题。 #37232 #37564

查询优化器

  • 修复部分因为保留关键字而导致导入无法执行的问题。#35938
  • 修复了在创建表时 CHAR(255) 类型错误的记录为 CHAR(1) 的问题。 #37671
  • 修复了在相关子查询中的连接表达式为复杂表达式时返回错误结果的问题。#37683
  • 修复了 DECIMAL 类型分桶裁剪有可能错误的问题。#38013
  • 修复了部分场景下开启 Pipeline Local Shuffle 后,聚合算子计算结果错误的问题。#38061
  • 修复当聚合算子中存在相等的表达式时,可能出现的规划报错问题。#36622
  • 修复当聚合算子中存在 Lambda 表达式时,可能出现的规划报错问题。#37285
  • 修复了由窗口函数生成的字面量在优化为字面量时类型错误导致无法执行的问题。 #37283
  • 修复了聚合函数 foreach combinator 错误输出 Null 属性问题。#37980
  • 修复了 acos 函数在参数为超越范围值的字面量时不能规划的问题。#37996
  • 修复当查询指定的同步物化视图时,显示指定查询分区导致规划报错的问题。#36982
  • 修复了在规划过程中偶尔出现 NPE 的问题。#38024

查询引擎

  • 修复 DELETE WHERE 语句中,在 DECIMAL 数据类型作为条件报错的问题。#37801
  • 修复查询执行结束,但是 BE 内存不释放的问题。#37792 #37297
  • 修复在千级别 QPS 场景下,Audit Log 占用 FE 内存太多的问题。 https://github.com/apache/doris/pull/37786
  • 修复 sleep 函数在输入非法值时 BE Core 的问题。#37681
  • 修复执行过程中 sync filter size meet error 的问题。 #37103
  • 修复执行过程中,使用时区时结果不对的问题。#37062
  • 修复 cast stringint 时结果不对的问题。 #36788
  • 修复 Arrow Flight 协议在开启 Pipelinex 时查询报错的问题。 #35804
  • 修复 cast string to date/datetime 报错的问题。 #35637
  • 修复使用 <=> 做大表关联查询时 BE Core 的问题。 #36263

存储管理

  • 修复列更新写入时遇到 DELETE SIGN 数据不可见问题。#36755
  • 优化 Schema Change 期间 FE 的内存占用。#36756
  • 修复 BE 重启时事务没有 Abort 导致的 BE 下线卡住问题。#36437
  • 修复 NOT-NULL 到 NULL 类型变更的偶发报错问题。 #36389
  • 优化 BE 宕机时的副本修复调度。 #36897
  • 单个 BE 创建 Tablet 时支持 round-robin 选择磁盘。 #36900
  • 修复 Publish 慢导致的查询 -230 错误。 #36222
  • 优化 Partition Balance 的速度。 #36976
  • 使用 FD 数目和内存控制 Segment Cache 避免 FD 不足。 #37035
  • 修复 Clone 和 Alter 并发可能导致的副本丢失问题。 #36858
  • 修复不能调整列顺序问题。#37226
  • 禁止自增列的部分 Schema Change 操作。 #37331
  • 修复 Delete 操作报错不准确。 #37374
  • BE 侧 Trash 过期时间调整为一天。 #37409
  • 优化 Compaction 内存占用和调度。 #37491
  • 检查潜在的过大 Backup 导致 FE 重启的问题。#37466
  • 恢复动态分区删除策略以及交叉分区的行为到 2.1.3。#37570 #37506
  • 修复 DELETE 谓词重部分 DECIMAL 报错问题。 #37710

数据导入

  • 修复导入时错误处理竞争导致的数据不可见问题。#36744
  • Stream Load 导入支持 hhl_from_base64#36819
  • 修复潜在的单表非常多 Tablet 导入失败时可能导致 FE OOM 的问题。 #36944
  • 修复 FE 主从切换时自增列可能重复的问题。#36961
  • 修复 INSERT INTO SELECT 自增列报错问题。 #37029
  • 降低数据下刷线程数,优化内存占用。 #37092
  • 优化 Routine Load 任务自动恢复和错误信息。 #37371
  • 增加 Routine Load 默认攒批大小。 #37388
  • 修复 Routine Load 在 Kafka EOF 过期的任务停止问题。#37983
  • 修复一流多表 Coredump 。 #37370
  • 修复 Group Commit 内存估计不准导致的提前反压问题。#37379
  • 优化 Group Commit BE 侧线程占用。 #37380
  • 修复数据没有分区时没有错误 URL 的问题。 #37401
  • 修复导入时潜在的内存误操作问题。 #38021

主键模型

  • 降低主键表 Compaction 的内存占用。 #36968
  • 修复主键副本 Clone 失败时可能的重复数据问题。 #37229

内存管理

  • 修复 Jemalloc Cache 统计不准的问题。#37464
  • 修复在 K8s / CGroup 中不能正确获取内存大小的问题。 #36966

权限管理

  • 修复 Table Valued Function 引用 Resource 时没有鉴权的问题。 #37132
  • 修复 Show Role 语句中没有 Workload Group 权限的问题。 #36032
  • 修复创建 Row Policy 时,同时执行两条语句,导致 FE 重启失败的问题。#37342
  • 修复部分情况下,老版本升级后,因为 Row Policy 导致 FE 元数据回放失败的问题。#37342

其他

  • 修复计算节点参与内部表创建的问题。#37961
  • 修复 enable_strong_read_consistency = true 时从延迟问题。 [#37641](
相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
8天前
|
存储 缓存 Cloud Native
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
随着云基础设施的成熟,Apache Doris 3.0 正式支持了存算分离全新模式。基于这一架构,能够实现更低成本、极致弹性以及负载隔离。本文将介绍存算分离架构及其优势,并通过导入性能、查询性能、资源成本的测试,直观展现存算分离架构下的性能表现,为读者提供具体场景下的使用参考。
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
|
21天前
|
SQL 缓存 数据处理
数据无界、湖仓无界,Apache Doris 湖仓一体典型场景实战指南(下篇)
Apache Doris 提出“数据无界”和“湖仓无界”理念,提供高效的数据管理方案。本文聚焦三个典型应用场景:湖仓分析加速、多源联邦分析、湖仓数据处理,深入介绍 Apache Doris 的最佳实践,帮助企业快速响应业务需求,提升数据处理和分析效率
数据无界、湖仓无界,Apache Doris 湖仓一体典型场景实战指南(下篇)
|
23天前
|
存储 SQL 数据挖掘
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。为助力企业实现湖仓一体的建设,Apache Doris 提出了数据无界和湖仓无界核心理念,并结合自身特性,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。本文将对湖仓一体演进及 Apache Doris 湖仓一体方案进行介绍。
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
|
27天前
|
存储 运维 监控
从 ClickHouse 到 Apache Doris:在网易云音乐日增万亿日志数据场景下的落地
日志数据已成为企业洞察系统状态、监控网络安全及分析业务动态的宝贵资源。网易云音乐引入 Apache Doris 作为日志库新方案,替换了 ClickHouse。解决了 ClickHouse 运维复杂、不支持倒排索引的问题。目前已经稳定运行 3 个季度,规模达到 50 台服务器, 倒排索引将全文检索性能提升7倍,2PB 数据,每天新增日志量超过万亿条,峰值写入吞吐 6GB/s 。
从 ClickHouse 到 Apache Doris:在网易云音乐日增万亿日志数据场景下的落地
|
2月前
|
存储 运维 监控
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
中信银行信用卡中心每日新增日志数据 140 亿条(80TB),全量归档日志量超 40PB,早期基于 Elasticsearch 构建的日志云平台,面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此使用 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
|
11天前
|
SQL 分布式计算 Apache
Apache Doris 3.0.4 版本正式发布
该版本持续在存算分离、湖仓一体、异步物化视图等方面进行改进提升与问题修复
|
2月前
|
SQL 存储 分布式计算
Apache Doris 2.1.8 版本正式发布
该版本持续在湖仓一体、异步物化视图、查询优化器与执行引擎、存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。
|
3月前
|
存储 SQL Apache
Apache Doris 创始人:何为“现代化”的数据仓库?
3.0 版本是 Apache Doris 研发路程中的重要里程碑,他将这一进展总结为“实时之路”、“统一之路”和“弹性之路”,详细介绍了所对应的核心特性的设计思考与应用价值,揭晓了 2025 年社区发展蓝图
Apache Doris 创始人:何为“现代化”的数据仓库?
|
2月前
|
存储 SQL 监控
计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台
灵犀科技早期基于 Hadoop 构建大数据平台,在战略调整和需求的持续扩增下,数据处理效率、查询性能、资源成本问题随之出现。为此,引入 [Apache Doris](https://doris.apache.org/) 替换了复杂技术栈,升级为集存储、加工、服务为一体的统一架构,实现存储成本下降 60%,计算效率提升超 10 倍的显著成效。
计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台
|
3月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
440 33
The Past, Present and Future of Apache Flink

热门文章

最新文章

推荐镜像

更多