用途:该项目演示如何搭建端到端实时数据工程管道,用 Apache Kafka 做事件流、PostgreSQL 做数据仓库、Apache Airflow 做 ELT 编排、Streamlit 做实时可视化,适合学习生产级流式管道。
主要能力:采用 Medallion 架构分层。Bronze 层以 JSONB 存储 Kafka 原始事件;Silver 层规范化为 Customers、Movies、Showtimes、Transactions 等 3NF 表;Gold 层用物化视图提供聚合分析。Kafka 生产者用 Faker 生成合成影院售票事件,消费者写入 Bronze 层;Airflow DAG 每 5 分钟执行 Bronze→Silver 转换并刷新 Gold 物化视图;Streamlit 仪表盘每 30 秒刷新展示收入、票数、支付方式与类型分布。
使用方式:需 Docker、Docker Compose、Python 3.8+。执行 git clone https://github.com/BaidaneAyoub/realtime-cinema-data-engineering.git,创建虚拟环境后 pip install -r requirements.txt,再 docker-compose up -d 启动 Kafka、PostgreSQL、Airflow,等待 2-3 分钟初始化。随后分别运行 python producer/main_producer.py、python consumer/main_consumer.py、streamlit run dashboard/app.py,并在 http://localhost:8080 启用 DAG bronze_to_silver_and_gold_elt。配置通过 .env 提供 Kafka、PostgreSQL、Airflow 连接参数。
适用场景:学习实时流处理、Medallion 分层建模、Airflow ELT 编排与实时仪表盘搭建。
限制:资料未提供性能基准、生产部署、安全与收费信息;示例使用合成数据,需自行准备 Docker 环境。