Apache Doris(incubating) 0.13.0版本正式发布

68be383d-3873-4f81-adf1-675ef0d717b4.png


Apache Doris 0.13.0版本正式发布啦!

此次发布的新版本为Doris进入Apache社区孵化的第五个正式版本。经过6个月的研发,Doris在功能和性能上都得到了很大的提升。共计60位社区同学贡献了633个commit,感谢以下同学为Doris做出的贡献:


Mingyu Chen, EmmyMiao87, Yingchun Lai, yangzhg, caiconghui, ZhangYu0123, HappenLee, xy720, lichaoyong, Zhengguo Yang, Yunfeng,Wu, HangyuanLiu, HuangWei, WingC, wyb, Binglin Chang, wangbo, Lijia Liu, Dayue Gao, sduzh, wutiangan, morningman, hffariel, kangkaisen, HaiBo Li, worker24h, wangcong18, chenmingyu, xueyan.li, xinghuayu007, gengjun-git, Stalary, 令狐少侠, Youngwb, WangCong, xbyang18, weizuo93, turbo jason, marising, kangpinghuang, caoyang10, Zhao Chun, Xiang Wei, Seaven, Fullstop000, 张家锋, zhbinbin, zhaojintaozhao, yiguolei, wfjcmcb, sdgshawn, satanson, jmk1011, hexiang55, funyeah, bigdataplumber, Yuance.Li, YuJun, Janko, ChenXiaofei

目前社区贡献者数量已经增长到121位。

从上一版本到现在,我们还迎来了4位Committer:


yangzhg

wuyunfeng

caiconghui

wangbo


感谢所有参与Doris社区建设的同学,同时也感谢所有关注和使用Doris的朋友给我们的建议和支持!


一些有趣的事情


最早的一次提交发生在早上7点,最晚的发生在0点。

不熬夜的好习惯要保持下去!

d96fda0d-b7ca-4552-b8c5-0589215ec881.png


周四的提交最频繁

是因为周五要写周报吗a100dbae-ae7d-464f-81b1-645114eb07ed.png

2a96d2a3-157a-4bab-b5da-cd5dc2667593.png


非东八区的小伙伴,让我看到你们的双手好吗?

063faee6-89ec-4f59-8984-4f6d62c68ac1.png






们在新版本中增加了9个新功能:




大查询落盘

Doris在排序和窗口函数功能中支持查询落盘功能。当参数 enable_spilling 为 true 并且查询达到内存限制时,查询将进行落盘,以避免由于内存瓶颈导致的无法查询的问题。

0.13版本主要支持在排序和窗口函数上的落盘功能。




物化视图支持 bitmap_union, hll_union 和 count

物化视图支持更丰富的聚合函数:bitmap_unionhll_union和 count。在“订单”业务情景中,用户可以借助生成 count 类型的物化视图,来分析不同维度的订单数量。还可以对某些重复数据精确去重分析(例如分析网站流量中的PV和UV数据)执行 bitmap 和 hll 函数的预先计算。Doris可以自动将用户查询与最佳物化视图进行匹配,以加快查询速度。




Spark导入

通过外部 Spark 资源实现对导入数据的 ETL 处理,提高了 Doris 大数据量的导入性能,并节省了 Doris 集群计算资源。它主要用于在初始迁移期间将大量数据导入 Doris 的方案。




RoutineLoad 和 StreamLoad支持新的数据格式:Json

通过load语句中的转换规则将 Json 格式的数据导入 Doris。此功能对于原始数据格式为 Json 的日志服务特别有用。用户不再需要在外层将数据处理为 csv 格式。




修改 RoutineLoad

可以通过 ALTER ROUTINE LOAD stmt 修改常规 Routine load 的属性,例如并发性、Kafka消费进度。注意只能修改处于 “pause” 状态的作业。修改并发度后,当 Routine load被 resume 时,新设置的属性将用于 Routine load。




Logstash 插件

Logstash 插件用于将数据从 Logstash 输出到 Doris 中。使用HTTP协议与Doris FE Http接口进行交互,通过Doris的 Stream load 来加载 Logstash 的数据。




支持查询结果输出到文件

Doris 当前支持将查询结果导出到第三方文件系统,例如HDFS,S3,BOS。语法是从 MySQL 语法手册中引用的,导出格式为CSV。导出查询结果可以提供给其他用户,以供其他系统下载或进一步处理。对于因为结果集太大而无法通过 MySQL 协议输出的查询很有帮助,例如当函数 bitmap_to_string 后所标识的ID过多时。





在delete语句中支持谓词

delete语句支持IN或NOT IN谓词的条件,用户可以通过此功能删除满足不同值的行。





们做出了如下的功能优化:




Doris on ES


  • 支持从ES提取_id并使用ES的通配符或别名索引创建表
    来自本地ES文档的_id字段是ES索引的主键。此字段可由Doris在ES上获取。此外,Doris支持使用别名或通配符索引(例如log_ *)创建外部表。用户可以使用别名和通配符来匹配所有索引,从而轻松搜索所有这些索引。

  • 重构并增强了读取 ES 元数据的逻辑

  • 为doc_values扫描添加docvalue限制并默认启用doc_values扫描

  • 忽略_total节点以提高效率和完全信任的文档数




合并规则优化

此优化更新了触发合并的策略,该版本合并策略将大福减少写放大,空间放大,读取性能等问题(它倾向于合并相邻大小的文件)。当相同版本的数量相同时,合并数量减少,并且文件总数减少。




简化删除过程

删除期间的轮训机制被取消,并由事务回调代替,把delete命令的响应时间减少到毫秒级。




在连接谓词下推时支持简单的可传递性

当查询过滤谓词中涉及的列与联接条件中涉及的列一致时,过滤谓词可以进行列传输,还可以过滤联接中的另一个表,从而减少了数据量,达到了提高查询速度的效果。 




非阻塞 OlapTableSink

在此优化中,发送过程和加载新行过程在 OlapTableSink 中并发执行,并且导入性能得到改善。经过测试,56G Broker load,原始版本将运行4个小时,多版本可将时间减半。




支持数据库级别的事务管理并使用 ArrayDeque提升事物任务性能

事务管理支持 DB 级别的划分,并且每个 DB 不会相互阻塞,从而提高了事务任务的执行效率。




使用 IN 谓词提高查询性能

添加新的配置 max_pushdown_conditions_per_column 以限制可以向下推到存储引擎的单个列的条件数。它与 split scan key 的先前配置不同。仅默认值为1024。将两种配置分开后,Doris的 qps 有所提高,CPU使用率也降低了。




优化读取 parquet 文件的速度

读取 parquet 文件时,在 broker 读取过程中增加了一个缓存缓冲区。当 broker 要寻找到 position 并从远程 parquet 文件中获取数据时,会先尝试在缓存缓冲区中读取该位置。一旦期望的数据命中了缓存缓冲区,那么我们就不用再花时间从远程 parquet 文件中读取数据了。测试后,broker 中的 parquet 文件的时间可以减半。适用于 Spark load 和 Broker load。





增加了新的查询函数:


bitmap_intersect
orthogonal_bitmap_intersect in UDAF
orthogonal_bitmap_intersect_count in UDAF
orthogonal_bitmap_union_count in UDAF





API上我们的变化如下:


  • [SegmentV2] 新表的默认存储格式均为 Segment V2 

  • [License] 修复了 Doris 目前的一些 License 问题
    编译 Doris 时,默认将不试用 Mysql client 和 LZO 库。如果需要该依赖,编译时通过修改配置引入依赖。




载地址在这里:


0.13.0版本的功能特性就介绍到这里,您可以通过点击原文、或从Doris官网下载0.13.0版本。


同时,因为Doris项目处于快速迭代中,很多迭代功能和bug修复无法及时地体现在Apache官方版本中,因此百度在github上维护了一个镜像库用于发布3位快速迭代版本。

3位快速迭代版本主要用于bug修复,建议生产环境使用。

https://github.com/baidu-doris/incubator-doris




8c55c512-089e-4ce8-bbaf-44297ad782aa.png

百度数据仓库Palo

基于 Apache Doris 的企业级数据仓库托管服务


全新UI支持,更有新用户0元试用3个月优惠活动

登陆百度智能云官网搜索Palo,马上试用!



73f2498c-ff80-4c87-9db9-3de87aadfb92.gif

📣百度 Palo/Doris 团队,诚邀对开源软件、分布式数据库感兴趣的小伙伴们

我们虚位以待!

简历发送至:yiguolei@baidu.com






欢迎扫码关注:

cffb6826-7b2b-4da3-aff2-88c1ae915df7.jpg

Apache Doris(incubating)官方公众号


相关链接:

Apache Doris官方网站:

http://doris.incubator.apache.org

Apache Doris Github:

https://github.com/apache/incubator-doris

Apache Doris 开发者邮件组:

dev@doris.apache.org 







2709e882-4c12-4bce-aac5-2e57f5f04afd.png

本文分享自微信公众号 - ApacheDoris(gh_80d448709a68)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Apache Doris(孵化器项目)是一个开源的分布式实时数据仓库,旨在提供高性能和可伸缩性的数据分析和报告能力。它的主要原理和实践如下: 1. 列式存储:Apache Doris使用列式存储来存储数据,即将每列的数据分开存储在不同的文件中。这种存储方式有助于提高数据的压缩率,减少存储空间的占用,并提高数据查询的效率。 2. 分布式架构:Apache Doris采用分布式架构,将数据分片存储在多个节点上,以实现数据的水平扩展和负载均衡。每个节点都有相同的数据副本,确保数据的高可靠性和容错性。 3. Write-optimized:Apache Doris采用了“write-optimized”(写优化)的设计理念,即将写入操作的性能优化至极致。它使用了基于LSM树(Log-structured Merge Tree)的数据结构,将写入操作顺序化和批处理,大大提高了写入性能。 4. 计算与存储分离:Apache Doris将计算和存储分离,通过多个计算引擎(如Palo,Spark)对数据进行分析和查询。这种架构允许根据需求进行灵活的扩缩容,并提供了多种数据接入和导出方式。 在实践中,可以按照以下步骤使用Apache Doris: 1. 安装和配置:首先需要下载和部署Apache Doris,然后进行相关配置,包括节点的IP地址、端口号、数据存储路径等。 2. 数据导入:将数据导入到Apache Doris中,可以通过多种方式,如使用ETL工具、使用JDBC驱动程序或通过API进行数据导入。 3. 数据模型设计:根据需求设计数据模型,包括表的结构、字段名和数据类型等。 4. 数据分片和分布:根据数据量和负载要求,将数据分片存储在不同的节点上,并确保数据的均衡分布。 5. 数据查询和分析:使用SQL语句对数据进行查询和分析,通过连接计算引擎对数据进行处理和计算,并根据需要生成相应的报表和图表。 6. 集群监控和管理:通过监控工具对集群进行实时监控,包括节点的状态、负载情况和性能指标等,及时发现和解决问题。 总之,Apache Doris通过列式存储、分布式架构、写优化和计算与存储分离等原理,提供了高效可靠的数据分析和报告能力。在实践中,可以根据需求进行安装配置、数据导入、数据模型设计、数据查询和分析,以及集群监控和管理等步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ApacheDoris

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值