1.简介
本项目是一个以电商为背景,采用Flink+Paimon构建的实时数据湖仓。(详情可移步github仓库github.com/fengyu-eng/…,如对您有帮助,恳请点个★star★支持一下吧!)
2.架构
1)数据源:本项目通过Spring模拟数据生成器,分别生成日志以及业务数据。日志数据写入Kafka队列,业务数据写入MySQL数据库。
2)数据采集同步:本项目使用Java编写的FlinkSql代码实现数仓的搭建。日志数据->通过Flink的Kafka Connector对接,写入paimon表(HiveMetastore)的ODS原始数据层。业务数据->通过Flink CDC将MySQL中的业务数据同步到paimon表。
3)数仓分层:ODS(原始数据层)->DIM(维度层)->DWD(明细层)->DWS(汇总层)->ADS(应用层)
4)可视化:通过Doris Catalog对接paimon数据源,使用Superset进行可视化分析
3.版本
| 软件 | 版本 | 下载地址 |
|---|---|---|
| Flink | 1.17.2 | mirrors.aliyun.com/apache/flin… |
| Paimon | 0.8.0 | repo.maven.apache.org/maven2/org/… |
| Hadoop | 3.1.3 | archive.apache.org/dist/hadoop… |
| Kafka | 3.7.1 | mirrors.aliyun.com/apache/kafk… |
| Doris | 2.1.0 | apache-doris-releases.oss-accelerate.aliyuncs.com/apache-dori… |
| JDK | 8 | |
| MAVEN | 3.9.9 | mirrors.aliyun.com/apache/mave… |
| Hive | 3.1.3 | mirrors.huaweicloud.com/apache/hive… |
4.湖仓建设
1)ODS层建设
- 日志数据->Kafka->Flink Kafka Connector
2. 业务数据->MySQL->Flink CDC
- 元数据存储在Hive中,实际数据存储在HDFS,示例:
2)DIM层建设
3)DWD层建设
4)DWS层建设
5)ADS层建设
6)可视化示例:Doris作为一个MPP高性能数据库,在查询性能上有显著优势,所以本项目通过Doris Catalog去对接paimon表进行可视化