Apache Doris 2.1.4 版本正式发布

亲爱的社区小伙伴们,Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性,欢迎大家下载使用。

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

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

行为变更

  • 通过 Catalog 查询外部表(如 Hive **数据表)时,系统将忽略不存在的文件:**当从元数据缓存中获取文件列表时,由于缓存更新并非实时,因此可能在实际的文件列表已删除、而元数据缓存中仍存在该文件的情况。为了避免由于尝试访问不存在的文件而导致的查询错误,系统会忽略这些不存在的文件。
  • 默认情况下,创建 Bitmap Index 不再默认变更为 Inverted Index。该行为由 FE 配置项 enable_create_bitmap_index_as_inverted_index 控制,默认为 false。
  • 当使用 --console 启动 FE、BE进程时,所有日志将输出到标准输出,并通过前缀区分不同类型的日志。具体文档地址如下:
    • https://doris.apache.org/zh-CN/docs/admin-manual/log-management/be-log
    • https://doris.apache.org/zh-CN/docs/admin-manual/log-management/fe-log
  • 如果建表时没有填写表注释,默认注释为空,不再使用表类型作为默认表注释。
  • decimalv3 的默认精度从 (9, 0) 调整为 (38,9) ,以和最初发布此功能的版本保持兼容。

新功能

查询优化器

  • 支持 FE 火焰图工具:在 FE 部署目录${DORIS_FE_HOME}/bin中会增加profile_fe.sh脚本,可以利用 async-profiler 工具生成 FE 的火焰图,用以发现性能瓶颈点。
    • 参考文档:https://doris.apache.org/zh-CN/community/developer-guide/fe-profiler/
  • 支持 SELECT DISTINCT 与聚合函数同时使用:支持SELECT DISTINCT与聚合函数同时使用,在一个查询中同时去重和进行聚合操作,如 SUM、MIN/MAX 等。
  • 支持无 GROUP BY 的单表查询重写:无GROUP BY的单表查询重写功能允许数据库优化器在不需要分组的情况下,根据查询的复杂性和数据表的结构,自动选择最佳的执行计划来执行查询,这可以提高查询的性能,减少不必要的资源消耗,并简化查询逻辑。
  • 查询优化器全面支持高并发点查询功能 :在 2.1.4 版本之后,查询优化器全面支持高并发点查询功能,所有符合点查询条件的 SQL 语句会自动走短路径查询,无需用户在客户端额外设置 set experimental_enable_nereids_planner = false

湖仓一体

  • 支持 Paimon 的原生读取器来处理 Deletion Vector:Deletion Vector 主要用于标记或追踪哪些数据已被删除或标记为删除,通常应用在需要保留历史数据的场景,基于本优化可以提升大量数据更新或删除时的处理效率。
    • 参考文档:https://doris.apache.org/zh-CN/docs/lakehouse/datalake-analytics/paimon
  • 支持在表值函数(TVF)中使用 Resource:TVF 功能为 Apache Doris 提供了直接将对象存储或 HDFS 上的文件作为 Table 进行查询分析的能力。通过在 TVF 中引用 Resource,可以避免重复填写连接信息,提升使用体验。
    • 参考文档:https://doris.apache.org/zh-CN/docs/sql-manual/sql-functions/table-functions/hdfs/
  • 支持通过 Ranger 插件实现数据脱敏:开启 Ranger 鉴权功能后,支持使用 Ranger 中的 Data Mask 功能进行数据脱敏。
    • 参考文档:https://doris.apache.org/zh-CN/docs/admin-manual/auth/ranger/

异步物化视图

  • 构建支持内表触发式更新,如果物化视图使用的是内表,如果内表数据发生变化,可以触发物化视图刷新,需要在创建物化视图时指定 REFRESH ON COMMIT
  • 支持单表透明改写。
    • 参考文档:https://doris.apache.org/zh-CN/docs/query/view-materialized-view/query-async-materialized-view
  • 透明改写支持 agg_state, agg_union 类型的聚合上卷,物化视图可以定义为 agg_state 或者 agg_union,查询使用具体的聚合函数,或者使用 agg_merge
    • agg_state 参考文档:https://doris.apache.org/zh-CN/docs/sql-manual/sql-types/Data-Types/AGG_STATE#agg_state

其他

  • 新增 replace_empty 函数:将字符串中的子字符串进行替换,当旧字符串为空时,会将新字符串插入到原有字符串的每个字符前以及最后。
    • 参考文档:https://doris.apache.org/zh-CN/docs/sql-manual/sql-functions/string-functions/replace_empty
  • 支持 show storage policy using 语句:支持查看所有或指定存储策略关联的表和分区。
    • 参考文档:https://doris.apache.org/zh-CN/docs/sql-manual/sql-statements/Show-Statements/SHOW-STORAGE-POLICY-USING
  • 支持 BE 侧的 JVM 指标: 通过在be.conf配置文件中设置enable_jvm_monitor=true,可以启用对 BE 节点 JVM 的监控和指标收集,有助于了解 BE JVM 的资源使用情况,以便进行故障排除和性能优化。

功能优化

  • 支持为中文列名创建倒排索引。
  • 优化 Segment Cache 所消耗内存的估算准确度,以便能够更快地释放未使用的内存。
  • 在使用 Export 功能导出数据时,提前过滤空分区以提升导出效率。
  • 优化 Routine Load 任务分配算法以平衡 BE 节点之间的负载压力。
  • 在设置错误的会话变量名时,自动识别近似变量值并给出更详细的错误提示。
  • 支持将 Java UDF Jar 文件放到 FE 的 custom_lib 目录中并默认加载。
  • 为审计日志导入作业添加超时的全局变量audit_plugin_load_timeout ,以控制在加载审计插件或处理审计日志时允许的最大执行时间。
  • 优化了异步物化视图透明改写规划的性能。
  • INSERT 源数据为空时,BE 将不会执行任何操作。
  • 支持分批获取 Hudi 和 Hive 文件列表,当存在大量数据文件时可以提升数据扫描性能。
    • 120 万文件场景下,获取文件列表的时间由390秒缩减到46秒。
  • 创建异步物化视图时,禁止使用动态分区。
  • 支持检测 Hive 外表分区数据是否和异步物化视图同步。
  • 允许异步物化视图创建索引。

问题修复

查询优化器

  • 修复 SQL Cache 在 truncate paritition 后依然返回旧结果的问题。
  • 修复从 JSON Cast 到其他类型 Nullable 属性不对的问题。
  • 修复偶现的 Datetimev2 Literal 化简错误。
  • 修复窗口函数中不能使用 count(*) 的问题。
  • 修复 UNION ALL 下全部是无 FROM 的 SELECT 时,Nullable 属性可能错误的问题。
  • 修复 Bitmap in Join 和子查询解嵌套无法同时使用的问题。
  • 修复在特定情况下过滤条件不能下推到 CTE Producer 导致的性能问题。
  • 修复聚合 Combinator 为大写时,无法找到函数的问题。
  • 修复窗口函数没有被列裁剪正确裁剪导致的性能问题。
  • 修复多个同名不同库的表同时出现在查询中时,可能解析错误导致结果错误的问题。
  • 修复对于 Schema 表扫描时,由于生成了 Runtime Filter 导致查询报错的问题。
  • 修复关联子查询解嵌套,关联条件被折叠为 Null Literal 导致无法执行的问题。
  • 修复规划时,偶现的 Decimal Literal 被错误设置精度的问题。
  • 修复偶现的多层聚合被合并后规划错误的问题。
  • 修复偶现的聚合扩展规划报错输入输出不匹配的问题。
  • 修复偶现的 <=> 被错误转换为 = 的问题。

查询执行

  • 修复 Pipeline 引擎上达到限定的行数且内存没有释放时查询被挂起的问题。
  • 修复当设置 enable_decimal256 =true 且查询优化器回退到旧版本时 BE 发生 Core 的问题。

物化视图

  • 修复构建异步物化视图指定 store_row_column 属性,be core 的问题。
  • 修复构建异步物化视图指定 storage_medium 不生效的问题。
  • 修复基表删除后,异步物化视图 show partitions 报错的问题。
  • 修复异步物化视图引起备份恢复异常的问题。
  • 修复分区改写可能导致错误结果的问题。

半结构化数据分析

  • 修复带有空 Key 的 Variant 类型发生 Core 的问题。
  • Bitmap 索引和 Bloom Filter 索引不应支持轻量级索引变更。

主键模型

  • 修复在有部分列更新导入的情况下发生异常重启,可能会产生重复 Key 的问题。
  • 修复在内存紧张时发生 Clone 时 BE 可能会发生 core 的问题。

湖仓一体

  • 修复创建 Hive 表时无法使用完全限定名(如 ctl.db.tbl)的问题。
  • 修复 Refresh 操作时 Hive Metastore 连接未关闭的问题。
  • 修复从 2.0.x 升级到 2.1.x 时可能的元数据回放问题。
  • 修复 TVF 表函数无法读取空 Snappy 压缩文件的问题。
  • 修复无法读取具有无效最小/最大列统计信息的 Parquet 文件的问题。
  • 修复 Parquet/ORC Reader 中无法处理带有 null-aware 函数下推谓词的问题。
  • 修复创建 Hive 表时分区列顺序的问题。
  • 修复当分区值包含空格时无法将 Hive 表写入 S3 的问题。
  • 修复 Doris 写入 Parquet 格式 Hive 表无法被 Hive 读取的问题。
  • 修复 Hive 表 Schema 变更后无法读取 ORC 文件的问题。
  • 修复了部分情况下,启用 Hive Metastore Listener 后 FE 无法启动的问题。
  • 修复由 Hadoop FS 缓存引起的 FE OOM 问题。
  • 修复写出 Parquet 格式文件写出 Row Group 过小的问题。
  • 修复 Paimon 表 Schema 变更后无法通过 JNI 读取 Paimon 表的问题。
  • 修复 Paimon 表 Schema 变更后由于表字段长度判断错误导致无法读取的问题。
  • 修复了读取 Iceberg 中的时间戳列类型时的时区问题。
  • 修复了 Iceberg 表上的日期时间转换错误和数据路径错误的问题。
  • 修复阿里云 OSS Endpoint 不正确的问题。
  • 修复了大量文件导致的查询性能下降问题。
  • 允许用户定义的属性通过表函数传递给 S3 SDK。

数据导入

  • 修复 CANCEL LOAD 命令不生效的问题。
  • 修复导入事务 Publish 阶段空指针错误导致导入事务无法完成的问题。
  • 修复 bRPC 通过 HTTP 发送大数据文件序列化的问题。

数据管控

  • 修复了在将 DDL 或 DML 转发到主 FE 后,ConnectionContext 中的资源标签未设置的问题。
  • 修复了在启用 lower_case_table_names 时,Restore 表名不正确的问题。
  • 修复了清理无用数据或文件的管理命令不生效的问题。
  • 修复了无法从分区中删除存储策略的问题。
  • 修复了向多副本自动分区表导入数据时的数据丢失问题。
  • 修复了使用旧优化器查询或插入自动分区表时,表的分区列发生变化的问题。

内存管理

  • 修复日志中频繁报错 Cgroup meminfo 获取失败的问题
  • 修复使用 Bloom filter 时 Segment 缓存大小不受控制导致进程内存异常增长的问题。

权限

  • 修复开启表名大小写不敏感后,权限设置无效的问题。
  • 修复通过非Master FE 节点设置 LDAP 密码不生效的问题。
  • 修复了无法检查 SELECT COUNT(*) 语句授权的问题。

其他

  • 修复 MySQL 连接损坏情况下,客户端 JDBC 程序无法关闭连接的问题。
  • 修改 SHOW PROCEDURE STATUS 语句返回值与 MySQL 协议不兼容的问题。
  • libevent 库强制开启 Keepalive 以解决部分情况下连接泄露的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/35813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HBase的概念、运行原理及分析

HBase 是一个分布式的、面向列的开源数据库&#xff0c;由 Apache 软件基金会维护&#xff0c;基于 Google 的 Bigtable 论文设计。它运行在 Hadoop 文件系统&#xff08;HDFS&#xff09;之上&#xff0c;并且能够处理大规模结构化数据的存储和访问。主要特点包括&#xff1a;…

linux桌面运维----第三天

1、Linux登录信息命令&#xff1a; whoami命令&#xff08;记住&#xff09; 作用&#xff1a;查看当前活动用户 ​语法&#xff1a;whoami 选项 ​选项&#xff1a; --help  在线帮助。--vesion  显示版本信息 2、获取命令帮助手册&#xff1a; man 命令名命令名 …

自动驾驶仿真Carla入门

Carla自动驾驶仿真平台学习指南 一、入门阶段 了解Carla基本概念 Carla&#xff1a;一个用于自动驾驶研究的开源仿真平台&#xff0c;提供高度可定制化的城市环境和车辆模型。支持Python和C API&#xff0c;用于控制仿真场景、车辆行为和传感器模拟。安装Carla 访问Carla官方…

C实现linux下自己的shell

strcmp函数 char *strsep(char **stringp, const char *delim); strsep 是 C 标准库字符串实用程序的一部分&#xff0c;定义在 <string.h> 头文件中。它可以用来从字符串对象中提取被给定定界符包围的标记。 strsep 需要两个参数-指向 char*的指针和指向 char 的指针。…

BaseModel的数据类型

在Pydantic的BaseModel中&#xff0c;可以使用Python的基本数据类型以及一些特殊的类型&#xff0c;包括但不限于以下几种&#xff1a; 1、基本数据类型: int: 整数 float: 浮点数 str: 字符串 bool: 布尔值 (True 或 False) bytes: 字节串 None: 用于表示可选字段的缺失…

玩转AI之四个免费热门的AI工具

2023年&#xff0c;可以说称之为人工智能元年&#xff0c;随着 AI 人工智能、机器学习技术的不断发展&#xff0c;各种 AI 算法的应用也越来越广泛&#xff0c;在AI这一领域中&#xff0c;软件、工具和网站如雨后春笋般涌现。下半年&#xff0c;预计会有更多王炸级别的产品问世…

打破数据分析壁垒:SPSS复习必备(十)

Means过程 统计学上的定义和计算公式 定义&#xff1a;Means过程是SPSS计算各种基本描述统计量的过程&#xff0c;其实就是按照用户指定条件&#xff0c;对样本进行分组计算均数和标准差&#xff0c;如按性别计算各组的均数和标准差。 用户可以指定一个或多个变量作为分组变…

java基于ssm+jsp 社区生活超市管理系统

1前台首页功能模块 社区生活超市管理系统 &#xff0c;在社区生活超市管理系统可以查看首页、商品信息、我的、跳转到后台等内容&#xff0c;如图1所示。 图1系统首页界面图 用户登录、用户注册&#xff0c;通过注册填写用户账号、密码、用户姓名、性别、用户手机、送货地址等…

观测云 VS 开源自建

观测云是一款面向全技术栈的监控观测一体化产品方案&#xff0c;具备强大而丰富的功能&#xff0c;目标是帮助最终用户提升监控观测的能力&#xff0c;化繁为简&#xff0c;轻松的构建起完整的监控观测体系。同时能够帮助整个企业的开发技术团队从统一的观测能力上获得完整的收…

ACL 2023事件相关(事件抽取、事件关系抽取、事件预测等)论文汇总

ACL 2023事件抽取相关(事件抽取、事件关系抽取、事件预测等)论文汇总&#xff0c;后续会更新全部的论文讲解。 Event Extraction Code4Struct: Code Generation for Few-Shot Event Structure Prediction 数据集&#xff1a;ACE 2005 动机&#xff1a;与自然语言相比&#xf…

QStyledItemDelegate 和 QItemDelegate 的作用

在Qt中&#xff0c;QStyledItemDelegate和QItemDelegate是用于自定义和控制项视图控件&#xff08;如QListView、QTableView、QTreeView&#xff09;中项的显示和编辑的委托类。它们提供了对项的外观和编辑行为的定制能力。尽管它们在功能上有相似之处&#xff0c;但它们之间有…

文件上传漏洞---Pyload

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 本文重点从靶场案例分析文件上传漏洞常见的Pylod&#xff0c;本文演示靶场upload-labs 一.文件类型---Pyload 不同的文件对应不同的文件类型&#xff0c;后端代码通过限制特定的文件类型…

fastadmin框架修改前端时间戳格式的时区

一、上传文件 将 moment-timezone-with-data.js 和 moment-timezone-with-data.min.js 文件上传到项目的 \public\assets\libs\moment\ 文件夹中。 二、配置中引入文件 在 \public\assets\js\require-backend.js 文件中增加所引入文件的配置: moment-timezone-with-data: …

RISC-V教学短视频同类视频调研报告

调研方向介绍 RV相关教学类短视频不多&#xff0c;所以我想选取多个单独维度进行调研&#xff0c;如“RV短视频”&#xff08;非教学类&#xff0c;如推广产品&#xff09;&#xff0c;“教学类短视频”&#xff08;非RV题材&#xff09;&#xff0c;“RV教学视频”&#xff0…

JS(JavaScript)入门指南(DOM、事件处理、BOM、数据校验)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 玉阶生白露,夜久侵罗袜。 却下水晶帘,玲珑望秋月。 ——《玉阶怨》 文章目录 一、DOM操作1. D…

SpringCloud Alibaba Sentinel中@SentinelResource使用实践总结

Sentinel 提供了 SentinelResource 注解用于定义资源&#xff0c;并提供了 AspectJ 的扩展用于自动定义资源、处理 BlockException 等。 注意&#xff1a;注解方式埋点不支持 private 方法。 官网地址&#xff1a;注解埋点支持 【1】资源名称限流 ① controller方法 GetMapp…

SpringBoot实现发送验证码功能

提示&#xff1a;本次内容主要学习如何做一个发送验证码和识别验证码的功能 文章目录 目录 文章目录 前言 一、图片验证码是什么&#xff1f; 二、使用步骤 1.创建验证码生成 2.生成验证码 总结 前言 提示&#xff1a;本次内容主要学习如何做一个发送验证码和识别验证码…

LabVIEW技术交流-布尔灯仿真数码管

问题来源 闲来无事&#xff0c;逛论坛问答&#xff0c;看到这样一个问题&#xff0c;觉得有意思&#xff0c;就自己尝试下。 这个功能其实是不难的&#xff0c;就是显示不同的数值时&#xff0c;对相应的布尔灯进行真假值操作就行了。但是我又想到了更有趣的玩法&#xff0c;能…

C#学习系列之DataGrid无故添加空行

C#学习系列之DataGrid无故添加空行 前言解决前解决后总结 前言 采用别人的轮子&#xff0c;想在基础上改界面&#xff0c;但是copy后&#xff0c;无论怎么样都会有空行&#xff0c;实在是绑定数据的输入没有任何赋值。 解决前 绑定的数据中输入三组数据&#xff0c;但是没有第…

手写原生Ajax

打开请求: xhr.open(GET, /api/lian, true); 这里使用open方法初始化一个请求。参数分别为&#xff1a; GET&#xff1a;请求的方法&#xff0c;这里是GET方法&#xff0c;用于从服务器获取数据。/api/lian&#xff1a;请求的URL&#xff0c;表示将向服务器的/api/lian端点发送…