读取DM数据库
This commit is contained in:
58
README.md
58
README.md
@@ -6,13 +6,20 @@
|
||||
## 目录结构
|
||||
```
|
||||
project/
|
||||
├── config/
|
||||
│ ├── config.yaml # 配置文件(推荐,支持注释)
|
||||
│ └── config.json # 配置文件备选
|
||||
├── data/
|
||||
│ ├── raw_data_sample.json # 原始输入数据(包含噪声和错误)
|
||||
│ ├── raw_data_sample.json # 原始输入数据(JSON 模式)
|
||||
│ └── cleaned_data_final.json # 清洗后的输出数据
|
||||
├── src/
|
||||
│ └── cleaner.py # 清洗运行程序
|
||||
│ ├── cleaner.py # 清洗运行程序
|
||||
│ └── data_loader.py # 数据加载(JSON/达梦)
|
||||
├── report/
|
||||
│ └── detailed_cleaning_report.json # 详细清洗报告
|
||||
├── scripts/
|
||||
│ └── inspect_dm_tables.py # 达梦表结构查看(部署时用)
|
||||
├── .env.example # 环境变量示例(含 DM_PASSWORD)
|
||||
└── README.md # 项目说明文档
|
||||
```
|
||||
|
||||
@@ -50,15 +57,54 @@ project/
|
||||
- 时间戳统一为 ISO-8601 格式
|
||||
- 输出清洗后 JSON 及详细报告(含各步骤的统计与示例)
|
||||
|
||||
## 数据源配置
|
||||
|
||||
程序支持两种数据源,通过 `config/config.yaml` 或 `config/config.json` 中的 `source` 切换:
|
||||
|
||||
| source | 适用场景 | 说明 |
|
||||
|--------|--------------|------|
|
||||
| `json` | 开发、无数据库 | 从 `data/raw_data_sample.json` 读取 |
|
||||
| `db` | 生产、有达梦库 | 从达梦数据库指定表读取 |
|
||||
|
||||
### 开发阶段(当前设备无达梦)
|
||||
|
||||
保持 `source: json`,直接使用本地 JSON 文件即可。
|
||||
|
||||
### 生产阶段(部署到有达梦的设备)
|
||||
|
||||
`OBJECTIVE_INSTANCE` 表结构与 `raw_data_sample.json` 一致,配置中已设为 `db.table: OBJECTIVE_INSTANCE`,直接查询即可。
|
||||
|
||||
1. **修改配置**:`source: db`,端口 `5080`、表 `OBJECTIVE_INSTANCE` 已预设;
|
||||
2. **设置密码**:`export DM_PASSWORD=你的密码`;
|
||||
3. **运行清洗**:`python src/cleaner.py`。
|
||||
|
||||
若需自定义查询(如加 WHERE 条件),可清空 `table`,在 `db.query` 中写完整 SQL。
|
||||
|
||||
### 密码注入与安全说明
|
||||
|
||||
**⚠️ 安全原则:切勿将达梦密码写入配置文件或源代码。**
|
||||
|
||||
达梦模式通过环境变量 `DM_PASSWORD` 注入密码,支持以下方式:
|
||||
|
||||
| 方式 | 说明 |
|
||||
|------|------|
|
||||
| **终端** | `export DM_PASSWORD=你的密码`(Linux/Mac)或 `set DM_PASSWORD=你的密码`(Windows CMD) |
|
||||
| **PyCharm** | Run → Edit Configurations → Environment variables → 添加 `DM_PASSWORD=你的密码` |
|
||||
| **.env 文件** | 复制 `.env.example` 为 `.env`,填入 `DM_PASSWORD=你的密码`,并用 `python-dotenv` 加载(需自行集成) |
|
||||
|
||||
`inspect_dm_tables.py` 支持两种密码来源:优先环境变量 `DM_PASSWORD`,其次脚本内 `LOCAL_PASSWORD`。若使用 `LOCAL_PASSWORD`,务必执行 `git update-index --assume-unchanged scripts/inspect_dm_tables.py` 避免误提交。
|
||||
|
||||
配置文件(`config.yaml` / `config.json`)中仅配置 `host`、`port`、`user`、`schema`、`table` 等,**不包含 password**。本项目源代码中不包含任何硬编码密码。
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 环境依赖
|
||||
本项目仅依赖 Python 标准库及 NumPy/Pandas:
|
||||
|
||||
```bash
|
||||
pip install numpy pandas
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
核心依赖:`numpy`、`pandas`、`PyYAML`。达梦模式需额外安装 `dmPython`。
|
||||
|
||||
### 2. 运行清洗
|
||||
在项目根目录下执行:
|
||||
|
||||
@@ -66,7 +112,7 @@ pip install numpy pandas
|
||||
python src/cleaner.py
|
||||
```
|
||||
|
||||
程序会读取 `data/raw_data_sample.json`,处理后生成:
|
||||
默认从 JSON 读取,处理后生成:
|
||||
- `data/cleaned_data_final.json`(清洗后的数据)
|
||||
- `report/detailed_cleaning_report.json`(详细清洗报告)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user