4. 工具安装与环境准备
在开始风控数据质量沙盘推演之前,必须完成工具链的安装与依赖环境的配置。本章节详细说明系统要求、安装包获取方式以及 Python/Java 依赖环境的配置步骤,确保沙盘推演工具能够稳定运行。
4.1 系统要求
沙盘推演工具支持主流操作系统,推荐使用 Linux 或 macOS 进行生产级推演。Windows 用户可通过 WSL2 获得完整支持。以下为最低与推荐配置:
| 配置项 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Ubuntu 20.04 / macOS 12 / Windows 10 21H2 | Ubuntu 22.04 LTS / macOS 14 / Windows 11 |
| CPU | 4 核 2.0 GHz | 8 核 3.0 GHz 及以上 |
| 内存 | 8 GB RAM | 32 GB RAM |
| 磁盘 | 50 GB 可用空间(SSD) | 200 GB 可用空间(NVMe SSD) |
| 网络 | 宽带连接(用于下载依赖) | 稳定宽带,建议 100 Mbps 以上 |
| Python | 3.9 | 3.11 或 3.12 |
| Java | JDK 11 | JDK 17 或 21 (LTS) |
注意: 如果使用 Windows 系统,请务必安装 WSL2 并配置 Ubuntu 22.04 发行版。直接在 Windows CMD 或 PowerShell 下运行沙盘推演工具可能导致路径解析错误和性能下降。
4.2 安装包获取
沙盘推演工具安装包通过官方制品仓库发布,支持两种获取方式:
- 直接下载压缩包: 访问内部制品库(Artifactory/Nexus),下载
dq-sandbox-{version}.tar.gz或dq-sandbox-{version}.zip。 - 通过 Git 克隆: 从内部 GitLab 仓库克隆完整项目,包含示例数据与推演剧本。
# 方式一:下载并解压
wget https://artifactory.example.com/dq-sandbox/releases/dq-sandbox-2.1.0.tar.gz
tar -xzf dq-sandbox-2.1.0.tar.gz
cd dq-sandbox-2.1.0
# 方式二:Git 克隆(推荐,便于后续更新)
git clone git@gitlab.example.com:dq-sandbox/dq-sandbox.git
cd dq-sandbox
git checkout tags/v2.1.0 -b stable-v2.1.0
提示: 推荐使用 Git 克隆方式,因为沙盘推演工具会频繁更新数据质量规则库和推演剧本,通过
git pull 即可快速同步最新版本。
4.3 Python 依赖环境配置
沙盘推演工具的核心引擎基于 Python 开发,依赖管理使用 Poetry 或 pip + virtualenv。以下为两种配置方式:
4.3.1 使用 Poetry(推荐)
# 安装 Poetry
curl -sSL https://install.python-poetry.org | python3 -
# 进入项目目录,安装所有依赖
cd dq-sandbox
poetry install
# 激活虚拟环境
poetry shell
4.3.2 使用 pip + virtualenv
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境(Linux/macOS)
source venv/bin/activate
# 激活虚拟环境(Windows PowerShell)
.\venv\Scripts\Activate.ps1
# 安装依赖
pip install --upgrade pip
pip install -r requirements.txt
Python 依赖清单(核心组件):
| 依赖包 | 版本要求 | 用途 |
|---|---|---|
| pandas | >=2.0, <3.0 | 数据框操作与质量指标计算 |
| numpy | >=1.24, <2.0 | 数值计算与统计函数 |
| great_expectations | >=0.18, <1.0 | 数据质量期望与验证引擎 |
| pyarrow | >=14.0 | 列式存储与高性能 I/O |
| click | >=8.1 | 命令行接口框架 |
| rich | >=13.0 | 终端格式化输出与进度条 |
4.4 Java 依赖环境配置
沙盘推演工具中的实时流计算模块和部分数据源连接器基于 Java 实现,需要配置 JDK 和构建工具。
4.4.1 JDK 安装与验证
# 检查是否已安装 JDK
java -version
# 安装 OpenJDK 17(Ubuntu/Debian)
sudo apt update
sudo apt install openjdk-17-jdk -y
# 安装 OpenJDK 17(macOS Homebrew)
brew install openjdk@17
# 设置 JAVA_HOME 环境变量(写入 ~/.bashrc 或 ~/.zshrc)
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
4.4.2 Maven 配置
项目使用 Maven 管理 Java 模块依赖,确保已安装 Maven 3.8+:
# 安装 Maven(Ubuntu/Debian)
sudo apt install maven -y
# 验证安装
mvn -version
# 编译 Java 模块(在项目根目录执行)
mvn clean package -pl java-modules -am -DskipTests
关键说明: Java 模块主要用于连接 Kafka、Flink 等流处理组件。如果仅进行离线数据质量推演,可以不配置 Java 环境,Python 引擎已覆盖全部离线场景。
4.5 环境验证与架构总览
完成上述配置后,运行以下命令验证环境是否就绪:
# 验证 Python 环境
python3 -c "import pandas; import great_expectations; print('Python 依赖 OK')"
# 验证 Java 环境
java -version 2>&1 | grep "openjdk version"
# 运行沙盘工具自检
cd dq-sandbox
python3 dq_sandbox.py --check-env
以下 SVG 图展示了沙盘推演工具的完整软件架构与依赖层次:
上图清晰地展示了从用户接口到底层基础设施的完整依赖链路。Python 引擎承担核心推演逻辑,Java 模块负责流式数据接入,两者通过标准数据格式(Arrow/Parquet)进行交互。
4.6 常见安装问题与解决
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
poetry install 报 SSL 错误 |
系统 OpenSSL 版本过低或证书过期 | 升级 OpenSSL:sudo apt install openssl libssl-dev |
java -version 显示旧版本 |
系统默认 JDK 未切换 | 使用 update-alternatives --config java 切换 |
| 沙盘工具启动后中文乱码 | 缺少中文字体或 locale 未配置 | 安装 fonts-noto-cjk 并设置 LANG=zh_CN.UTF-8 |
| Maven 编译失败,依赖下载超时 | 网络代理或镜像配置错误 | 在 ~/.m2/settings.xml 中配置阿里云镜像 |
最佳实践: 建议在首次安装完成后,运行
dq_sandbox.py --run-demo 执行一次完整的示例推演,以验证所有组件协同工作正常。示例推演包含 3 个预置数据质量场景和 12 条规则,耗时约 2 分钟。