如图示,最上游是应用端,也就是会读写 Hologres 的各种客户端,比如说数据集成,Apache Flink、Spark 等。这些客户端通常会使用 SQL 接口,将读写数据的请求发送给 Hologres,这些请求会经过一个负载均衡服务器,然后这些请求就会路由分发到一个叫做 Frontend 的节点。一个 Hologres 实例通常有多个 Frontend 节点,这样就可以支持非常高的 QPS 请求。Frontend 节点主要是负责 SQL 的 Parse、优化等功能。
经过一系列的处理之后,Frontend 就会将用户的 SQL 请求转换成一个物理执行计划,然后这些物理执行计划就会被分发到后端的一个执行节点,执行真正的物理读写请求,最终写入的数据会持久化至分布式文件系统,比如阿里的 Pangu 系统或者开源的 HDFS。
这里要特别强调的是,正常的 SQL 解析,然后通过 Query 的优化器优化生成最优执行计划,通常这部分的链路开销是比较大的,对于高 QPS 的读写场景,这往往会成为一个性能的瓶颈。
资料来源:《实时数仓“王炸组合”-实时计算》,下载链接:https://developer.aliyun.com/topic/download?id=7944
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。