# FlinkEcomRealtimeDW **Repository Path**: xylve/flink-ecom-realtime-dw ## Basic Information - **Project Name**: FlinkEcomRealtimeDW - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-04 - **Last Updated**: 2025-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flink电商实时数仓项目 ## 项目简介 本项目是一个基于Apache Flink构建的电商实时数据仓库系统,旨在对电商平台的业务数据和用户行为数据进行实时采集、处理和分析,为业务决策提供数据支持。系统采用Lambda架构,结合批处理和流处理的优势,实现了数据的实时处理与历史数据的查询分析。 ## 系统架构 ![系统架构图](系统架构图URL) 本系统主要包含以下几个部分: 1. **数据采集层**:使用Flink CDC采集MySQL业务数据库变更,使用日志收集系统采集用户行为数据 2. **数据处理层**:基于Flink实时计算框架进行数据清洗、转换和聚合 3. **数据存储层**:使用ClickHouse作为OLAP分析引擎,存储处理后的数据 4. **数据服务层**:提供API接口供前端展示系统调用 ## 项目模块 项目由以下几个主要模块组成: - **logger**:日志收集模块,负责收集用户行为数据 - **flink-cdc**:基于Flink CDC的数据采集模块,用于实时捕获MySQL数据库的变更 - **realtime**:实时计算模块,包含各种实时计算任务 - **gmall-publisher-test**:数据服务模块,提供API接口 ## 技术栈 - **开发语言**:Java 8 - **实时计算框架**:Apache Flink - **数据采集**:Flink CDC、Kafka - **数据存储**:ClickHouse、MySQL、HBase - **资源调度**:YARN - **容器化部署**:Docker ## 数据流向 1. 业务数据:MySQL → Flink CDC → Kafka → Flink → ClickHouse 2. 行为数据:用户行为 → 日志系统 → Kafka → Flink → ClickHouse ## 核心功能 - 实时数据同步:将MySQL业务数据实时同步到数据仓库 - 用户行为分析:分析用户浏览、点击、购买等行为 - 实时销售监控:监控商品销售情况,包括销售额、销售量等指标 - 用户画像构建:基于用户行为构建用户画像 - 实时报表展示:提供实时数据可视化展示 ## 部署说明 项目采用Docker容器化部署,包含以下几个部分: 1. **Hadoop生态**:HDFS、YARN、Hive等 2. **Kafka集群**:消息队列,用于数据传输 3. **ClickHouse**:OLAP分析引擎 4. **HBase**:存储用户画像等数据 5. **Flink集群**:实时计算引擎 详细部署步骤请参考`部署`目录下的相关文档。 ## 快速开始 1. 准备环境: ```bash # 启动Hadoop、Kafka等基础环境 cd 部署/hadoop-hive-hbase docker-compose up -d # 启动Kafka cd ../kafka docker-compose up -d ``` 2. 初始化数据库: ```bash # 初始化MySQL数据库 mysql -uroot -p < doc/MySQL/gmall.sql # 初始化ClickHouse数据库 clickhouse-client --multiline < doc/clickhouse/gmall.sql ``` 3. 启动各个模块: ```bash # 启动日志收集系统 cd logger mvn spring-boot:run # 提交Flink作业 cd ../realtime mvn clean package flink run -c com.zy.app.DwdTradeOrderPreProcess target/realtime-1.0-SNAPSHOT.jar ``` 4. 访问数据服务: ```bash cd ../gmall-publisher-test mvn spring-boot:run ``` 访问 http://localhost:8070 查看数据展示界面 ## 数据模型 系统包含以下几个主要数据模型: 1. **ODS层**:原始数据层,存储原始业务数据和行为数据 2. **DWD层**:明细数据层,存储清洗后的明细数据 3. **DWM层**:中间结果层,存储计算中间结果 4. **DWS层**:服务数据层,存储面向主题的轻度聚合数据 5. **ADS层**:应用数据层,存储面向应用的高度聚合数据 ## 开发指南 1. 添加新的数据源: - 在MySQL中创建相应的表结构 - 在Flink CDC模块中添加新的数据源配置 - 在ClickHouse中创建对应的表结构 2. 添加新的实时计算任务: - 在realtime模块中创建新的Flink作业类 - 配置数据源和数据目标 - 实现业务逻辑 - 提交Flink作业 ## 贡献指南 1. Fork本仓库 2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开一个Pull Request ## 许可证 本项目采用MIT许可证 - 详情请参见 [LICENSE](LICENSE) 文件 ## 联系方式 如有任何问题,请联系项目维护者。 --- © 2025 FlinkEcomRealtimeDW. All Rights Reserved.