在电商与零售行业,业务节奏快、数据维度多,如何让业务与运营人员“一眼看懂数据”成为企业数字化运营的关键。聚水潭作为国内领先的电商 ERP,沉淀了订单、库存、售后等核心数据;瓴羊BI(Alibaba Lingyang BI)则提供低代码、实时交互的数据大屏能力。本文将以一个真实落地案例为主线,详细讲解如何通过《轻易云数据集成平台》把聚水潭的销售出库、售后单、库存三大模块数据完整对接到瓴羊BI,并在 2 周内上线 8 块可视化大屏,实现“数据找人”,而非“人找数据”。
一、项目背景与目标
1.1 业务痛点
- 运营每天需要登录 3 套系统(聚水潭、OMS、Excel)手工拼接报表,平均耗时 2.5 h。
- 大促期间库存数据延迟 30 min,导致超卖、缺货频发。
- 售后退款率无法实时监测,爆款质量问题滞后 3 天才发现。

1.2 项目目标
- 实时:库存、出库、售后 3 大类 42 个核心指标延迟 ≤1 min。
- 低代码:业务人员通过瓴羊BI拖拽即可新增指标,0 SQL。
- 高可用:双 11 峰值 5 万单/小时,系统可用性 99.9%。
二、整体架构设计
┌—————-┐ HTTPS+JWT ┌—————-┐
│ 聚水潭云API │◀—-抽取(增量)——-▶│ 数据集成层 │
│ /open/orders/… │ 流式分页+限流 │ Flink CDC/JS │
└—————-┘ └——-┬——–┘
│Kafka
▼
┌————————————————————–┐
│ 实时数仓(Alibaba Cloud) │
│ 1. ODS 原始层(Kafka) │
│ 2. DWD 明细层(Flink SQL 清洗) │
│ 3. DWS 汇总层(ClickHouse 宽表) │
└———————┬——————————————┘
│JDBC 5 并发
▼
┌———————-┐
│ 瓴羊BI数据集 │
│ 直连 ClickHouse │
└———-┬———–┘
│拖拽
▼
┌———————-┐
│ 可视化大屏(8 块) │
│库存/出库/售后/财务… │
└———————-┘
三、聚水潭侧数据获取
3.1 权限与账号
- 在聚水潭开放平台注册“自建应用”,获得 app_key、app_secret。
- 申请 scope:inventory_query、order_out_query、after_sale_query。
- 设置 IP 白名单(瓴羊BI 出口 IP 段在官方文档可查)。
3.2 关键接口与分页策略
模块 | 接口 | 主键 | 增量字段 | 分页 | 限流 |
库存 | /open/inventory/query | sku_id | modified | page_size≤50 | 20 QPS |
销售出库 | /open/orders/out/simple/query | o_id | modified | page_size≤25 | 15 QPS |
售后单 | /open/aftersale/query | as_id | modified | page_size≤20 | 10 QPS |
分页逻辑:
- 采用“时间窗口+游标”双保险,单次窗口 7 天,防止漏单。
- 返回 has_next=true 时,page_index++;若触发 429,则 sleep(1s) 指数退避。
3.3 敏感数据说明
淘系订单(淘宝/天猫)的收件人、金额、支付时间属于敏感字段,需走奇门自定义接口,额外申请奇门 app_key,本案例因大屏无需买家隐私,故跳过。
3.4 示例请求(销售出库)
3.4 示例请求(销售出库)
POST https://open.jushuitan.com/open/orders/out/simple/query
Content-Type: application/json
{
"page_index": 1,
"page_size": 25,
"start_time": "2025-09-16 00:00:00",
"end_time": "2025-09-16 23:59:59",
"date_type": 0,
"status": "Confirmed"
}
返回示例
{
"code": 0,
"datas": [
{
"o_id": "SO202509160001",
"shop_id": 108,
"io_id": "CK202509160001",
"status": "Confirmed",
"items": [
{
"sku_id": "A001",
"qty": 2,
"price": 99.00
}
]
}
],
"has_next": true,
"total": 8520
}
四、数据集成与实时清洗
4.1 技术选型 -使用《轻易云数据集成平台》
- 实时:Flink 1.17(Kafka connector + HTTP lookup)
- 离线补数:DataWorks 调度,MaxCompute 做 T-1 回刷
- 存储:ClickHouse 22.8(ReplacingMergeTree),利用 final 语义去重

4.2 维表拉宽
- 商品维表:通过 /open/sku/query 全量初始化 3 万条,存入 MySQL,Flink 以 5 min 间隔刷新。
- 店铺维表:人工维护 Excel,上传到瓴羊BI“维表管理”,自动编码。
4.3 清洗规则
- 数量字段负值过滤(qty<0 标记异常)
- 售后单状态映射:Waiting→待审核,Received→已收货,Refund→已退款
- 统一时区:聚水潭返回 GMT+8,直接落库,无需转换
4.4 代码片段(Flink SQL)
-- 1. 库存实时流表(Kafka)
CREATE TABLE inventory_source (
sku_id STRING,
qty INT,
modified TIMESTAMP(3),
proc_time AS PROCTIME()
) WITH (
'connector' = 'kafka',
'topic' = 'jushuitan_inventory',
'properties.bootstrap.servers' = 'kafka:9092',
'format' = 'json'
);
-- 2. 商品维表(MySQL)
CREATE TABLE sku_dim (
sku_id STRING PRIMARY KEY,
sku_name STRING,
category STRING
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://...',
'table-name' = 'dim_sku'
);
-- 3. ClickHouse 目标宽表
CREATE TABLE inventory_wide (
sku_id STRING,
sku_name STRING,
category STRING,
qty INT,
modified TIMESTAMP(3)
) WITH (
'connector' = 'clickhouse',
'url' = 'jdbc:clickhouse://...',
'table-name' = 'dws_inventory'
);
-- 4. 实时打宽并写入
INSERT INTO inventory_wide
SELECT
i.sku_id,
d.sku_name,
d.category,
i.qty,
i.modified
FROM inventory_source AS i
LEFT JOIN sku_dim FOR SYSTEM_TIME AS OF i.proc_time AS d
ON i.sku_id = d.sku_id;
五、瓴羊BI接入与可视化
5.1 数据源配置
- 登录瓴羊BI → 数据源 → 新建 → ClickHouse
- 连接串:jdbc:clickhouse://vpc-ck.cn-beijing.rds.aliyuncs.com:8123/default
- 账号:lingyang_bi
- 开启“实时查询”开关(底层会带 final 关键字)
- 勾选 3 张宽表:dws_inventory、dws_sale_out、dws_after_sale
- 设置增量刷新 1 min(ClickHouse 支持 Lookup Join,延迟可压到秒级)
5.2 数据集建模
- 维度:商品、店铺、时间(天/小时)
- 指标:库存数量、出库数量、出库金额、售后率、退款金额
- 计算字段:
售后率 = 退款单数 / 出库单数
库存周转天 = 期末库存 / (近7天出库数量/7)

5.3 大屏设计(8 块)
- 实时库存总览:全国地图+热力,低于安全库存红色闪动
- 销售出库趋势:昨日分时曲线,预测今日 24 h 曲线(内置 Prophet)
- 售后监控:TOP10 商品售后率,红色阈值>5%
- 店铺排行榜:出库金额、退款金额双柱图
- 财务应收:每日GMV、优惠、平台扣点、到账金额
- 商品库存预警:表格+条件格式,可一键生成补货计划
- 大促实时战报:滚动榜单,每 30 s 更新
- 异常监控:接口延迟、错误率、ClickHouse 查询耗时
5.4 权限与推送
- 行级权限:店铺负责人仅看自己店铺,瓴羊BI 自动根据登录账号绑定 shop_id。
- 定时推送:每日 8:30 自动截图推送到钉钉群,@相关人员。
- 数据预警:库存=0 或 售后率>5% 时触发飞书机器人卡片,附大屏链接。
六、性能与稳定性保障
6.1 压测结果
- 峰值 5 万单/h,对应 Kafka 8 万条/分钟,Flink 12 个 TaskManager,CPU 65%。
- ClickHouse 批量写入 1 s batch,QPS 峰值 1.2 k,P99 查询 380 ms。
- 瓴羊BI 前端 30 个并发,首屏 2.3 s 加载完成。
6.2 监控告警
- Prometheus + Grafana:Flink lag、CK 延迟、API 200/429 比率。
- 瓴羊BI 自带“查询健康分”,低于 80 分自动短信告警。
- 故障演练:模拟聚水潭 429 限流,系统 5 min 内自动降级为 5 min 粒度,不降准确性。
6.3 重试与补偿
- Flink 侧:HTTP 请求失败自动重试 3 次,仍失败写入 Kafka dead-letter,DataWorks 每日 T-1 补采。
- 瓴羊BI 侧:ClickHouse 连接超时自动切换备节点,前端无感。
七、项目收益与复盘
指标 | 上线前 | 上线后 | 提升 |
报表产出时长 | 2.5 h/天 | 3 min | 98%↓ |
库存超卖次数 | 大促 12 次 | 0 次 | 100%↓ |
售后问题发现 | T+3 天 | 实时 | 延迟↓ 99% |
数据驱动决策 | 1 周 1 次 | 每日 3 次 | 效率↑ 20 倍 |
经验总结
- 先宽表后星型:电商分析时效优先,把常用维度打平到宽表,减少运行时 Join。
- 限流是常态:聚水潭 20 QPS 足够,但务必做指数退避,避免被封 IP。
- 维表热更新:商品类目调整频繁,用 Flink 维表 Join 而非离线回刷,保证大屏标签实时。
- 让业务无感:瓴羊BI 支持 Excel 上传维表、拖拽计算字段,IT 只需把表建好,后续 0 开发。
八、未来规划
- 引入瓴羊BI“智能洞察”模块,自动捕捉库存异常根因(如供应商延迟、爆款预售)。
- 结合阿里云 Quick Audience,把售后率高的用户推送给 CDP 做短信关怀,降低差评。
- 探索聚水潭奇门自定义接口,接入淘系金额字段,实现毛利率实时大屏。
结语
通过“聚水潭 + 轻易云数据集成平台 + 瓴羊BI”这套轻量级、可复制的实时数据栈,我们在 2 周内完成了销售、售后、库存三大核心场景的数据大屏上线,真正让业务人员“所见即所得”。如果你也面临 ERP 数据分散、报表滞后的难题,不妨参考本方案,快速搭建属于自己的实时数据驾驶舱。