亲爱的社区小伙伴们,Apache Doris 2.1.9 版本已正式发布。 2.1.9 版本对湖仓一体、倒排索引、半结构化数据类型、查询优化器、执行引擎、存储管理进行了若干改进优化。欢迎大家下载使用。
版本升级说明
Doris 升级请遵守不要跨两个二位版本升级的原则,依次往后升级。
比如从 0.15.x 升级到 2.0.x 版本,则建议先升级至 1.1 最新版本,然后升级到最新的 1.2 版本,最后升级到最新的 2.0 版本,以此类推。
亲爱的社区小伙伴们,Apache Doris 2.1.9 版本已正式发布。 2.1.9 版本对湖仓一体、倒排索引、半结构化数据类型、查询优化器、执行引擎、存储管理进行了若干改进优化。欢迎大家下载使用。
Doris 升级请遵守不要跨两个二位版本升级的原则,依次往后升级。
比如从 0.15.x 升级到 2.0.x 版本,则建议先升级至 1.1 最新版本,然后升级到最新的 1.2 版本,最后升级到最新的 2.0 版本,以此类推。
亲爱的社区小伙伴们,Apache Doris 2.1.9 版本已于 2025 年 04 月 02 日正式发布。 该版本持续在倒排索引、查询优化器与存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。
SELECT`` *
,如果下层 relation 仅输出聚合 key 列。#48006SELECT ``OUTFILE
语句重试以避免重复导出数据。#48095s3a://
的 Hive 表的问题。#47162BUILD INDEX
异常的问题。#48389current_date
等关键字函数无法的进行常量折叠的问题。#47288case when
条件超过 256 个时,查询报错的问题。#47179str_to_date
函数在空格的时候,结果错误的问题。#48920split_part
函数在常量折叠时遇到 || ,结果错误的问题。#48910log
函数结果错误的问题。#47228array
/ map
函数在 lambda 表达式中使用时导致的 core 的问题。#49140Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。
trim_in
、ltrim_in
和 rtrim_in
函数的支持。#42641to``p_level_domain
、first_significant_subdomain
、cut_to_first_significant_subdomain
支持。#42916bit_set
函数。#42099count_substrings
函数。#42055translate
和 url_encode
函数。#41051normal_cdf
, to_iso8601
, from_iso8601_date
函数。 #40695trim_in
、ltrim_in
、 rtrim_in
函数。#42641 information_schema.table_options
和 information_schema.``table_properties
系统表,支持查询建表时设置的一些属性。#34384
bitmap_empty
作为默认值。#40364require_sequence_in_insert
来控制向 Unique Key 表进行insert into select
写入时,是否必须提供 Sequence 列。#41655允许在 BE WebUI 页面生成火焰图。#41044
table$partitions
语法支持直接查询 Hive 分区信息 #41230
sql_select_limit
设置时,改写结果可能错误的问题。#40106count()
不准确的问题。#41127match_regexp
函数不能正确处理空字符串的问题。#39503data_floor
函数结果错误的问题。#41948Apache Doris 2.1.6 版本已于 2024 年 9 月 10 日正式发布。2.1.6 版本在湖仓一体、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复。
移除 create repository
命令中的 delete_if_exists
选项。#38192
新增会话变量 enable_prepared_stmt_audit_log
,用于控制 JDBC 预编译语句是否记录审计日志,默认不记录。#38624 #39009
采用文件描述符限制和内存限制来管理 Segment Cache。#39689
当 sys_log_mode
配置项设置为 BRIEF
时,在日志中增加文件位置信息,以提供更详细的上下文。#39571
将会话变量 max_allowed_packet
的默认值调整为 16MB,提高数据传输限制。#38697
在单次请求中,若包含多个 SQL 语句,各语句间必须使用分号进行分隔,以增强语句的清晰度和执行效率。#38670
现在支持 SQL 语句以分号开始,提供更灵活的语句书写方式。#39399
在执行如 show create table
等语句时,类型格式与 MySQL 保持一致,提升与 MySQL 的兼容性。#38012
当新优化器规划查询超时后,不再回退到旧优化器,以避免潜在的性能下降问题。#39499
实现 Iceberg 表的写回功能。
增强 SQL 拦截规则,支持对外表的拦截处理。
新增系统表file_cache_statistics
,用于查看 BE 节点的数据缓存性能指标。
支持 ARRAY MAP 类型到 JSON 类型的 CAST 转换功能。#36548
引入json_keys
函数,用于提取 JSON 中的键名。#36411
支持在导入 JSON 时指定json path
$``#38213
ARRAY / MAP / STRUCT 类型支持replace_if_not_null
#38304
允许调整 ARRAY / MAP / STRUCT 类型的列顺序。#39210
新增multi_match
函数,支持在多个字段中匹配关键词,并利用倒排索引加速查询。#37722
完善 MySQL 协议返回列的信息,包括原始数据库名、表名、列名和别名。#38126
增强聚合函数group_concat
,支持同时使用order by
和distinct
进行复杂数据聚合。#38080
改进了 SQL 缓存机制,支持通过注释区分不同的查询以复用缓存结果。#40049
允许在表别名前使用数据库名作为限定名前缀。#38640
支持 Hint 格式注释。#39113
Group concat
函数现支持distinct
和order by
选项。#38744新增系统表table_properties
,便于用户查看和管理表的各项属性。
新增 FE 中死锁和慢锁检测功能。
革新外表元数据缓存机制。
新增会话变量keep_carriage_return
,默认关闭。读取 Hive Text 格式表时,默认将\r\n
与\n
均视为换行符。#38099
优化 Parquet / ORC 文件读写内存统计。#37257
Paimon 表支持 IN/ NOT IN 谓词下推。#38390
升级优化器,支持 Hudi 表的 Time Travel 语法。#38591
Kerberos 认证流程优化,提升安全认证效率与稳定性。#37301
支持 Rename column 操作后读取 Hive 表。#38809
提升外表分区列读取性能。#38810
优化外表查询规划,优化数据分片合并策略,有效避免小分片对查询性能的影响。#38964
SHOW CREATE DATABASE / TABLE 新增 Location 等属性展示。#39644
MaxCompute Catalog 扩展支持复杂类型。#39822
优化文件缓存加载策略,通过异步加载方式避免 BE 启动时间过长的问题。#39036
升级文件缓存淘汰策略,有效管理长时间占用锁的资源。#39721
支持小时、周及季度级别的分区上卷构建。#37678
基于 Hive 外表的物化视图,在刷新前自动更新元数据缓存,以保证每次刷新可以获取最新数据。#38212
通过批量获取元数据,优化存算分离模式下的透明改写规划性能。#39301
通过禁止重复枚举,进一步提升透明改写的规划性能。#39541
优化基于 Hive 外表分区刷新物化视图的透明改写性能。#38525
优化 TOPN 查询内存分配,显著提升查询性能。#37429
优化倒排索引字符串处理性能。#37395
优化倒排索引在 MOW 表中的性能。#37428
建表时支持指定行存 page_size
,以控制压缩效果。#37145
调整 Mark Join 行数估计算法,提高基数估算准确性。#38270
优化 Semi / Anti Join 代价估计算法,能够正确选择最佳 Join 顺序。#37951
调整部分列无统计信息情况下的过滤估计算法,使估算更精准。#39592
改进 Set Operation 算子 Instance 计算逻辑,防止在极端情况下并行度不足的问题。#39999
优化 Bucket Shuffle 使用策略,数据打散不充分时也能获得更好的性能。#36784
窗口函数数据提前过滤,支持单投影中存在多窗口函数的情况。#38393
过滤条件含 NullLiteral
时,智能折叠为 False,转换为 EmptySet
,减少不必要的数据扫描量。#38135
扩大谓词推导适用范围,在特定模式的查询下能够大幅减少数据扫描量。#37314
在分区裁剪中支持部分短路计算逻辑,以提升分区裁剪性能。在特定场景下,性能提升超过 100%。#38191
在用户变量中,支持计算任意的标量函数。#39144
当查询中存在别名冲突时,报错信息能够保持与 MySQL 一致。#38104
实现 AggState 从 2.1 到 3.x 版本的兼容,并解决了 coredump 问题。#37104
重构无 Join 操作时的 Local Shuffle 策略选择机制。#37282
将内部表查询的 scanner 调整为异步模式,以防止查询内部表时出现卡顿。#38403
优化 Join 算子在构建 Hash 表时的 Block Merge 流程。#37471
缩短 MultiCast 持有锁的时间。#37462
优化 gRPC 的 keepAliveTime 设置并增加了链接监测机制,降低了因 RPC 错误导致的查询失败率。#37304
当内存超出限制时,将清理 jemalloc
中的所有 Dirty Pages。#37164
提升 aes_encrypt
/decrypt
函数对常量类型的处理效率。#37194
加快 json_extract
函数对常量数据的处理速度。#36927
提高 ParseUrl
函数处理常量数据的性能。#36882
备份恢复 / 跨集群同步
Restore 功能现已支持删除多余的 Tablet 和分区选项。#39363
在创建 Repository 时,支持检查存储连通性。#39538
Binlog 支持 Drop 表操作,使 CCR 能够支持 Drop 表的增量同步。#38541
Compaction
改进高优 Compaction 任务不受并发控制限制的问题。#38189
根据数据特性自动调整 Compaction 的内存消耗。#37486
修复顺序数据优化策略可能引发的聚合表或 MOR UNIQUE 表数据准确性问题。#38299
优化补副本期间 Compaction 选择 rowset 的策略,以避免触发 -235 错误。#39262
Merge-on-Write
其他
增加了 FE 配置,用于控制冷热分层下查询是否优先访问本地数据的副本。#38322
优化副本调度优先级策略,优先调度缺少数据的副本。#38884
对于有未完成 ALTER JOB 的 Tablet,不进行均衡调度。#39202
List 分区方式的表现支持修改分桶数。#39688
优先选择在线的磁盘服务进行查询。#39654
改进了同步物化视图的 Base 表不支持删除时的提示信息。#39857
改进了单列超过 4G 时的报错信息。#39897
修复了 Insert 语句遇到 Plan 错误时未正确中止事务的问题。#38260
修复了 SSL 链接关闭时的异常问题。#38677
修复了使用 Label 中止事务时未持有表锁的问题。#38842
修复了 Gson Pretty 导致 Image 过大的问题。#39135
修复了 CREAT TABLE 语句在新优化器下未检查 Bucket 为 0 的问题。#38999
修复了 DELETE 条件谓词中包含中文列时报错的问题。#39500
修复了分区均衡模式下频繁均衡 Tablet 的问题。#39606
修复了分区丢失 Storage Policy 属性的问题。#39677
修复了事务内导入多个表时统计信息不正确的问题。#39548
修复了 Random 分桶表删除时报错的问题。#39830
修复了 UDF 不存在导致 FE 无法启动的问题。#39868
修复了 FE 主从 Last Failed Version 不一致的问题。#39947
修复了 Schema Change Job 被取消时,相关 Tablet 可能仍处于 Schema Change 状态的问题。#39327
修复了单个语句修改类型和列顺序 SC 时出现的报错问题。#39107
改进了导入发生 -238 错误时的错误信息提示。#39182
实现在 Restore 分区时,其他分区可以同时进行导入。#39915
对于一些常见的 Stream Load 错误信息,避免了程序栈的打印,简化了错误处理。#38418
改进下线的 BE 可能影响导入出错的问题。#38256
优化了开启 Ranger 鉴权插件后的访问性能。#38575
优化了 Refresh Catalog / Database / Table 操作的权限策略,用户仅需 SHOW 权限即可执行此操作。#39008
修复切换 Catalog 时可能出现的数据库找不到问题。#38114
解决了读取 S3 上不存在的数据时出现的异常报错。#38253
修正导出操作时,指定异常路径可能导致导出位置异常的问题。#38602
修复 Paimon 表时间列时区问题。#37716
临时关闭 Parquet PageIndex 功能以避免部分错误行为。
修复外表查询时,错误选取黑名单中 Backend 节点的问题。#38984
解决读取 Parquet Struct 列类型中缺失子列导致查询错误的问题。#39192
修复 JDBC Catalog 的谓词下推问题。#39082
修正 Parquet 格式读取时,历史格式导致查询结果错误的问题。#39375
增强了 Oracle JDBC Catalog 对 OJDBC6 驱动的兼容性。#39408
解决了 Refresh Catalog/Database/Table 操作可能导致的 FE 内存泄漏问题。#39186 #39871
修复开启 Hive Metastore 事件订阅后,可能出现事件处理失败的问题。#39239
禁止读取自定义 Escape CHAR 和 NULL Format 的 Hive Text 格式表,防止数据错误。#39869
修复某些情况下,无法访问通过 Iceberg API 创建的 Iceberg 表的问题。#39203
修复无法读取存储在开启高可用的 HDFS 集群上的 Paimon 表的问题。#39876
修复开启文件缓存后,读取 Paimon 表 Deletion Vector 可能导致错误的问题。#39875
修复某些情况下读取 Parquet 可能导致死锁的问题 #39945
修复无法在 Follower FE 上使用 show create materialized view
命令的问题。#38794
统一异步物化视图在元数据中的对象类型,使其在数据工具中正常显示。#38797
修复嵌套异步物化视图总是进行全量刷新的问题。#38698
修正 Cancel 任务在重启 FE 后状态可能显示为 running 的问题。 #39424
修复错误使用上下文,导致刷新物化视图任务可能非预期失败的问题。#39690
修复基于外表创建异步物化视图时,VARCHAR 类型因长度不合理导致写入失败的问题。#37668
修复 FE 重启或 Catalog 重建后,基于外表的异步物化视图可能失效的问题。#39355
禁止 List 分区的物化视图使用分区上卷,以防止生成错误数据。#38124
修复在聚合上卷透明改写时,SELECT List 中存在字面量导致的结果错误问题。#38958
修复当查询中存在形如a = a
的过滤条件时,透明改写可能出错的问题。#39629
修复透明改写直查外表无法成功的问题。#39041
删除老优化器上 PreparedStatement
的支持。#39465
修复 JSON 转义字符处理的问题。#37251
修复 JSON 字段重复处理的问题。 #38490
修复倒排索引查询和 LIKE 查询复杂组合的问题。#36687
修复分区过滤条件中存在 or
时,可能导致分区裁剪错误的问题。#38897
修复存在复杂表达式时,可能导致的分区裁剪错误的问题。#39298
修复 AGG_STATE 类型中的子类型,Nullable 可能规划不正确导致执行报错的问题。#37489
修复 Set Operation 算子 Nullable 可能规划不正确,导致执行报错的问题。#39109
修复 Intersect 算子执行优先级不正确的问题。 #39095
修复当查询中存在最大合法日期字面量时,可能出现 NPE 的问题。#39482
修复偶现的规划报错,导致的执行时报错 Slot 不合法的问题。#39640
修复重复引用 CTE 中的列,可能导致结果缺少部分列数据的问题。#39850
修复在查询中存在 CASE WHEN 时,偶现的规划报错问题。#38491
修复不能将 IP 类型隐式转换为 STRING 类型的问题。#39318
修复在使用多维聚合时,当 SELECT List 中存在相同列和其别名时,可能出现的规划报错问题。#38166
修复使用 BE 常量折叠时,处理 BOOLEAN 类型可能不正确的问题。#39019
修复在表达式中存在 default_cluster:
作为 Database 名称前缀导致的规划报错问题。#39114
修复 Insert Into 可能导致的死锁问题。#38660
修复没有在规划全过程持有表锁导致可能出现规划报错的问题。 #38950
修复创建表时不能正确处理 CHAR(0), VARCHAR(0) 的问题。#38427
修复 SHOW CREAT TABLE 可能错误的显示出隐藏列的问题。#38796
修复创建表时没有禁止使用和隐藏列同名列的问题。 #38796
修复在执行 INSERT INTO AS SELECT 时,如果存在 CTE,偶现的规划报错问题。#38526
修复 INSERT INTO VALUES 无法自动填充 NULL 默认值的问题。#39122
修复在 DELETE 中使用 CTE,但是没有使用 USING 时,导致的 NPE 问题。#39379
修复对随机分布的聚合模型表执行删除操作会失败的问题。#37985
修复了 NULL 和非 NULL 列在差集计算时导致的 Coredump 问题。#38737
修复了 width_bucket
函数结果错误的问题。#37892
修复了当单行数据很大且返回结果集也很大时(超过 2GB)查询报错的问题。#37990
修复了 stddev
在 DecimalV2
类型下结果错误的问题。#38731
修复了 MULTI_MATCH_ANY
函数导致的 Coredump 问题。#37959
修复了 INSERT OVERWRITE AUTO PARTITION 导致事务回滚的问题。#38103
修复了 collect_set
函数结合窗口函数使用时 Coredump 的问题。#38234
修复了 mod
函数在异常输入时导致的 Coredump 问题。#37999
修复了多线程下执行相同表达式可能导致 Java UDF 结果错误的问题。#38612
修复了 conv
函数返回类型错误导致的溢出问题。#38001
修复了 histogram
函数结果不稳定的问题。#38608
修复备份恢复后,写入数据时可能出现不可读的问题。#38343
修复跨版本 Restore Version 使用问题。#38396
修复 Backup 失败时 Job 没有取消的问题。#38993
修复 2.1.4 升级到 2.1.5 CCR 报 NPE,导致 FE 不能启动的问题。#39910
Routine Load
修复 Routine Load 一流多表可能得内存泄露的问题。 #38824
修复 Routine Load 包围符和转义符不生效的问题。#38825
修复 Routine Load 任务名包含大写字母时 show routineload
结果不正确的问题。#38826
修复改变 Routine Load Topic 时没有重置 Offset Cache 的问题。#38474
修复并发情况下 show routineload
可能触发异常的问题。#39525
修复 Routine Load 可能重复导入数据的问题。#39526
Group Commit
修复 JDBC 方式下打开 Group Commit 时 setNull 导致的数据报错问题 #38276
修复打开 group commit insert
发往非 Master FE 时可能导致 NPE 问题 #38345
修复 Group Commit 内部写数据错误处理不正确的问题。#38997
修复 Group Commit 执行规划失败时可能触发的 Coredump。#39396
其它
修复并发导入 Auto Partition 表可能报 Tablet 不存在的问题。#38793
修复可能的 Load Stream 泄露问题。#39039
修复 INSERT INTO SELECT 没有数据时开启事务的问题。#39108
使用 Memtable 前移时忽略单副本导入的配置。#39154
修复后台导入 stream load record
遇见 Database 删除时异常中止的问题。 #39527
修复 Strict Mode 模式下,出现数据错误时错误信息提示不准确的问题。#39587
修复 Stream Load 遇见错误数据不返回 Error URL 的问题。#38417
修复 Insert Overwrite 和 Auto Partition 配合使用的问题。#38442
修复 CSV 遇到行分隔符被包围符包围数据时解析错误的问题。#38445
delete_existing_files
属性后,可能会重复删除导出数据的问题。#39304Apache Doris 2.1.5 版本已于 2024 年 7 月 24 日正式发布。2.1.5 版本在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复。
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
支持分区表值函数(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
将 Paimon 升级至 0.8.1 版本。
修复在部分情况下,查询 Paimon 表时导致 org.apache.commons.lang.StringUtils
的问题。#37512
支持腾讯云 LakeFS。 #36891
优化了外部表查询时获取文件列表的超时时间。 #36842
可通过会话变量 fetch_splits_max_wait_time_ms
进行设置
改进了 SQLServer JDBC Catalog 的默认连接逻辑。 #36971
force_sqlserver_jdbc_encrypt_false
设置为 true 时,才会强制在 JDBC URL 中添加 encrypt=false
以减少认证错误,从而提供更灵活的控制加密行为的能力。Hive 表的 show create table
语句增加序列化/反序列化。#37096
FE 端 Hive 表列表默认缓存时间由 1 天改为 4 小时
数据导出(Export/Outfile)支持指定 Parquet 和 ORC 的压缩格式。
当使用 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
当比较表达式两侧都是 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 环境下的读取性能。
优化了 explode
、explode_map
、explode_json
函数的执行性能。
支持为 INSERT INTO ... FROM TABLE VALUE FUNCTION
语句设置 max_filter_ratio
参数。
修复部分情况下查询 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
修复 Join 输入都是聚合的情况下,构建分区物化视图,分区推导失败的问题。#34781
修复 VARIANT 在并发/异常数据等特殊情况下的问题。#37976 #37839 #37794 #37674 #36997
修复 VARIANT 用在不支持的 SQL 中 Coredump 的问题。 #37640
修复 1.x 版本升级到 2.x 或者更高版本时因为 MAP 数据类型 Coredump 的问题。 #36937
修复 ES Catalog 对 Array 的支持。 #36936
修复部分因为保留关键字而导致导入无法执行的问题。#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
修复在千级别 QPS 场景下,Audit Log 占用 FE 内存太多的问题。https://github.com/apache/doris/pull/37786
修复 sleep 函数在输入非法值时 BE Core 的问题。#37681
修复执行过程中 sync filter size meet error
的问题。 #37103
修复执行过程中,使用时区时结果不对的问题。#37062
修复 cast string
到 int
时结果不对的问题。 #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
修复 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
修复 Table Valued Function 引用 Resource 时没有鉴权的问题。 #37132
修复 Show Role 语句中没有 Workload Group 权限的问题。 #36032
修复创建 Row Policy 时,同时执行两条语句,导致 FE 重启失败的问题。#37342
修复部分情况下,老版本升级后,因为 Row Policy 导致 FE 元数据回放失败的问题。#37342
Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。 在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性。
通过 Catalog 查询外部表(如 Hive 数据表)时,系统将忽略不存在的文件: 当从元数据缓存中获取文件列表时,由于缓存更新并非实时,因此可能存在实际的文件列表已删除、而元数据缓存中仍存在该文件的情况。为了避免由于尝试访问不存在的文件而导致的查询错误,系统会忽略这些不存在的文件。 #35319
默认情况下,创建 Bitmap Index 不再默认变更为 Inverted Index。该行为由 FE 配置项 enable_create_bitmap_index_as_inverted_index
控制,默认为 FALSE。#35521
当使用 --console
启动 FE、BE 进程时,所有日志将输出到标准输出,并通过前缀区分不同类型的日志。#35679
关于更多信息,请参考文档:
BE 日志管理
FE 日志管理
如果建表时没有填写表注释,默认注释为空,不再使用表类型作为默认表注释。 #36025
DECIMALV3 的默认精度从 (9, 0) 调整为 (38,9) ,以和最初发布此功能的版本保持兼容。 #36316
支持 FE 火焰图工具:在 FE 部署目录 ${DORIS_FE_HOME}/bin
中会增加profile_fe.sh
脚本,可以利用 async-profiler 工具生成 FE 的火焰图,用以发现性能瓶颈点。
关于更多信息,请参考文档:使用 FE Profiler 生成火焰图
支持 SELECT DISTINCT 与聚合函数同时使用:支持 SELECT DISTINCT
与聚合函数同时使用,在一个查询中同时去重和进行聚合操作,如 SUM、MIN/MAX 等。
支持无 GROUP BY 的单表查询重写:无 GROUP BY
的单表查询重写功能允许数据库优化器在不需要分组的情况下,根据查询的复杂性和数据表的结构,自动选择最佳的执行计划来执行查询,这可以提高查询的性能,减少不必要的资源消耗,并简化查询逻辑。 #35242.
查询优化器全面支持高并发点查询功能:在 2.1.4 版本之后,查询优化器全面支持高并发点查询功能,所有符合点查询条件的 SQL 语句会自动走短路径查询,无需用户在客户端额外设置 set experimental_enable_nereids_planner = false
。 #36205.
支持 Paimon 的原生读取器来处理 Deletion Vector: Deletion Vector 主要用于标记或追踪哪些数据已被删除或标记为删除,通常应用在需要保留历史数据的场景,基于本优化可以提升大量数据更新或删除时的处理效率。 #35241
关于更多信息,请参考文档:数据湖分析 - Paimon
支持在表值函数(TVF)中使用 Resource:TVF 功能为 Apache Doris 提供了直接将对象存储或 HDFS 上的文件作为 Table 进行查询分析的能力。通过在 TVF 中引用 Resource,可以避免重复填写连接信息,提升使用体验。 #35139
关于更多信息,请参考文档:表函数 - HDFS
支持通过 Ranger 插件实现数据脱敏:开启 Ranger 鉴权功能后,支持使用 Ranger 中的 Data Mask 功能进行数据脱敏。
关于更多信息,请参考文档:基于 Apache Ranger 的鉴权管理
构建支持内表触发式更新,如果物化视图使用的是内表,如果内表数据发生变化,可以触发物化视图刷新,需要在创建物化视图时指定 REFRESH ON COMMIT。
支持单表透明改写。
关于更多信息,请参考文档:查询异步物化视图
透明改写支持 agg_state, agg_union 类型的聚合上卷,物化视图可以定义为 agg_state 或者 agg_union,查询使用具体的聚合函数,或者使用 agg_merge
关于更多信息,请参考文档:AGG_STATE
新增 replace_empty
函数:将字符串中的子字符串进行替换,当旧字符串为空时,会将新字符串插入到原有字符串的每个字符前以及最后。
关于更多信息,请参考文档:字符串函数 - REPLACE_EMPTY
支持 show storage policy using
语句:支持查看所有或指定存储策略关联的表和分区。
关于更多信息,请参考文档:SQL 语句 - SHOW
支持 BE 侧的 JVM 指标: 通过在 be.conf
配置文件中设置enable_jvm_monitor=true
,可以启用对 BE 节点 JVM 的监控和指标收集,有助于了解 BE JVM 的资源使用情况,以便进行故障排除和性能优化。
支持为中文列名创建倒排索引。#36321
优化 Segment Cache 所消耗内存的估算准确度,以便能够更快地释放未使用的内存。#35751
在使用 Export 功能导出数据时,提前过滤空分区以提升导出效率。#35542
优化 Routine Load 任务分配算法以平衡 BE 节点之间的负载压力。#34778
在设置错误的会话变量名时,自动识别近似变量值并给出更详细的错误提示。#35775
支持将 Java UDF Jar 文件放到 FE 的 custom_lib
目录中并默认加载。#35984
为审计日志导入作业添加超时的全局变量audit_plugin_load_timeout
,以控制在加载审计插件或处理审计日志时允许的最大执行时间。
优化了异步物化视图透明改写规划的性能。
当 INSERT
源数据为空时,BE 将不会执行任何操作。#34418
支持分批获取 Hudi 和 Hive 文件列表,当存在大量数据文件时可以提升数据扫描性能。 #35107
创建异步物化试图时,禁止使用动态分区。
支持检测 Hive 外表分区数据是否和异步物化试图同步。
允许异步物化试图创建索引。
修复 SQL Cache 在 truncate paritition
后依然返回旧结果的问题。#34698
修复从 JSON Cast 到其他类型 Nullable 属性不对的问题。#34707
修复偶现的 DATETIMEV2 Literal 化简错误。 #35153
修复窗口函数中不能使用 COUNT(*)
的问题。#35220
修复 UNION ALL
下全部是无 FROM 的
SELECT` 时,Nullable 属性可能错误的问题。
#35074
修复 bitmap in join
和子查询解嵌套无法同时使用的问题。#35435
修复在特定情况下过滤条件不能下推到 CTE Producer 导致的性能问题。#35463
修复聚合 Combinator 为大写时,无法找到函数的问题。#35540
修复窗口函数没有被列裁剪正确裁剪导致的性能问题。#35504
修复多个同名不同库的表同时出现在查询中时,可能解析错误导致结果错误的问题。#35571
修复对于 Schema 表扫描时,由于生成了 Runtime Filter 导致查询报错的问题。#35655
修复关联子查询解嵌套,关联条件被折叠为 Null Literal 导致无法执行的问题。#35811
修复规划时,偶现的 Decimal Literal 被错误设置精度的问题。 #36055
修复偶现的多层聚合被合并后规划错误的问题。#36145
修复偶现的聚合扩展规划报错输入输出不匹配的问题。#36207
修复偶现的 <=>
被错误转换为 =
的问题。#36521
修复 Pipeline 引擎上达到限定的行数且内存没有释放时查询被挂起的问题。 #35746
修复当设置 enable_decimal256 =true
且查询优化器回退到旧版本时 BE 发生 Core 的问题。#35731
修复构建异步物化试图指定 store_row_column 属性,be core 的问题。
修复构建异步物化视图指定 storage_medium 不生效的问题。
修复基表删除后,异步物化视图 show partitions 报错的问题。
修复异步物化视图引起备份恢复异常的问题。
修复分区改写可能导致错误结果的问题。
修复创建 Hive 表时无法使用完全限定名(如 ctl.db.tbl
)的问题。 #34984
修复 Refresh 操作时 Hive Metastore 连接未关闭的问题。#35426
修复从 2.0.x 升级到 2.1.x 时可能的元数据回放问题。 #35532
修复 TVF 表函数无法读取空 Snappy 压缩文件的问题。#34926
修复无法读取具有无效最小/最大列统计信息的 Parquet 文件的问题。#35041
修复 Parquet/ORC Reader 中无法处理带有 null-aware 函数下推谓词的问题。#35335
修复创建 Hive 表时分区列顺序的问题。 #35347
修复当分区值包含空格时无法将 Hive 表写入 S3 的问题。 #35645
修复 Doris 写入 Parquet 格式 Hive 表无法被 Hive 读取的问题。 #34981
修复 Hive 表 Schema 变更后无法读取 ORC 文件的问题。#35583
修复了部分情况下,启用 Hive Metastore Listener 后 FE 无法启动的问题。#36533
修复由 Hadoop FS 缓存引起的 FE OOM 问题。#36403
修复 Paimon 表 Schema 变更后无法通过 JNI 读取 Paimon 表的问题。#35309
修复 Paimon 表 Schema 变更后由于表字段长度判断错误导致无法读取的问题。 #36049
修复了读取 Iceberg 中的时间戳列类型时的时区问题。 #36435
修复了 Iceberg 表上的日期时间转换错误和数据路径错误的问题。#35708
修复阿里云 OSS Endpoint 不正确的问题。#34907
修复了大量文件导致的查询性能下降问题。#36431
允许用户定义的属性通过表函数传递给 S3 SDK。#35515
修复 CANCEL LOAD
命令不生效的问题。#35352
修复导入事务 Publish 阶段空指针错误导致导入事务无法完成的问题。#35977
修复 bRPC 通过 HTTP 发送大数据文件序列化的问题。 #36169
修复了在将 DDL 或 DML 转发到主 FE 后,ConnectionContext 中的资源标签未设置的问题。 #35618
修复了在启用 lower_case_table_names
时,Restore 表名不正确的问题。 #35508
修复了清理无用数据或文件的管理命令不生效的问题。 #35271
修复了无法从分区中删除存储策略的问题。#35874
修复了向多副本自动分区表导入数据时的数据丢失问题。#36586
修复了使用旧优化器查询或插入自动分区表时,表的分区列发生变化的问题。 #36514
修复开启表名大小写不敏感后,权限设置无效的问题。#36557
修复通过非 Master FE 节点设置 LDAP 密码不生效的问题。#36598
修复了无法检查 SELECT COUNT(*)
语句授权的问题。#35465
Apache Doris 2.1.3 版本已于 2024 年 5 月 21 日正式发布。该版本更新带来了若干改进项,包括支持向 Hive 回写数据、物化视图、新函数等功能,同时改善权限管理并修复若干问题,进一步提升了系统的性能及稳定性。
1. 支持通过 Hive Catalog 向 Hive 表中回写数据
从 2.1.3 版本开始,Apache Doris 支持对 Hive 的 DDL 和 DML 操作。用户可以直接通过 Apache Doris 在 Hive 中创建库表,通过执行INSERT INTO
语句来向 Hive 表中写入数据。通过该功能,用户可以通过 Apache Doris 对 Hive 进行完整的数据查询和写入操作,进一步帮助用户简化湖仓一体架构。
参考文档:https://doris.apache.org/docs/lakehouse/datalake-building/hive-build/
2. 支持在异步物化视图之上构建新的异步物化视图
用户可以在异步物化视图之上来创建新的异步物化视图,直接复用计算好的中间结果进行数据加工处理,简化复杂的聚合和计算操作带来的资源消耗和维护成本,进一步加速查询性能、提升数据可用性。
3. 支持通过物化视图嵌套物化视图进行重写
物化视图(Materialized View,MV)是用于存储查询结果的数据库对象。现在,Apache Doris 支持通过 MV 嵌套物化视图进行重写,这有助于优化查询性能。
4. 新增 SHOW VIEWS 语句
可以使用SHOW VIEWS
语句来查询数据库中的视图,有助于更好地管理和理解数据库中的视图对象。
5. Workload Group 支持绑定到特定的 BE 节点
Workload Group 可以绑定到特定的 BE 节点,实现查询执行的更精细化控制,以优化资源使用和提高性能。
6. Broker Load 支持压缩的 JSON 格式
Broker Load 支持导入压缩的 JSON 格式数据,可以显著减少数据传输的带宽需求、加速数据导入性能。
7. TRUNCATE 函数可以使用列作为 scale 参数
TRUNCATE 函数现在可以接受列作为 scale 参数,这使得在处理数值数据时可以更加灵活。
8. 添加新的函数 uuid_to_int
和 int_to_uuid
这两个函数允许用户在 UUID 和整数之间进行转换,对于需要处理 UUID 数据的场景有明显帮助。
9. 添加 bypass_workload_group
Session Variable 以绕过查询队列
会话变量 bypass_workload_group
允许某些查询绕过 Workload Group 队列直接执行,这可以用于处理需要快速响应的关键查询。
10. 添加 strcmp 函数
strcmp 函数用于比较两个字符串并返回它们的比较结果,帮助文本数据的处理更加简易。
11. 支持 HLL 函数 hll_from_base64
和 hll_to_base64
HLL(HyperLogLog)是一种用于基数估计的算法,以上两个函数允许用户将 HLL 数据从 Base64 编码的字符串中解码,或将 HLL 数据编码为 Base64 字符串,这对于存储和传输 HLL 数据非常有用。
1. 替换 SipHash 为 XXHash 以改善 Shuffle 性能
SipHash 和 XXHash 都是哈希函数,但 XXHash 在某些场景下可能提供更快的哈希速度和更好的性能,此优化旨在通过采用 XXHash 来提高数据 Shuffle 过程中的性能。
2. 异步物化视图支持 OLAP 表分区列为可以为 NULL:
允许异步物化视图支持 OLAP 表的分区列可以为 NULL,从而增强了数据处理的灵活性。
3. 收集列统计信息时限制最大字符串长度为 1024 以控制 BE 内存使用
在收集列统计信息时,限制字符串的长度可以防止过大的数据消耗过多的 BE 内存,有助于保持系统的稳定性和性能。
4. 支持动态删除 Bitmap Cache 以提高性能
通过支持动态删除不再需要的 Bitmap Cache,可以释放内存并改善系统性能。
5. 在 ALTER 操作中减少内存使用
减少 ALTER 操作中的内存使用,以提高系统资源的利用效率。
6. 支持复杂类型的常量折叠
支持 Array/Map/Struct 复杂类型的常量折叠;
7. 在 Aggregate Key 聚合模型中增加对 Variant 类型的支持
Variant 数据类型能够存储多种数据类型,在此优化中允许对 Variant 类型的数据进行聚合操作,从而增强了半结构化数据分析的灵活性。
8. 在 CCR 中支持新的倒排索引格式
9. 优化嵌套物化视图的重写性能
10. 支持 decimal256 类型的行存格式
在行存格式中支持 decimal 256 类型,以以扩展系统对高精度数值数据的处理能力。
1. 授权(Authorization)
Grant_priv 权限更改:Grant_priv
不能再被任意授予。执行 GRANT
操作时,用户不仅需要具有Grant_priv
,还需要具有要授予的权限。例如,如果想要授予对table1
的 SELECT
权限,那么该用户不仅需要具有 GRANT
权限,还需要具有对table1
的 SELECT
权限,这增加了权限管理的安全性和一致性。
Workload Group 和 Resource 的 Usage_priv:Usage_priv
对 Workload Group 和 Resource 的权限不再是全局级别的,而是仅限于 Resource 和 Workload Group 内,权限的授予和使用将更加具体。
操作的授权:之前未被授权的操作现在都有了相应的授权,以实现更加细致和全面地操作权限控制。
2. LOG 目录配置
FE 和 BE 的日志目录配置现在统一使用LOG_DIR
环境变量,所有其他不同类型的日志都将以LOG_DIR
作为根目录进行存储。同时为了保持版本间的兼容性,以前的配置项sys_log_dir
仍然可以使用。
3. S3 表函数(TVF)
由于之前的解析方式在某些情况下可能无法正确识别或处理 S3 的 URL,因此将对象存储路径的解析逻辑进行重构。对于 S3 表函数中的文件路径,需要传递force_parsing_by_standard_uri
参数来确保被正确解析。
由于许多用户将某些关键字用作列名或属性值,因此将如下关键字设置为非保留关键字,允许用户将其用作标识符使用。
1. 修复在腾讯云 COSN 上读取 Hive 表时的无数据错误
解决了在腾讯云 COSN 存储上读取 Hive 表时可能遇到的无数据错误,增强了与腾讯云存储服务的兼容性。
2. 修复 milliseconds_diff 函数返回错误结果
修复milliseconds_diff
函数在某些情况下返回错误结果的问题,确保了时间差计算的准确性。
3. 用户定义变量应转发到 Master 节点
确保用户定义的变量能够正确地传递到 Master 节点,以便在整个系统中保持一致性和正确的执行逻辑。
4. 修复添加复杂类型列时遇到的 Schema Change 问题
在添加复杂类型列时,可能会遇到 Schema Change 问题,此修复确保了 Schema Change 的正确性。
Routine Load
常用于订阅 Kafka 消息队列中的数据,此修复解决了在 FE Master 节点更改时可能导致的数据丢失问题。
6. 修复当找不到 Workload Group 时 Routine Load 失败的问题
修复了当Routine Load
找不到指定 Workload Group 时导致的失败问题。
7. 支持 column string64,以避免在 string size 溢出 unit32 时 Join 失败的问题
在某些情况下,字符串的大小可能会超过 unit32 的限制,支持string64
类型可以确保字符串 JOIN 操作的正确执行。
8. 允许 Hadoop 用户创建 Paimon Catalog
允许具有权限的对应 Hadoop 用户来创建 Paimon Catalog。
9. 修复 function_ipxx_cidr 函数与常量参数的问题
修复了function_ipxx_cidr
函数在处理常量参数时可能出现的问题,保证函数执行的正确性。
10. 修复使用 HDFS 进行还原时的文件下载错误
解决了在使用 HDFS 进行数据还原时遇到的“failed to download”错误,确保了数据恢复的正确性和可靠性。
11. 修复隐藏列相关的列权限问题
在某些情况下,隐藏列的权限设置可能不正确,此修复确保了列权限设置的正确性和安全性。
12. 修复在 K8s 部署中 Arrow Flight 无法获取正确 IP 的问题
此修复解决了在 Kubernetes 部署环境中 Arrow Flight 无法正确获取 IP 地址的问题。
Apache Doris 2.1.2 版本已于 2024 年 4 月 12 日正式发布。该版本提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性。
将 EXPORT 命令中 data_consistence
属性的默认值调整为 Partition,这可以使得并发导入的同时做 EXPORT 操作更容易成功。
兼容部分 MySQL Connector(如 MySQL.Data for .NET)将 SELECT @``@autocommit
的返回值类型变更为 BIGINT。
Auto Partition 语法变化,详见 https://doris.apache.org/zh-CN/docs/table-design/data-partition#%E8%87%AA%E5%8A%A8%E5%88%86%E5%8C%BA
Auto Partition 禁止和 Dynamic Partition 同时作用在一张表上
增加 processlist 系统表功能,用户可以通过查询系统表获得活跃的链接信息。
增加新的表函数 LOCAL
以访问部分共享存储上的文件。
跳过部分不必要检查,加速在 K8s 环境下优雅退出的速度。
在 Profile 中增加已命中的物化视图信息,能够方便地定位物化视图是否命中。
针对 DB2 Catalog,增加测试链接是否通畅的功能,能够在建立 Catalog 时做部分链接检查。
增加 DNS Cache,解决 K8s 环境下域名解析较慢,从而影响查询的问题。
增加异步刷新 Catalog 中表的行数信息,避免查询抖动。
修复 Iceberg Catalog 中,不支持 Iceberg 自定义属性的问题,例如 "io.manifest.cache-enabled"。
LEAD
/LAG
函数的 Offset 起始位置可以设置为 0。
修复部分导入过程中可能出现的 Timeout 的问题。
修复部分 ARRAY
/ MAP
/ STRUCT
类型在 Compaction 中引起 Core 的问题。
修复查询过程中 Runtime Filter 部分等待超时的问题。
修复 unix_timestamp
函数在 Auto Partition 中可能导致 Core 的问题。
2024 年 4 月 3 日正式发布。该版本针对 2.1.0 版本出现的问题进行较为全面的优化,提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性。
改变了 Float 类型字段返回值序列化的方式,可以提升大数据量下 Float 返回的性能。
将部分 Table Valued Function 变更为系统表 active_queries()
, workload_groups()
。
由于 show query``/l``oad profile stmt
语句在实际用户场景中使用较少,该语句将不再支持与维护。同时该功能在 Pipeline 与 PipelineX 引擎中不支持。
升级 Arrow Flight 版本至 15.0.2,同时用户需要使用 ADBC 15.0.2 版本访问 Doris。
修复了从 2.0.x 滚动升级至 2.1.x 的过程中,部分 BE 节点升级出现 Core 的问题。
修复了在 2.0.x 滚动升级至 2.1.x 过程中,使用 JDBC Catalog 会出现 Query 报错的问题。
默认开启列级权限。
Pipeline 和 PipelineX 引擎能够在 K8S 下准确获取 CPU 核数。
支持读取 Parquet INT96 类型
支持 IP 透传的协议,以方便在 FE 之前启用代理的同时还能获取客户端准确的 IP 地址,实现白名单权限控制。
增加对 Workload Queue 检测指标。
增加系统表 backend_active_tasks
,以实时监测每个 BE 上活跃任务以及消耗的资源信息。
在 Spark Doris Connector 中增加 IPV4 和 IPV6 的支持。
CCR 支持倒排索引。
支持查询 Experimental 的 Session Variable。
支持建立 bitmap_union(bitmap_from_array())
函数的物化视图。
支持对 Hive 中 HIVE_DEFAULT_PARTITION
分区进行列裁剪。
支持 set variable
语句中使用函数。
Arrow 序列化方式增加对 Variant 类型的支持。
当系统自动重启或者滚动升级之后,自动启动 Routine Load 导入任务。
优化了 Routine Load 任务在各个 BE 上的分布方式,让各个 BE 负载更加均衡。
升级 Spark 的版本,解决部分 Spark Load 的安全问题。
在冷热分离过程中,自动跳过被删除的 Tablet.
Workload Group 支持对 Routine Load 的资源进行限制。
大幅度优化多表物化视图查询改写性能。
优化 Broker Load 任务对 FE 的内存使用
优化 Partition 的裁剪逻辑。
优化 Tablet Schema Cache 对 BE 内存使用。
多表物化视图增加更多对 JOIN 类型的支持,包括 INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN、LEFT SEMI JOIN、RIGHT SEMI JOIN、LEFT ANTI JOIN、RIGHT ANTI JOIN
修复 TopN 下推导致的问题。
修复 JAVA UDF 带来的内存泄露问题。
修复 ODBC 表备份恢复问题。
修复对 Variant 类型进行运算时常量折叠会导致 BE 出错的问题
修复了部分导入任务失败时 Routine Load 卡住的问题。
修复 SEMI JOIN 结果不正确的问题。
当列的数据为空时,修复建立倒排索引会出错的问题。
修复<=> join
操作会出现 Core 的问题。
修复部分列更新在有 Sequence 列结果准确性的问题。
修复 Select Outfile 导出到 Parquet 或者 ORC 格式的列类型映射问题。
修复在 Restore 过程中 BE 有时候会 Core 的问题。
修复 array_agg
函数结果不对的问题。
使 Variant 类型应当一直是 nullable.
修复 Schema Change 没有正确处理空 Block 的问题。
修复使用 json_length()
函数时部分场景会出错的问题。
修复 Iceberg 表没有正确处理 Date Cast 转换的问题。
修复 Variant 类型建立 Index 时出现的部分 Bug。
修复当多个 map_agg
函数同时使用时结果不正确的问题。
修复 money_format
函数的返回结果不正确的问题。
修复在高并发的建立链接时部分请求会卡住的问题。
Apache Doris 2.1.8 版本已于 2025 年 01 月 24 日正式发布。 该版本持续在湖仓一体、异步物化视图、查询优化器与执行引擎、存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性。
SKIP_CHECK_ULIMIT
以跳过 BE 进程内关于 ulimit 值校验检查,仅适用于 Docker 快速启动场景中应用。#45267enable_cooldown_replica_affinity session
变量控制冷热分层下查询选用副本亲和性 restore_job_compressed_serialization
和 backup_job_compressed_serialization
用于解决 db tablet 数量非常大情况下备份和恢复操作时 FE OOM 的问题,打开之后无法降级SKIP_CHECK_ULIMIT
以跳过 start_be.sh
脚本以及 BE 进程内关于 swap
、max_map_count
、ulimit
相关校验检查,仅适用于 Docker 快速启动场景中应用。#45269ldap_group_filter
用于自定义 Group 过滤。#43292scan bytes
统计不准的问题。#45167Hive
Iceberg
Paimon
Hudi
JDBC
MaxCompute
其他
修复倒排索引 Compaction 异常处理的问题 #45773
修复倒排索引构建因为等锁超时失败的问题 #43589
修复异常情况下倒排索引写入 Crash 的问题。#46075
修复 Match 函数特殊参数时空指针的问题 #45774
修复 NGram Bloomfilter Index 设置 gram_size = 65535
时 Crash 的问题。#43654
修复 Bloomfilter Index 计算 DATE 和 DATETIME 不对的问题。#43622
修复 Drop Coloumn 没有自动 Drop Bloomfilter Index 的问题。#44478
减少 Bloomfilter Index 写入时的内存占用。#46047
ipv6_cidr_to_range
函数边界条件 Coredump。#46252cut_ipv6
函数结果不对的问题。#43921enable_jvm_monitor=true
后可能导致的内存泄露问题。#44311