Doris女神在这个明媚的春天揭开了她的神秘面纱,这一次Doris又将以什么样的新面貌迎接大家,带来什么样的新版本发布呢?
4月13日下午,Apache Doris (incubating) 0.10.0在北京中关村国际会议中心举办了开发者沙龙。此次沙龙不仅有Doris团队带来的全新版本发布,同时还有我们的大厂用户和好朋友们带来第一时间的使用分享。
Doris(原百度 Palo)是一款基于大规模并行处理技术的分布式 SQL 数据库,由百度在2017年开源,2018年进入Apache 孵化器。此次是Doris开源后发布的第二个版本。
Doris主要面向TB至PB级别的结构化数据的多维分析场景。典型场景包括高并发的点查询以及高吞吐的即席查询。目前在百度内部支撑200多条业务线,部署了1000多台服务器。单一业务最大700+TB。
What’s new in 0.10.0
此次新版本发布,陈明雨同学代表Doris主创团队,带来了五大功能点。
• Unified Loading Framework(统一后端导入框架)
为适配各类数据源的加载需求,Doris此次在Mini Load, BrokerLoad的基础上,带来全新的第三种数据加载方式,Streaming Load,丰富用户选择,同时优化了原有的导入性能。
• Routine Load Job(支持例行Kafka导入)
Apache Kafka是目前业界使用非常广泛的消息队列,Doris在此次发行版本中新增内嵌Kafka例行导入的功能。用户只需将待导入的数据导入Kafka队列中,就可利用Streaming Load的功能,自动加载数据导入Doris中。
Kafka例行导入流程图
Doris Kafka例行导入执行支持自动检测Partition的变化,保证Kafka消息的Exactly Once 消费语义。使用上也十分简单,只需在Doris中手动创建一个例行任务即可。
• Doris on Elasticsearch (当Doris遇上Elasticsearch)
ElasticSearch是一款实时的分布式搜索引擎,其在全文检索,任意维度组合的点查询方面表现非常非常优异。嫁接Doris到ElasticSearch上,可以弥补Doris在全文检索,Geo数据扫描,高维度组合查询方面的劣势;同时利用Doris的分布式计算框架,也可以补足ElasticSearch在分布式计算(Distribution Aggretation, Distribution Join)方面的欠缺。
Doris和ElasticSearch交互图
• Performance Optimization (性能优化)
Apache Doris 0.10.0版本中,除了丰富导入功能,扩展使用场景外,针对查询查询性能,也做了大量优化工作。
优化Decimal类型的实现。采用定长的16字节(128位)存储decimal;对比此前的浮动字节存储方案,在Group By查询上提升了20倍性能。
Fragment并发执行。根据扫描数据量,动态切分扫描任务,并发扫描文件,有效利用空闲CPU/IO资源,能够降低3~5倍响应延迟。
• Usability(易用性)
支持UDF,用户可通过C++语句编写udf。
新增hll_raw_agg函数,支持在窗口函数中使用hll_union_agg。
新增20+metrics监控项,协助用户更好洞察集群内部状态。
修复30+ bug,提升系统稳定性。
Doris一直处于一个高速迭代的模式中,所以大家可以持续关注代码库的commit,关注我们修复的问题和更新的功能。
ApacheDoris 在微博平台的应用
来自微博的马骎同学是微博平台研发部feed组的资深研发,他为大家揭秘了这家国内超一线社交媒体平台的数据系统结构。
马骎同学介绍了基于Doris设计系统结构,并介绍了如何应用Doris来对分钟级的微博阅读数历史进行存储计算,以支撑上层业务。
在多维分析层面,马骎同学也提出了使用和维护中的小技巧。将多个维度作为key并预留多个value列。
ApacheDoris在美团点评的实践
康凯森是来自美团点评大数据平台的资深研发。自18年以来,Doris在美团点评内已覆盖包括外卖、酒旅、财务、金融、到店、用户平台等多个主营业务线。
他深入浅出地介绍了美团点评在众多技术选型(SQL on Hadoop、ClickHouse、SnappyData、TiDB)中是如何基于成本、功能及性能的考量,最终选择了Doris。并通过几个生动的例子对比了使用Doris前后查询速度及操作的优化。
最后,康凯森同学还介绍了美团点评同学对Doris的贡献。
• 谓词下推的传递性优化。Inner join情形下,左右表谓词可相互下推。
• 动态并发扫描。根据扫描数据量,切分查询任务,并发扫描数据,提升查询性能3-5倍。
• 引入colocate join。两张表遵从相同分区模式情况下,colocate join比shuffle join有2~3倍性能提升。
ApacheDoris在搜狐智能媒体的应用
翟东波是来自搜狐智能媒体研发中心的资深研发,他很有针对性的就搜狐智能媒体业务中实时和离线的数据分析痛点,展示了Doris的解决方案。
不仅如此,东波也是Doris的Contributor之一,他带来了自己对Doris的贡献。
• 完善了HLL类型的聚合计算
• 新增了hll_raw_aggfunction,支持窗口函数中调用hll_union_agg function
• 未来预计可以支持Doris读取Parquet。此功能正在紧密开发中,期待后续的pull request。
最后,Doris主创团队也为大家准备了精美的茶歇和伴手礼。不仅有人手一件的精致速干T,还有惊喜的抽奖环节。
最后,全家福。
希望Doris越来越好,Doris大家庭日益壮大,有越来越多的朋友和家人与我们共同见证Doris的成长!
更多关于本次沙龙的详细技术分享、现场录屏,欢迎关注Apache Doris(incubating)官方公众号!
敬请期待
相关链接:
Apache Doris官方网站:
http://doris.incubator.apache.org
Apache Doris Github:
https://github.com/apache/incubator-doris
Apache Doris Wiki:
https://github.com/apache/incubator-doris/wiki
Apache Doris 开发者邮件组:
dev@doris.apache.org