在准备环境前提交次全部更改。
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
# DWS 层 DDL 同步修正 — 变更记录
|
||||
|
||||
> 结构性变更:修正 8 项差异(补充 5 个缺失字段、2 张缺失表、1 个缺失视图)
|
||||
|
||||
## 溯源
|
||||
|
||||
- 日期:2026-02-13(Asia/Shanghai)
|
||||
- 工具:`scripts/compare_ddl_db.py --schema dws --ddl-path database/schema_dws.sql`
|
||||
- Direct cause:DDL 对比脚本发现 `database/schema_dws.sql` 与数据库 `dws` schema 实际状态存在 8 项差异,以数据库为准修正 DDL 文件。
|
||||
|
||||
## 变更内容
|
||||
|
||||
### 缺失字段(5 项)
|
||||
|
||||
| Schema | 表名 | 操作 | 字段 | 数据库类型 | 说明 |
|
||||
|--------|------|------|------|-----------|------|
|
||||
| `dws` | `dws_assistant_daily_detail` | DDL 补充字段 | `unique_customers` | `INTEGER` | 当日服务独立客户数 |
|
||||
| `dws` | `dws_assistant_daily_detail` | DDL 补充字段 | `unique_tables` | `INTEGER` | 当日服务独立台桌数 |
|
||||
| `dws` | `dws_assistant_finance_analysis` | DDL 补充字段 | `unique_customers` | `INTEGER` | 统计周期内独立客户数 |
|
||||
| `dws` | `dws_assistant_monthly_summary` | DDL 补充字段 | `unique_customers` | `INTEGER` | 当月服务独立客户数 |
|
||||
| `dws` | `dws_assistant_monthly_summary` | DDL 补充字段 | `unique_tables` | `INTEGER` | 当月服务独立台桌数 |
|
||||
|
||||
### 缺失表(2 张)
|
||||
|
||||
| Schema | 表名 | 操作 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| `dws` | `dws_member_assistant_intimacy` | DDL 补充整表 | 会员-助教亲密度指标表,记录会员与助教的互动频次和亲密度评分 |
|
||||
| `dws` | `dws_member_recall_index` | DDL 补充整表 | 会员召回指数表,记录会员流失风险和召回优先级评分 |
|
||||
|
||||
### 缺失视图(1 个)
|
||||
|
||||
| Schema | 视图名 | 操作 | 说明 |
|
||||
|--------|--------|------|------|
|
||||
| `dws` | `v_member_recall_priority` | DDL 补充视图 | 会员召回优先级视图,基于 `dws_member_recall_index` 计算召回排序 |
|
||||
|
||||
## 变更原因
|
||||
|
||||
1. `unique_customers` / `unique_tables` 字段:DWS 汇总任务在运行时动态计算并写入的统计字段,DDL 文件在初始编写时遗漏
|
||||
2. `dws_member_assistant_intimacy` 表:会员-助教亲密度分析功能上线时创建,DDL 文件未同步更新
|
||||
3. `dws_member_recall_index` 表和 `v_member_recall_priority` 视图:会员召回分析功能上线时创建,DDL 文件未同步更新
|
||||
|
||||
## 影响范围
|
||||
|
||||
| 影响对象 | 影响程度 | 说明 |
|
||||
|----------|----------|------|
|
||||
| ETL 加载任务 | 无影响 | 本次仅修正 DDL 文档,不涉及数据库结构变更 |
|
||||
| DWS 汇总任务 | 无影响 | 这些表/字段已在数据库中存在并被正常使用 |
|
||||
| 后端 API | 无影响 | DDL 文件为文档性质,不影响运行时 |
|
||||
| 小程序字段映射 | 无影响 | 小程序通过 API 访问,不直接读 DWS 层 |
|
||||
| DWS 表级文档 | ⚠️ 需同步 | 新增表需补充 BD 手册表级文档;已有表文档需补充 `unique_customers`/`unique_tables` 字段 |
|
||||
| 指数算法文档 | ⚠️ 需关注 | `dws_member_assistant_intimacy` 和 `dws_member_recall_index` 涉及自定义指数算法 |
|
||||
|
||||
**注意**:本次变更仅修正 DDL 文件(文档同步),数据库结构未发生任何变更。
|
||||
|
||||
## 回滚策略
|
||||
|
||||
本次为 DDL 文件修正(文档同步),无需数据库回滚。若需恢复 DDL 文件,使用 Git 回退即可:
|
||||
|
||||
```bash
|
||||
git checkout HEAD~1 -- database/schema_dws.sql
|
||||
```
|
||||
|
||||
若未来需要将数据库结构回退(不推荐,会丢失业务数据):
|
||||
|
||||
```sql
|
||||
-- 1) 删除补充的字段
|
||||
ALTER TABLE dws.dws_assistant_daily_detail DROP COLUMN unique_customers;
|
||||
ALTER TABLE dws.dws_assistant_daily_detail DROP COLUMN unique_tables;
|
||||
ALTER TABLE dws.dws_assistant_finance_analysis DROP COLUMN unique_customers;
|
||||
ALTER TABLE dws.dws_assistant_monthly_summary DROP COLUMN unique_customers;
|
||||
ALTER TABLE dws.dws_assistant_monthly_summary DROP COLUMN unique_tables;
|
||||
|
||||
-- 2) 删除视图(必须先于依赖表)
|
||||
DROP VIEW IF EXISTS dws.v_member_recall_priority;
|
||||
|
||||
-- 3) 删除补充的表
|
||||
DROP TABLE IF EXISTS dws.dws_member_recall_index;
|
||||
DROP TABLE IF EXISTS dws.dws_member_assistant_intimacy;
|
||||
```
|
||||
|
||||
## 验证 SQL
|
||||
|
||||
```sql
|
||||
-- 1) 确认 dws_assistant_daily_detail 包含 unique_customers 和 unique_tables
|
||||
SELECT column_name, data_type
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'dws'
|
||||
AND table_name = 'dws_assistant_daily_detail'
|
||||
AND column_name IN ('unique_customers', 'unique_tables')
|
||||
ORDER BY column_name;
|
||||
-- 预期:2 行,均为 integer
|
||||
|
||||
-- 2) 确认 dws_assistant_monthly_summary 包含 unique_customers 和 unique_tables
|
||||
SELECT column_name, data_type
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'dws'
|
||||
AND table_name = 'dws_assistant_monthly_summary'
|
||||
AND column_name IN ('unique_customers', 'unique_tables')
|
||||
ORDER BY column_name;
|
||||
-- 预期:2 行,均为 integer
|
||||
|
||||
-- 3) 确认 dws_assistant_finance_analysis 包含 unique_customers
|
||||
SELECT column_name, data_type
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'dws'
|
||||
AND table_name = 'dws_assistant_finance_analysis'
|
||||
AND column_name = 'unique_customers';
|
||||
-- 预期:1 行,data_type = 'integer'
|
||||
|
||||
-- 4) 确认 dws_member_assistant_intimacy 表存在
|
||||
SELECT table_name
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'dws'
|
||||
AND table_name = 'dws_member_assistant_intimacy';
|
||||
-- 预期:1 行
|
||||
|
||||
-- 5) 确认 dws_member_recall_index 表存在
|
||||
SELECT table_name
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'dws'
|
||||
AND table_name = 'dws_member_recall_index';
|
||||
-- 预期:1 行
|
||||
|
||||
-- 6) 确认 v_member_recall_priority 视图存在
|
||||
SELECT table_name, table_type
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'dws'
|
||||
AND table_name = 'v_member_recall_priority';
|
||||
-- 预期:1 行,table_type = 'VIEW'
|
||||
|
||||
-- 7) 确认修正后 DDL 与数据库零差异(通过对比脚本验证)
|
||||
-- python scripts/compare_ddl_db.py --schema dws --ddl-path database/schema_dws.sql
|
||||
-- 预期:0 项差异
|
||||
```
|
||||
|
||||
## 关联变更
|
||||
|
||||
- ODS 层同步修正:`docs/database/ODS/changes/2026-02-13_ddl_sync_ods.md`
|
||||
- DWD 层同步修正:`docs/database/DWD/changes/2026-02-13_ddl_sync_dwd.md`
|
||||
- DDL 文件:`database/schema_dws.sql`
|
||||
- 对比结果:`docs/database/ddl_compare_results.md`
|
||||
Reference in New Issue
Block a user