在准备环境前提交次全部更改。

This commit is contained in:
Neo
2026-02-19 08:35:13 +08:00
parent ded6dfb9d8
commit 4eac07da47
1387 changed files with 6107191 additions and 33002 deletions

View File

@@ -0,0 +1,141 @@
# DWS 层 DDL 同步修正 — 变更记录
> 结构性变更:修正 8 项差异(补充 5 个缺失字段、2 张缺失表、1 个缺失视图)
## 溯源
- 日期2026-02-13Asia/Shanghai
- 工具:`scripts/compare_ddl_db.py --schema dws --ddl-path database/schema_dws.sql`
- Direct causeDDL 对比脚本发现 `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`