大数据分析——Apache Doris(六十九)

370 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情

 Doris+Doris on ES完美配合

上文提到,OLAP分析场景,经常会遇到一个大难题:针对需要关联维度查询的场景,究竟是做成大宽表还是查询时Join? 总结来说,如果要支持维度数据存储,并且支持Join,目前开源的各类引擎或多或少都存在一些局限性。Druid的lookup Join实现太弱了,真实业务场景如果基本上很难适用。Doris和Clickhouse这里引擎都支持Join,并且支持明细数据存储,但是如要要高频Update,也是没办法做到。如果跳出Olap引擎,在应用层做Join实现,也是一种解法,但是实现成本高。

直到遇见了Doris on ES!

Doris on ES 查询性能如何?

Doris引擎为MPP架构,本身就具备很强的性能及横向扩展能力。Doris on ES构建在这个能力之上,并且对查询做了大量的优化,这给对ES原理理解不深的同学带来了方便。

主要的优化点如下:

  • Shard级别并发

  • 行列扫描自动适配,优先列式扫描

  • 顺序读取,提前终止

  • 两阶段查询变为一阶段查询

  • Join场景使用Broadcast Join,对于小批量数据Join特别友好

不太完善的地方:

  • 目前Doris on ES还不支持聚合下推,但是对于我们维度数据查询场景其实是用不到聚合操作。需要用到聚合操作的场景需要注意一下。不过目前社区也正在开发支持。
 基于DOE的架构实现
 数据链路升级

数据链路升级适配比较简单

  • Doris构建新的Olap表,配置好物化视图。

  • 实时导入基于之前事实数据的kafka topic启动routine load。

  • 离线校准通过broker load从hive中导入。

  • Doris创建on ES外表(社区正在开发自动同步建表)

 报表引擎适配升级
  • 抽象基于Doris的星型模型虚拟cube表

  • 适配cube表查询解析,智能下推

  • 支持灰度上线