DW Center 各部分协作关系图

DW Center:让聚水潭与金蝶的数据同步,从“黑盒脚本”变成可观测的数据资产

面向电商与零售企业的数据平台:同步任务可视化、逐表写入可监控、数据可对账、查数可自助。

面向电商与零售企业的数据平台:同步任务可视化、逐表写入可监控、数据可对账、查数可自助。

喜乐君注 DW Center 不是从“通用数据平台”的模板里套出来的,而是从真实客户的分析困境里长出来的:多平台订单与财务数据对不上,月底对账靠人工,同步出了异常总是业务先发现。为了把“准”这件事做到位,聚水潭与金蝶的同步程序由 Java 工程师用“古法编程”逐行实现,确保数据取全、写准;前端则借助 AI 开发,把复杂的同步、监控与查数能力做成易用的界面——一个守住准确性,一个提升易用性。

阅读导航

  1. 五个熟悉的场景
  2. DW Center 是什么
  3. 六项核心能力
  4. 内部沙箱实测数据与适用规模
  5. 谁最适合用
  6. 下一步:预约一次演示

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 客户端也可以直接连库。

DW Center 各部分协作关系图

先看统一入口:一套账号登录后,在团队切换器里选择聚水潭或金蝶工作区,菜单、权限与会话都随团队走,不需要记两套地址、登两次。

DW Center 登录页

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 数据可信

任务成功不等于数据进来了。平台提供三本账:

  1. 任务口径:按“自然日 × 表 × 任务类型”聚合读写与新增/更新,给出每表“最近写入”;零写入标出并可一键筛选;覆盖度自检把“声明了却没记录”“记录了却没声明”的表暴露出来。
  2. 物理口径:每天 23:50 与启动时各采一次 pg_stat_user_tables 快照,相邻快照做差,再与任务口径按同一批日期对齐,给出双口径差值——物理多说明有写入绕过代码,物理少说明记了账没落库。
  3. 对账口径: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 查询——边界不是写在文档里,而是真的拦得住。

只读 SQL 查询

金蝶外键关联页按写入规则推导三类关系:表体到主表、子单据体到父单据体、字段级关联。内部实测 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),不是全行业基准:

指标

实测值

口径

聚水潭订单 orders

275,928 行(约 27.5 万)

精确 count

订单明细 order_items

541,281 行(约 54.1 万)

精确 count

聚水潭出库单

99,259 行

精确 count

聚水潭售后单

88,446 行

精确 count

金蝶逐页执行明细 isync_unit_task

327,700 行(约 32.7 万)

精确 count

金蝶镜像库当前表数

77 张

数据库页目录

金蝶关系目录

123 张表 / 390 条关系 / 160 条可直接 JOIN

外键关联接口

聚水潭库对象数

57 个

数据库页目录

这说明:单实例 PostgreSQL 上,几十万行订单、五十多万行明细、三十多万行执行明细可以正常同步、监控、对账和查询。它不说明性能上限,也不代表你的账套耗时相同。建议 POC 时用自己的账套跑一轮“增量 → 写入量 → 对账 → 查询”。

5. 谁最适合用

客户类型

典型场景

用起来之后的变化

多平台电商(聚水潭为主)

多店铺订单、出库、售后、库存汇总;月底对账靠导 Excel;要数排队等 IT

数据进自有 PostgreSQL;按表写入量发现漏拉;对账定位差单;查询留痕

集团财务 / 供应链共享中心(金蝶云星空)

多组织、多表单;数据分散;字段含义靠猜

镜像库 + 外键关联 + 字段画像;报表可跨表 JOIN;数据质量问题可见

ERP 实施商 / MSP

多客户多环境交付;沙箱与生产混用有风险;凭证散落

沙箱/生产成对隔离,每环境一套凭证与写入服务器;团队、权限、审计可随交付给

企业数据平台负责人

直接连生产库有风险;同步脚本无人维护

只读入口 + SQL 四道闸 + 查询历史;监控、告警、对账形成闭环

这张全景图也对应了不同角色的位置:运维盯同步后端与监控,财务看对账与数据库,分析师和 BI 直接用 PostgreSQL 或只读 SQL。

DW Center 各部分协作关系图

如果痛点是数据在聚水潭/金蝶里但用不好、对不清、查得慢,它值得评估。

6. 下一步:预约一次演示

如果你的团队同时使用聚水潭与金蝶,并被“同步没人管、数据对不对说不清、业务要数靠排队”困扰,欢迎预约演示。我们会用你的样例数据现场走一遍:增量同步 → 按表写入量与双口径差值 → 数据对账 → 生成跨表 JOIN → 只读 SQL 查一笔业务。

本文不涉及价格,也不承诺无法验证的效果;实施范围与费用按你的账套、数据量和环境评估后给出。

No comments yet