趣头条 Flink+ClickHouse 实时数据分析平台构建
2024-02-06 18:25:31
趣头条:Flink+ClickHouse 实时数据分析平台构建
趣头条基于 Flink+ClickHouse 构建实时数据分析平台,实现实时查询。针对不同的业务场景,实时数据报表中会展现数据指标曲线图和详细的数据指标表。数据指标的采集和计算为每五分钟一个时间窗口,也存在三分钟或一分钟的特殊情况。
查询的页面分为离线查询页面和实时查询页面。今年所实现的改造是在实时查询中接入了 ClickHouse 计算引擎。该平台架构包括数据采集层、数据存储层、计算层、数据服务层和数据展示层。数据采集层主要采集业务日志数据;数据存储层包括离线存储和实时存储,离线存储主要使用 MySQL 和 Doris,实时存储主要使用 Kafka 和 ClickHouse;计算层包括离线计算和实时计算,离线计算主要使用 Spark,实时计算使用 Flink;数据服务层包括离线查询和实时查询,离线查询使用 Hive 和 Impala,实时查询使用 ClickHouse;数据展示层主要使用 Web 前端技术。
在数据采集层,主要采集业务日志数据。业务日志数据包括用户行为数据、系统运行数据和业务数据。用户行为数据主要包括用户点击、页面浏览和搜索等数据;系统运行数据主要包括系统运行状态和异常日志等数据;业务数据主要包括订单数据、交易数据和财务数据等数据。数据采集器将采集到的数据发送到 Kafka 集群中。
在数据存储层,包括离线存储和实时存储。离线存储主要使用 MySQL 和 Doris。MySQL 主要用于存储结构化数据,Doris 主要用于存储半结构化数据。实时存储主要使用 Kafka 和 ClickHouse。Kafka 主要用于存储实时数据流,ClickHouse 主要用于存储实时数据表。
在计算层,包括离线计算和实时计算。离线计算主要使用 Spark。Spark 主要用于处理离线数据,例如离线数据清洗、离线数据分析和离线数据挖掘等。实时计算使用 Flink。Flink 主要用于处理实时数据,例如实时数据清洗、实时数据分析和实时数据挖掘等。
在数据服务层,包括离线查询和实时查询。离线查询使用 Hive 和 Impala。Hive 主要用于查询离线数据表,Impala 主要用于查询离线数据表。实时查询使用 ClickHouse。ClickHouse 主要用于查询实时数据表。
在数据展示层,主要使用 Web 前端技术。Web 前端技术主要用于构建数据展示页面,例如数据指标曲线图、数据指标表和数据指标报表等。
该平台的优点如下:
1. 实时性:该平台能够实时采集和处理数据,并实时展示数据指标,满足业务的实时数据分析需求。
2. 扩展性:该平台能够根据业务需求弹性扩容,满足业务的快速增长需求。
3. 稳定性:该平台采用了多种技术手段保证系统的稳定性,例如数据备份、故障恢复和负载均衡等。
4. 易用性:该平台提供了友好的用户界面,方便用户使用。