遇见 Doris:Apache Doris (incubating)0.10.0 开发者沙龙
Doris 女神在这个明媚的春天揭开了她的神秘面纱,这一次 Doris 又将以什么样的新面貌迎接大家,带来什么样的新版本发布呢?
4 月 13 日下午,Apache Doris (incubating) 0.10.0 在北京中关村国际会议中心举办了开发者沙龙。此次沙龙不仅有 Doris 团队带来的全新版本发布,同时还有我们的大厂用户和好朋友们带来第一时间的使用分享。
关于 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
版权声明: 本文为 InfoQ 作者【ApacheDoris】的原创文章。
原文链接:【http://xie.infoq.cn/article/d03514437d8c4f5917ccedaad】。文章转载请联系作者。
评论