返回
EMR OLAP 建设实时数仓大数据分析新范式 应对多类型实时计算场景
后端
2023-12-20 10:16:13
背景
随着大数据时代的到来,数据量呈爆炸式增长,对实时数据分析的需求也越来越强烈。传统的数据仓库解决方案难以满足实时数据分析的需求,因为它们通常无法提供足够高的吞吐量和低延迟。
为了解决这个问题,阿里云 EMR OLAP 与 Flink 团队深度合作,支持了 Flink 到 ClickHouse 的 Exactly-Once 写入来保证整个实时数仓数据的准确性。本文介绍了基于 EMR OLAP 的开源实时数仓解决方案之 ClickHouse 事务实现,探讨了该方案的架构、原理和应用场景,并给出了详细的部署步骤和配置指南。
架构
基于 EMR OLAP 的开源实时数仓解决方案之 ClickHouse 事务实现的架构如下图所示:
该方案主要由以下组件组成:
- Flink: Flink 是一个分布式流处理框架,可以用来构建实时数据处理应用程序。
- ClickHouse: ClickHouse 是一个专为在线分析处理(OLAP)而设计的开源分布式列式数据库管理系统。
- EMR OLAP: EMR OLAP 是阿里云提供的一款基于 Apache Kylin 的实时数仓服务,可以提供低延迟、高吞吐量的数据查询服务。
原理
基于 EMR OLAP 的开源实时数仓解决方案之 ClickHouse 事务实现的原理如下:
- Flink 从数据源读取数据,并将其写入到 ClickHouse 的临时表中。
- ClickHouse 将临时表中的数据聚合,并将其写入到永久表中。
- EMR OLAP 从 ClickHouse 的永久表中读取数据,并将其提供给用户查询。
这种方案可以保证数据的 Exactly-Once 写入,即每条数据只会被写入到 ClickHouse 的永久表中一次。这是因为 Flink 和 ClickHouse 都支持事务,并且 EMR OLAP 会在读取 ClickHouse 的永久表数据之前,先检查该表是否有未提交的事务。如果有未提交的事务,则 EMR OLAP 会等待该事务提交后再读取数据。
应用场景
基于 EMR OLAP 的开源实时数仓解决方案之 ClickHouse 事务实现可以应用于以下场景:
- 实时数据分析: 该方案可以提供低延迟、高吞吐量的数据查询服务,非常适合构建实时数据分析系统。
- 数据仓库: 该方案可以作为数据仓库的补充,用于存储和分析实时数据。
- 机器学习: 该方案可以为机器学习模型提供实时数据,从而提高模型的准确性和实时性。
部署步骤
- 部署 Flink 集群。
- 部署 ClickHouse 集群。
- 部署 EMR OLAP 服务。
- 配置 Flink 和 ClickHouse 的连接信息。
- 创建 Flink 任务,并将其提交到 Flink 集群。
配置指南
- 配置 Flink 的连接信息。
- 配置 ClickHouse 的连接信息。
- 配置 EMR OLAP 的连接信息。
总结
基于 EMR OLAP 的开源实时数仓解决方案之 ClickHouse 事务实现是一种低延迟、高吞吐量、高可用的实时数仓解决方案。该方案非常适合构建实时数据分析系统、数据仓库和机器学习系统。