简介:《实时数仓入门训练营》由阿里云研究员王峰、阿里云高级产品专家刘一鸣等实时计算 Flink 版和 Hologres 的多名技术/产品一线专家齐上阵,合力搭建此次训练营的课程体系,精心打磨课程内容,直击当下同学们所遇到的痛点问题。由浅入深全方位解析实时数仓的架构、场景、以及实操应用,7 门精品课程帮助你 5 天时间从小白成长为大牛!
本文整理自直播《Hologres 数据导入/导出实践-王华峰(继儒)》
视频链接:https://developer.aliyun.com/learning/course/807/detail/13891
内容简要:
一、Hologres生态介绍
二、Hologres实时读写接口介绍
三、Hologres实时读写场景介绍
四、Demo演示
五、常见问题及未来展望
Hologres生态介绍
(一)Hologres生态

Hologres是一款兼容PostgreSQL协议的实时交互式分析产品,也已经打通了大数据生态。以最常见的几个开源组件来说,如Apache Flink、Spark、Hive、Kafka等,Hologres都已经有了相关的Connector实现并进行了开源。
对于实时链路,用户依托Flink或者Spark,就可以将上游的比如埋点或业务数据等,以非常高的性能以及毫秒级的延迟导入Hologres。对于离线链路,Hologres也支持把外部系统的数据以非常简便的操作导入,反过来也支持再将数据备份回外部系统,比如阿里云的MaxComputer、OSS等。
当数据导入Hologres之后,因为Hologres本身兼容PostgreSQL协议,所以能使用各种现成的查询工具,无缝连接Hologres进行数据的展示、查询等。
(二)Dataworks数据集成支持输入
除了刚才提到的大数据场景之外,使用阿里云的Dataworks数据集成功能,我们还能将用户存储在传统数据库中的数据导入Hologres,实现方便高效的数据库整库实时镜像。

如上图所示,当下Dataworks数据集成支持将MySQL的Binlog,SQLServer的CDC,Oracle的CDC实时镜像同步至Hologres。此外,Dataworks也支持将Kafka,还有阿里云Datahub的数据同步至Hologres。

另外值得一提的是,Datahub这个产品自身也提供了直接将数据实时同步到Hologres的功能,这个功能叫Datahub Connector。使用这个功能用户就无需经过Flink或者其他组件,可以直接将数据导入到Hologres,对于无需ETL的数据同步是一个比较快捷的方式。
Hologres实时读写接口介绍

Hologres实时读写实现原理
上图为整个Hologres实时读写实现原理架构图。
从上往下看,最上游是应用端,也就是会读写Hologres的各种客户端,比如说数据集成,Apache Flink、Spark等等。这些客户端通常会使用SQL接口,将读写数据的请求发送给Hologres,这些请求会经过一个负载均衡服务器,然后这些请求就会路由分发到一个叫做Frontend的节点。一个Hologres实例通常有多个Frontend节点,这样就可以支持非常高的QPS请求。Frontend节点主要是负责SQL的Parse、优化等功能。
经过一系列的处理之后,Frontend就会将用户的SQL请求转换成一个物理执行计划,然后这些物理执行计划就会被分发到后端的一个执行节点,执行真正的物理读写请求,最终写入的数据会持久化至分布式文件系统,比如阿里的Pangu系统或者开源的HDFS。
这里要特别强调的是,正常的SQL解析,然后通过Query的优化器优化生成最优执行计划,通常这部分的链路开销是比较大的,对于高QPS的读写场景,这往往会成为一个性能的瓶颈。
所以对于一些常见的SQL场景,这里我们列了几个 SQL,如下所示。

Fixed Plan
比如Insert into table values (),就是简单地插入一行或者几行。还有Insert into table values () on conflict do update,就是对数据进行几行的更新。Select * from table where pk = xxx和Delete from table where pk = xxx是根据主键去进行数据的查找或者删除。
对于这些常见的SQL,Hologres的Frontend做了一定的短路优化,略去了很多不必要的优化逻辑,直接生成最优的一个执行计划,并发送给后端的执行节点,这样就能提升整体的请求吞吐。
下面我们看一下,当物理执行计划发送

本文介绍了阿里云Hologres的实时数仓解决方案,包括其与Apache Flink、Spark、Dataworks等生态的集成,实时读写接口的原理和优化,以及实时写入、宽表Merge、维表Join和Binlog场景的应用。通过实例演示了Flink和Dataworks如何实时读写Hologres,并讨论了常见问题和未来规划。
最低0.47元/天 解锁文章
4028

被折叠的 条评论
为什么被折叠?



