Apache Doris 极速数据湖分析技术细节公开!( 五 )


在 2023 年 Q1,我们会发布新的优化器的 preview 版本 。新的优化器完全重构了现有的优化器的框架 。实现了一个可插拔可扩展 CPU 的查询优化器 。可以帮助用户解决复杂 SQL 的获取 best plan 的问题;其次我们也会发布 Pipeline 执行引擎的 preview 版本,使 Doris 能够更细力度的去规划 BE 节点的执行资源 。保证 BE 节点可以充分利用我们的单机多核的特性,并且用户不再需要手动去设置查询并发度等等 。比如在闲时,利用更多的 CPU 资源;在忙时,可以进行大小查询,这种动态的资源隔离 。前文提到的 compute node,在 Q1 季度会发布完整的 release 版本 。还有 Vertical conduction,解决大宽表场景下的后台数据merge的内存开销问题 。
在 2023 年 Q2,会发布 2.0.0 版本 。除了刚才提到的优化器和 Pipeline 达到 GA 状态以外,还会有一些新的特性,比如半结构化数据的一些查询,存算分离的一些架构演进等等 。希望在未来的一年能够继续给我们的用户提供更便捷、统一的分析型数据库 。
四、问答环节Q1:Doris 通过连接外部的 Hive,能不能自动监控 Hive 的表结构或数据的变化?A1:现在提供了手动的 refresh,可以手动 refresh Catalog 级别,DB 级别,table 级别和 partition 级别 。最新的 1.2.2 版本,也支持通过 Hive Metastore 的 Hook 机制来自动监听 Hive 的元数据变动,达到一个增量的元数据同步的效果 。
Q2:Doris 和 Flink 的对接方式推荐哪种?A2:建议用 Doris 官方提供的 Flink connector 。在我们的官方库上可以找到对应的代码库下载链接和发布版本 。
Q3:Doris 读对象存储数据湖对性能和时延的影响会怎么样?A3:在之前也讲了 Doris 的一些优化点,包括它的 read,消除小的 IO,本地的 file block cache 等等 。做这些功能的出发点都是为了尽量避免访问远端存储,以及避免大量的小 IO 远端访问 。我们做这些优化的初衷,都是为了能够尽量的去把大块数据一次性的读过来,然后在本地进行处理 。据我们的测试情况来看,经过我们的这些优化,Doris 对热数据的访问,几乎是可以达到和本地表一样的访问性能 。
Q4:Doris 怎么处理高并发的请求?A4:关于高并发请求,可以分为两部分,第一部分要解决单一查询所占用的资源开销的问题 。比如一个查询需要发送到一百台机器去查询,它的扇出特别大,并发是肯定很低的 。所以我们会通过分区裁剪,分桶裁剪等,尽量把一个查询限制在某一台机器上,甚至是某一个数据分片上 。这样单个查询的资源开销足够的小,那整个集群的整体的并发支持就会很高 。第二,如果是在数据湖上的这种高频发查询的话,其实本质上还是会回归到关于远端存储 IO 的一些问题上来 。也就是尽量去减少小 IO 的远端查询或者通过缓存来解决热数据查询,因为 remote IO 的 overhead 是没法彻底根除的 。它跟远端存储的网络,访问的特性都有关系 。所以说本质上还是要通过一些 cache 和 buffer 特性来去消除这些远端存储的 IO 的次数以达到一个高并发的效果 。

【Apache Doris 极速数据湖分析技术细节公开!】


推荐阅读