面向电商与零售企业的数据平台:同步任务可视化、逐表写入可监控、数据可对账、查数可自助。
喜乐君注 DW Center 不是从“通用数据平台”的模板里套出来的,而是从真实客户的分析困境里长出来的:多平台订单与财务数据对不上,月底对账靠人工,同步出了异常总是业务先发现。为了把“准”这件事做到位,聚水潭与金蝶的同步程序由 Java 工程师用“古法编程”逐行实现,确保数据取全、写准;前端则借助 AI 开发,把复杂的同步、监控与查数能力做成易用的界面——一个守住准确性,一个提升易用性。
阅读导航
- 五个熟悉的场景
- DW Center 是什么
- 六项核心能力
- 内部沙箱实测数据与适用规模
- 谁最适合用
- 下一步:预约一次演示
1. 五个熟悉的场景
如果你负责电商或零售企业的 IT、数据平台或财务信息化,这些场景大概不陌生:
- Excel 导来导去:订单、出库、售后、库存分别导出拼表,口径一改,历史报表全对不上。
- 定时脚本是黑盒:跑到哪、读了多少、有没有写进去,没人说得清。
- 同步失败靠人发现:业务先发现“数据没更新”,IT 才知道任务挂了。
- 月底对账靠人工:财务拿着平台后台和本地库一条条比,差异只能靠猜。
- IT 被业务追着查数:临时要个口径就得写 SQL、导数据,正事不断被打断。
根源不是缺报表工具,而是数据链条缺三样东西:同步过程可观测、数据结果可核对、查数入口可控。聚水潭与金蝶云星空都是按“每笔业务处理得快、处理得对”设计的 SaaS/OLTP 系统,很难兼任企业长期的分析中心。要支撑跨年、跨店、跨品类的分析与 AI 应用,企业需要一块自己的、持续更新的数据底座。
2. DW Center 是什么
一句话:DW Center 是一套把聚水潭(电商 ERP)与金蝶云星空(财务/供应链 ERP)的数据同步,做成“可运行、可观测、可对账、可自助查数”的企业数据平台。
本文界面截取自内部沙箱环境(官方测试数据),不是设计稿或演示假数据。
它由两个独立后端、一个独立前端和一个数据库组成:
| 组件 | 职责 | 技术栈 |
|---|---|---|
| 聚水潭同步后端 | 聚水潭 API 取数并写入 PostgreSQL;提供同步、监控、数据库、对账、账号接口 | Spring Boot + MyBatis-Plus + PostgreSQL |
| 金蝶同步后端 | 金蝶 WebAPI 取数,按元数据动态建镜像表;提供同步、监控、数据库、外键关系接口 | Spring Boot + MyBatis-Plus + PostgreSQL |
| DW Center 前端 | 统一工作台,按团队切换到聚水潭或金蝶视图 | React 19 + Vite + shadcn/ui + Tailwind CSS v4 + TanStack Router/Query |
| PostgreSQL | 业务镜像库 + 平台账号库 | PostgreSQL |
三个要点:数据落在你自己的 PostgreSQL,之后用任何支持 PG 的 BI、SQL 客户端或 Python 工具都能接;各单元相互独立,两个后端是独立服务与进程,前端可单独部署,生产由 nginx 托管并同源反代 API;它不是 BI 工具,而是 BI 之前的数据底座与运维台。
下面这张 4:3 的全景图把各部分的关系放在一页:聚水潭与金蝶两条官方 API 进来,两个同步后端分别负责取数与写入,统一落到 PostgreSQL;统一工作台通过后端只读接口消费数据,BI 与 SQL 客户端也可以直接连库。
先看统一入口:一套账号登录后,在团队切换器里选择聚水潭或金蝶工作区,菜单、权限与会话都随团队走,不需要记两套地址、登两次。
3. 六项核心能力
3.1 双系统同步与调度
聚水潭侧以任务组织:增量同步一次覆盖 16 张表,基础数据初始化 10 张,订单任务 4 张,另有库存、售后等单表任务。事务单据的增量游标是 ts(行版本号),“从哪天补数”用业务修改时间 modified 表达:取数起点按业务修改时间(yyyy-MM-dd)填写,按 7 天一片回补,跑完回到 ts 增量。
金蝶侧分初始化与增量:初始化按元数据动态建镜像表,增量按 FModifyDate 过滤,每页 2000 行、多线程领取,写入幂等(可重复跑)。
聚水潭任务中心统一入口:启动批次、暂停/恢复单个任务的读取计划,暂停优先级最高;手动批次进入 FIFO 队列(默认 50 项,返回位次),同一时刻只跑一个批次;排队不建执行记录;总开关关闭时排队作废、在途批次自然结束。下图就是任务中心:每个任务的数据表、增量标识、状态、最近执行、读取与新增/更新都在一行里,展开还能看到一次多表同步的子任务明细;点“启动”如果前面有批次在跑,会明确告诉你排在第几位,而不是转圈后没有反馈。
3.2 全景可观测
- 状态层(仪表盘,30 秒刷新):同步有没有在跑、最近一次同步、近 7 天读取 vs 写入;指标明细交给监控页。
- 过程层(同步监控,10–15 秒):状态栏回答“在跑什么、跑了多久、从哪拉、写到哪、队列水位、数据截至”;KPI 给出本次读写、写入失败与吞吐;走势图按 5 分钟基础格记录新增量,可切每 15/30/60 分钟或 24 小时,保留 7 天;下方是最近事件、异常与最近调度。
- 记录层(任务中心 / 执行记录 / 数据对账):失败与部分成功按徽标区分,异常可点进明细。
仪表盘刻意做轻:只留同步状态与近 7 天读写对比,指标明细交给监控页,避免同一屏出现两份口径不同的数字。
需要排障时进入监控大屏:顶部是本次同步的实时状态与四张 KPI 卡,中间是读写走势与各阶段明细,下方是最近事件、异常记录和按表写入量。值班的人不需要翻日志,先看这一屏就能判断“是不是在动、卡在哪、有没有失败”。
金蝶团队沿用同一套页面分工(仪表盘轻量、监控完整,数据源与字段口径按金蝶侧定义);超过 30 分钟仍 RUNNING 的任务标为“可能卡住”。后端不可达时 KPI 显示“—”。告警有零写入与偏离基线两类;邮件通知覆盖任务失败与系统错误。
3.3 数据可信
任务成功不等于数据进来了。平台提供三本账:
- 任务口径:按“自然日 × 表 × 任务类型”聚合读写与新增/更新,给出每表“最近写入”;零写入标出并可一键筛选;覆盖度自检把“声明了却没记录”“记录了却没声明”的表暴露出来。
- 物理口径:每天 23:50 与启动时各采一次
pg_stat_user_tables快照,相邻快照做差,再与任务口径按同一批日期对齐,给出双口径差值——物理多说明有写入绕过代码,物理少说明记了账没落库。 - 对账口径:L0 看水位与停摆(默认 6 小时),L1 同窗口比源端
data_count与本地count(*),L2 按键集列出具体差哪几张单;对账页常驻环境横幅,并把环境、接口地址、目标库一起落库。
先看“按表写入量”在金蝶监控页的样子:逐表、逐日的写入量,最近写入日期、零写入筛选、覆盖度提示都在同一块面板里,哪张表在写、哪张表几天没动一眼可见。
任务口径是“同步程序自己报的数”,物理口径则是数据库自己记的数。把两者按天对齐后的差值,才是排查线索:物理多,说明有写入绕过了同步程序;物理少,说明账记了但没落库。
对账页再把“接口返回的条数”和“本地同窗口的条数”摆在一起。内部沙箱的一次实测:订单 3,870 = 3,870 一致;出库单 83 / 71(+12)、售后退货单 94 / 88(+6)被标出;商品 185 / 0 定位到初始化没跑。差异行右侧可以直接下钻到具体单据,而不是只知道“差了多少条”。
3.4 自助查数
数据库页:schema → 表树,表名带近 24 小时写入圆点;表详情有字段清单、数据预览、SQL 查询。字段清单展示字段画像——采样最近 2000 行,标出全空与“90% 以上为 0”的字段,并给出精确总行数;预览默认主键降序,表头三态排序。下图里左侧表树能直接看出哪些表近 24 小时有写入,右侧 orders 的 92 个字段、估算行数与真实数据一目了然。
只读 SQL 四道闸:单条 SELECT/WITH(剥字面量与注释后做词级校验、无分号、危险函数黑名单);关系白名单(EXPLAIN (VERBOSE, FORMAT JSON) 计划里的关系必须可见);只读事务 + 语句超时(默认 5000 毫秒)+ 等锁超时(默认 1500 毫秒);驱动层行数封顶。语句上限 800 字符,接口全是 GET。查询历史记录用户名、语句、状态、行数、耗时与目标库,支持只看我的。下图执行了一次 select * from orders limit 10,1 毫秒返回,右侧历史里还能看到一条被只读权限拒绝的跨 schema 查询——边界不是写在文档里,而是真的拦得住。
金蝶外键关联页按写入规则推导三类关系:表体到主表、子单据体到父单据体、字段级关联。内部实测 123 张表、390 条关系,160 条可直接生成 JOIN,20 条因关联列未写入被禁用。每条可生成带引号的 JOIN 并在 SQL 查询中打开(不自动执行)。不做真外键,也不落关系表:镜像表逐表写入、有孤儿行,加 FK 会写崩。下图选中供应商银行信息表,右侧直接画出它和供应商主表的关系,并给出“生成 JOIN”入口。
3.5 企业级安全与治理
- 认证:bcrypt +
HMAC-SHA256签名 cookie(24 小时),每请求验签、校验有效期与用户存在性,失败即拒绝;登录限流。 - 权限:团队身份进 URL(
/t/{slug}),一次登录切换团队;成员按岗位授权,数据库、运行凭证、系统信息等敏感页默认只给团队管理员,fail-closed;团队与用户支持冻结。 - 环境隔离:沙箱/正式两个页签,每页内是“该环境凭证 + 该环境写入服务器”(聚水潭 4 键、金蝶 6 键);切环境连带切库,目标环境无记录时 409 拒绝;热切换需总开关关闭且无批次在跑。连通性看业务码,不只看 HTTP 200。
- 凭证与护栏:加密项首尾可见掩码,掩码值不回写;查询历史带用户名与目标库。生产环境由部署方注入统一会话密钥,并让两个后端共用同一账号库;测试/开发环境可用数据库主机白名单防止误连生产库。
下图是运行凭证页:沙箱与正式两套环境各管各的凭证和写入服务器,切环境会连带切写入目标;截图时总开关处于开启状态,页面直接拦住了热切换并提示先关闸——宁可不切,也不切错。
3.6 交付与运维
- 独立部署:两个后端为可独立部署的服务,前端为静态站点,由 nginx 同源反代 API;生产既可用容器编排,也可直接用 systemd 托管后端服务。
- 环境分层:沙箱 / 正式两套环境各自独立配置,改端点、改凭证都在页面上完成,无需改代码或重新打包。
- 排障:系统信息接口返回运行环境、数据源、运行时长与线程池,部署侧可用它做健康探测。
- 交付质量:内置自动化页面校验与接口测试,作为研发门槛,不作为对外 SLA 承诺。
4. 内部沙箱实测数据与适用规模
以下数字均为内部沙箱环境实测(官方测试数据,2026-10-19),不是全行业基准:
| 指标 | 实测值 | 口径 |
|---|---|---|
| 聚水潭订单 | 275,928 行(约 27.5 万) | 精确 count |
| 订单明细 | 541,281 行(约 54.1 万) | 精确 count |
| 聚水潭出库单 | 99,259 行 | 精确 count |
| 聚水潭售后单 | 88,446 行 | 精确 count |
| 金蝶逐页执行明细 | 327,700 行(约 32.7 万) | 精确 count |
| 金蝶镜像库当前表数 | 77 张 | 数据库页目录 |
| 金蝶关系目录 | 123 张表 / 390 条关系 / 160 条可直接 JOIN | 外键关联接口 |
| 聚水潭库对象数 | 57 个 | 数据库页目录 |
这说明:单实例 PostgreSQL 上,几十万行订单、五十多万行明细、三十多万行执行明细可以正常同步、监控、对账和查询。它不说明性能上限,也不代表你的账套耗时相同。建议 POC 时用自己的账套跑一轮“增量 → 写入量 → 对账 → 查询”。
5. 谁最适合用
| 客户类型 | 典型场景 | 用起来之后的变化 |
|---|---|---|
| 多平台电商(聚水潭为主) | 多店铺订单、出库、售后、库存汇总;月底对账靠导 Excel;要数排队等 IT | 数据进自有 PostgreSQL;按表写入量发现漏拉;对账定位差单;查询留痕 |
| 集团财务 / 供应链共享中心(金蝶云星空) | 多组织、多表单;数据分散;字段含义靠猜 | 镜像库 + 外键关联 + 字段画像;报表可跨表 JOIN;数据质量问题可见 |
| ERP 实施商 / MSP | 多客户多环境交付;沙箱与生产混用有风险;凭证散落 | 沙箱/生产成对隔离,每环境一套凭证与写入服务器;团队、权限、审计可随交付给 |
| 企业数据平台负责人 | 直接连生产库有风险;同步脚本无人维护 | 只读入口 + SQL 四道闸 + 查询历史;监控、告警、对账形成闭环 |
这张全景图也对应了不同角色的位置:运维盯同步后端与监控,财务看对账与数据库,分析师和 BI 直接用 PostgreSQL 或只读 SQL。
如果痛点是数据在聚水潭/金蝶里但用不好、对不清、查得慢,它值得评估。
6. 下一步:预约一次演示
如果你的团队同时使用聚水潭与金蝶,并被“同步没人管、数据对不对说不清、业务要数靠排队”困扰,欢迎预约演示。我们会用你的样例数据现场走一遍:增量同步 → 按表写入量与双口径差值 → 数据对账 → 生成跨表 JOIN → 只读 SQL 查一笔业务。
本文不涉及价格,也不承诺无法验证的效果;实施范围与费用按你的账套、数据量和环境评估后给出。
No comments yet