SavindyaBandara/FinTech-Fraud-Detection-Project
GitHub: SavindyaBandara/FinTech-Fraud-Detection-Project
基于 Lambda 架构的金融科技实时欺诈检测 Pipeline,结合 Spark 流处理与 Airflow 批处理实现交易风控与自动对账。
Stars: 0 | Forks: 0
# 🛡️ 金融科技实时欺诈检测 Pipeline
一个高性能的大数据 Pipeline,用于实时检测金融欺诈,同时维护自动化的批量账本以供审计。
## 📋 概述
本项目实现了一个全栈数据工程 Pipeline,旨在实时检测欺诈交易,同时使用 Lambda Architecture 维护每日交易量的账本。它结合了用于即时威胁检测的实时流处理,以及用于财务对账和长期数据归档的定时批处理。
## ✨ 功能
**实时欺诈检测**:立即标记高风险交易。
**不可能旅行逻辑**:检测单个用户是否在 10 分钟内于不同国家进行交易。
**高额交易警报**:标记任何超过 $5,000 的交易以进行人工审核。
**自动化对账**:每 6 小时的批量周期,用于计算总流入金额与验证后金额以及商户欺诈企图。
**数据仓库集成**:自动归档至 Apache Parquet 以优化存储。
**审计就绪日志**:生成易于阅读的对账报告和不可变的交易日志。
## 🏗️ 架构
摄取层:虚拟交易生成器将数据发送至作为分布式消息代理的 Apache Kafka。
速度层:Apache Spark Structured Streaming 在 10 分钟的窗口内分析 Kafka topic。
批处理层:Apache Airflow 每 6 小时编排一次 ETL 任务。
服务层:PostgreSQL 数据库存储实时警报以供审计。
## 🚀 设置说明
### 前置条件
Docker 和 Docker Compose
Python 3.9+
PostgreSQL
### 安装
1.启动 Docker compose 文件
```
docker-compose up -d
```
```
docker ps
```
2.安装 Python 依赖
```
pip install kafka-python pandas sqlalchemy psycopg2-binary
```
3.运行 Python 生产者文件
```
python producer.py
```
4.创建 Kafka Topic
```
docker exec -it fintech-fraud-detection-kafka-1 kafka-topics --create --topic transactions --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
```
5.提交 Spark 作业
```
docker cp spark_processor.py fintech-fraud-detection-spark-master-1:/opt/spark/spark_processor
```
```
docker exec -u 0 -it fintech-fraud-detection-spark-master-1 /opt/spark/bin/spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.5.0 /opt/spark/spark_processor.py
```
6.准备 Airflow 环境
```
docker exec -u 0 -it fintech-fraud-detection-airflow-1 /usr/local/bin/python -m pip install pandas sqlalchemy psycopg2-binary pyarrow
```
7.验证 Airflow 已就绪
```
docker exec -it fintech-fraud-detection-airflow-1 python -c "import pandas; import sqlalchemy; print('Airflow is Ready!')"
```
6. 创建 Postgres 表并监控实时警报
```
SELECT * FROM travel_alerts;
SELECT * FROM high_value_alerts;
SELECT * FROM all_transactions;
```
7.触发对账
访问 Airflow UI:http://localhost:8082。
找到 DAG:fintech_full_reconciliation_etl。
触发 DAG 运行 ETL 流程并生成 Parquet 文件,然后生成商户类别分析 CSV。
8.将对账报告复制到您的 Windows 机器
```
docker cp fintech-fraud-detection-airflow-1:/opt/airflow/logs/data_warehouse/report_name.txt ./Final_Reconciliation_Report.txt
```
9.在终端中显示报告
```
docker exec -it fintech-fraud-detection-airflow-1 cat /opt/airflow/logs/data_warehouse/report_name.txt
```
10. 将分析报告复制到 Windows 机器
```
docker exec -it fintech-fraud-detection-airflow-1 cat /opt/airflow/logs/data_warehouse/mechant_analysis.csv
```
## 🛠️ 项目结构
```
fintech-fraud-detection/
├── dags/
│ └── reconciliation_etl.py # Airflow DAG & ETL Logic
├── spark_processor.py # Spark Streaming Detection
├── docker-compose.yml # Full stack orchestration
├── producer.py # Transaction simulator
└── README.md # This file
```
## 📊 对账报告
```
===========================================
ULTIMATE FINTECH RECONCILIATION REPORT
Timestamp: 2026-05-04 09:57:29.064572
===========================================
1. INGESTION METRICS:
- Total System Ingress: $2,551,576.34
- Total Transactions:2929
2. FRAUD BREAKDOWN:
- High Value Fraud:$1,164,239.58 (158 alerts)
- Travel Pattern Fraud:$2,551,576.34 (149 alerts)
- TOTAL FRAUD FLAGGED:$3,715,815.92
3. WAREHOUSE & VALIDATION:
- Validated (Clean) Amount:$-1,164,239.58
- Clean Records Archived: 0
- Storage Location:/opt/airflow/logs/data_warehouse/validated_warehouse_20260504_0957. parquet
===========================================
```
## 📊 商户分析报告
```
Grocery 444 414699.99
Online_Shopping 429 326904.72
Travel 413 363585.29
Dining 388 271343.54
Electronics 384 314553.66
```
标签:Apache Airflow, Apache Kafka, Apache Spark, Docker, Docker Compose, ETL, FinTech, JavaCC, Lambda架构, NIDS, Parquet, PostgreSQL, Python, Structured Streaming, 不可能旅行检测, 云计算, 关系型数据库, 列式存储, 大数据处理, 安全防御评估, 实时欺诈检测, 实时计算, 容器化, 异常检测, 批处理, 数据仓库, 数据工程, 数据编排, 无后门, 流处理, 流批一体, 测试用例, 消息队列, 自动化对账, 规则引擎, 请求拦截, 财务审计, 软件成分分析, 逆向工具, 金融反欺诈, 金融科技, 高可用架构