karthikreddydataeng/real-time-fraud-streaming-pipeline
GitHub: karthikreddydataeng/real-time-fraud-streaming-pipeline
基于模拟银行交易数据的实时金融欺诈检测流式处理流水线作品集项目,展示数据摄取、欺诈评分与风险分级的完整架构设计。
Stars: 0 | Forks: 0
# 实时欺诈流式处理流水线
## 概述
本项目展示了使用模拟银行交易数据的实时金融交易欺诈监控流水线。
该项目展示了如何摄取交易记录、使用欺诈规则进行评分、按风险级别进行分类,并为下游分析和仪表盘报告做好准备。
这是一个仅使用模拟数据的作品集项目。它不包含雇主拥有的代码、生产数据、客户信息、凭据或机密架构。
## 业务问题
金融机构每天处理大量客户交易。欺诈和风险团队需要更快地洞察可疑活动,以便识别高风险交易、失败尝试、异常位置交易和大额交易。
批处理报告可能会延迟欺诈审查。流式流水线有助于更早地处理交易事件,并使经过评分的欺诈数据可用于分析和监控。
## 架构
模拟银行交易
→ Kafka Producer 概念
→ Kafka Topic 概念
→ 欺诈评分逻辑
→ 评分后交易输出
→ Redshift 分析表
→ 欺诈监控仪表盘
→ 可选的 SageMaker ML 风险评分设计
## 工具和技术
- 用于本地欺诈评分逻辑的 Python
- 用于实时交易摄取的 Apache Kafka 概念
- 用于可扩展流处理的 Spark Streaming 概念
- 用于基于 ML 的欺诈风险评分的 AWS SageMaker 概念
- 用于欺诈分析表设计的 SQL
- 用于数据仓库报告的 AWS Redshift 概念
- 用于样本输入和输出数据的 CSV 文件
- 用于架构、欺诈规则和仪表盘指标的 Markdown 文档
## 仓库结构
```
real-time-fraud-streaming-pipeline/
├── README.md
├── requirements.txt
├── architecture/
│ └── architecture_diagram.md
├── dashboards/
│ └── fraud_metrics.md
├── data/
│ └── sample_transactions.csv
├── docs/
│ ├── fraud_rules.md
│ ├── pipeline_design.md
│ └── project_summary_for_recruiters.md
├── kafka/
│ └── transaction_producer.py
├── ml/
│ └── sagemaker_fraud_model_design.md
├── output/
│ ├── fraud_scored_transactions.csv
│ └── fraud_scored_transactions_generated.csv
├── redshift/
│ └── fraud_analytics_schema.sql
└── spark_streaming/
└── fraud_detection_stream.py
```
## 如何运行
本项目演示了实时欺诈监控流水线的业务架构、模拟交易数据流、欺诈评分逻辑以及可用于分析的输出。
### 1. 审查项目设计
从以下文件开始:
- `architecture/architecture_diagram.md`
- `docs/pipeline_design.md`
- `docs/fraud_rules.md`
- `docs/project_summary_for_recruiters.md`
- `dashboards/fraud_metrics.md`
- `ml/sagemaker_fraud_model_design.md`
### 2. 查看样本输入和输出
输入文件:
- `data/sample_transactions.csv`
预期输出示例:
- `output/fraud_scored_transactions.csv`
运行脚本后生成的输出:
- `output/fraud_scored_transactions_generated.csv`
### 3. 在本地运行欺诈评分脚本
本项目仅使用 Python 内置库。
在主项目文件夹下,运行:
```
python spark_streaming/fraud_detection_stream.py
```
如果您的系统单独使用 Python 3 命令,请运行:
```
python3 spark_streaming/fraud_detection_stream.py
```
该脚本将:
1. 从 `data/sample_transactions.csv` 读取模拟银行交易
2. 应用欺诈评分规则
3. 分配欺诈分数、风险级别和触发的规则
4. 将生成的结果写入 `output/fraud_scored_transactions_generated.csv`
5. 在终端打印交易级别的评分摘要
## 欺诈逻辑示例
欺诈评分规则特意保持简单,以便于作品集审查:
- 大于或等于 3000 的交易被标记为高额风险。
- 失败的交易被标记以供审查。
- 美国境外的交易被标记以供位置审查。
- 美国境外的高额交易将获得最高的风险分数。
## 样本输出
终端输出示例:
```
Processed 8 transactions
Generated output file: output/fraud_scored_transactions_generated.csv
TXN100001 80 HIGH HIGH_AMOUNT
TXN100002 10 LOW NONE
TXN100003 45 MEDIUM LOCATION_REVIEW
TXN100004 60 MEDIUM FAILED_TRANSACTION
TXN100005 95 HIGH HIGH_AMOUNT_LOCATION_REVIEW
TXN100006 10 LOW NONE
TXN100007 95 HIGH HIGH_AMOUNT_LOCATION_REVIEW
TXN100008 60 MEDIUM FAILED_TRANSACTION
```
## 设计决策
- Kafka 和 Spark Streaming 作为企业架构概念呈现。
- 主要的可运行脚本使用本地 Python,以便无需复杂设置即可测试项目。
- SageMaker 被记录为可选的 ML 风险评分扩展。
- SQL 文件展示了如何对评分后的欺诈数据进行建模以进行分析。
- 仪表盘文档展示了欺诈团队可能监控的指标类型。
- 所有数据均为模拟数据,可安全用于公开的作品集。
## 主要功能
- 模拟银行交易输入数据
- 可运行的欺诈评分脚本
- 预期和生成的输出文件
- 欺诈风险分类
- Redshift 风格的分析 schema
- 仪表盘指标文档
- SageMaker ML 模型集成设计
- 面向招聘人员的项目摘要
- 架构文档
## 作品集安全声明
本项目是基于金融数据工程模式的作品集再创作。它使用模拟数据,不包含雇主拥有的代码、生产数据、客户信息、凭据或机密的欺诈逻辑。
标签:Kafka, SonarQube插件, Spark Streaming, 反欺诈, 多线程, 数据管道, 流计算, 软件工程, 软件成分分析, 逆向工具, 金融风控