业务镜像分层存储与安全迁移准备 #104

Merged
WuYongJie merged 12 commits from feature/WuYongJie-tiered-business-data into main 2026-09-07 11:55:38 +08:00
Owner

结论

建立“MariaDB 控制面/维表/汇总 + ClickHouse 大事实表 + 私有对象存储 Parquet”的安全迁移第一阶段。当前代码不会自动搬生产数据、激活列式读取或删除 MariaDB 表。

主要改动

  • 对当前 51 个固定上游数据集逐一登记角色、页面用途、同步策略和目标存储层;动态连接器数据集默认留在 MariaDB
  • 增加 business-data:plan,固定数据集漏配/多配即失败
  • 增加 ClickHouse 26.8 LTS 内网服务、私有凭据、4 GiB/2 CPU 限制、发布前拉取和健康回滚门
  • 增加从现有 MariaDB 断点回填、FINAL 行数/唯一键对账、32 分区 Parquet 流式归档和可续传清单
  • jst_skumap 当前无页面读取,停止继续同步;通用原始账单在列式层未激活前不再向 MariaDB 续传
  • 店铺维度报表改读共享 store_report_daily_rows 与生命周期表,不再依赖生产不存在的 runtime/bills.sqlite,也不扫描 1400 万原始账单
  • 完整生产容量和页面映射见 docs/业务数据分层存储.md

验证

  • 生产只读盘点:65 张物理表约 51.4 GiB;最大三类可迁移原始层约 38.2 GiB;生产 SHA 与磁盘、同步进程已核对
  • 生产 MariaDB 等价生命周期 × 日汇总查询:9,634 个分组,约 1.6 秒,不输出客户明细
  • 本地真实 ClickHouse 26.8.2.7:同键两版本经 FINAL 返回最新 1 行;Parquet 文件头为 PAR1
  • 本地真实完整命令:exit=0 / phase=verified / source=2 / target=2 / archives=32 / files=32 / parquet_magic=50415231
  • EcommerceFinance/同步/页面相关回归:177 项通过、4 项需真实外部 TLS 按原条件跳过;随后修正 6 项旧 SQLite fixture 并全部通过
  • 新增回填、归档、覆盖率、部署保护与报表定向测试均通过;Shell 语法、Compose 配置和 diff 检查通过

风险边界

  • 新增 1 个 MariaDB 迁移(仅创建迁移/归档状态表)和 1 个 ClickHouse 数据卷
  • 不改变金额、权限或上游只读边界,不包含凭据
  • 本 PR 未部署、未迁移生产库、未回填/归档生产行、未切换其他页面、未删除旧表
  • 生产部署、数据库迁移、真实回填、页面激活、旧表删除仍分别需要明确授权与对应验收
## 结论 建立“MariaDB 控制面/维表/汇总 + ClickHouse 大事实表 + 私有对象存储 Parquet”的安全迁移第一阶段。当前代码不会自动搬生产数据、激活列式读取或删除 MariaDB 表。 ## 主要改动 - 对当前 51 个固定上游数据集逐一登记角色、页面用途、同步策略和目标存储层;动态连接器数据集默认留在 MariaDB - 增加 `business-data:plan`,固定数据集漏配/多配即失败 - 增加 ClickHouse 26.8 LTS 内网服务、私有凭据、4 GiB/2 CPU 限制、发布前拉取和健康回滚门 - 增加从现有 MariaDB 断点回填、`FINAL` 行数/唯一键对账、32 分区 Parquet 流式归档和可续传清单 - `jst_skumap` 当前无页面读取,停止继续同步;通用原始账单在列式层未激活前不再向 MariaDB 续传 - 店铺维度报表改读共享 `store_report_daily_rows` 与生命周期表,不再依赖生产不存在的 `runtime/bills.sqlite`,也不扫描 1400 万原始账单 - 完整生产容量和页面映射见 `docs/业务数据分层存储.md` ## 验证 - 生产只读盘点:65 张物理表约 51.4 GiB;最大三类可迁移原始层约 38.2 GiB;生产 SHA 与磁盘、同步进程已核对 - 生产 MariaDB 等价生命周期 × 日汇总查询:9,634 个分组,约 1.6 秒,不输出客户明细 - 本地真实 ClickHouse 26.8.2.7:同键两版本经 `FINAL` 返回最新 1 行;Parquet 文件头为 `PAR1` - 本地真实完整命令:`exit=0 / phase=verified / source=2 / target=2 / archives=32 / files=32 / parquet_magic=50415231` - EcommerceFinance/同步/页面相关回归:177 项通过、4 项需真实外部 TLS 按原条件跳过;随后修正 6 项旧 SQLite fixture 并全部通过 - 新增回填、归档、覆盖率、部署保护与报表定向测试均通过;Shell 语法、Compose 配置和 diff 检查通过 ## 风险边界 - 新增 1 个 MariaDB 迁移(仅创建迁移/归档状态表)和 1 个 ClickHouse 数据卷 - 不改变金额、权限或上游只读边界,不包含凭据 - 本 PR 未部署、未迁移生产库、未回填/归档生产行、未切换其他页面、未删除旧表 - 生产部署、数据库迁移、真实回填、页面激活、旧表删除仍分别需要明确授权与对应验收
WuYongJie added 1 commit 2026-09-07 11:17:32 +08:00
WuYongJie added 1 commit 2026-09-07 11:28:27 +08:00
WuYongJie added 1 commit 2026-09-07 11:32:52 +08:00
WuYongJie added 1 commit 2026-09-07 11:34:43 +08:00
WuYongJie added 1 commit 2026-09-07 11:36:42 +08:00
WuYongJie added 1 commit 2026-09-07 11:42:28 +08:00
WuYongJie added 1 commit 2026-09-07 11:44:11 +08:00
WuYongJie added 1 commit 2026-09-07 11:46:04 +08:00
WuYongJie added 1 commit 2026-09-07 11:47:13 +08:00
WuYongJie added 1 commit 2026-09-07 11:49:32 +08:00
WuYongJie added 1 commit 2026-09-07 11:51:39 +08:00
WuYongJie changed title from WIP: 业务镜像分层存储与安全迁移 to 业务镜像分层存储与安全迁移准备 2026-09-07 11:54:10 +08:00
WuYongJie added 1 commit 2026-09-07 11:55:11 +08:00
WuYongJie merged commit be670ad988 into main 2026-09-07 11:55:38 +08:00
WuYongJie deleted branch feature/WuYongJie-tiered-business-data 2026-09-07 11:55:39 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WuYongJie/CaiWuXiTong#104
No description provided.