Skip to content

云上数仓怎么落地(DataWorks / Hologres 通用原则) ​

难度与前置

难度:进阶
前置:理解离线分层与调度 READY;用过一种云托管数据开发平台即可。
读完能做什么:按「采集 → 仓 → 服务」拆云上职责,定可迁移的分层、依赖、OLAP 同步与验收,不绑死某一控制台。

适用场景 ​

  • 新团队上云,或从自建 Hadoop 迁到托管数仓 + 托管调度
  • 已有 DataWorks(或同类)+ 分析型库(Hologres / 同类 OLAP),报表慢、补数乱、环境互相踩

不适用:

  • 只学某云控制台截图操作(过时快,本文不写菜单路径)
  • 未定业务过程与指标就选引擎
  • 需要贴出你们生产项目名、空间名、内部表清单(禁止)

真实场景(一条,脱敏) ​

短剧投放数据:离线明细进托管仓,日报与多维分析进 OLAP;调度用云上工作流。

曾出现:

  1. 开发 / 生产同空间混跑,补数打满配额,当日 SLA 炸
  2. ADS 直接给业务查仓表,交互查询把离线槽位打满
  3. OLAP 同步成功但分区未对齐业务日,看板「成功」却缺数

改造原则(与厂商无关):

  • 环境隔离 + 补数限流
  • 仓负责算得对,OLAP 负责查得快;同步带 READY
  • 同步键 = 业务分区,不是「任务绿勾」

结果:补数与当日任务错峰;看板延迟从「经常 > 1h」收到约定水位内(以你们 SLA 表为准验收)。

怎么做(步骤清单) ​

1. 先画三层职责,再选产品名 ​

职责做什么云上常见承载(举例,可替换)
调度与编排依赖、重跑、补数、SLADataWorks 工作流 / Airflow / DolphinScheduler
离线仓ODS→DWD→DWS→ADS 计算与存储MaxCompute / Hive / Spark / BigQuery
服务 / OLAP交互查询、API、看板Hologres / Doris / ClickHouse / 云数仓 BI 加速层

原则:算与查分离。重计算留在仓;高并发点查进 OLAP。分层规则仍用 数仓分层,不因上云改成「一张宽表打天下」。

2. 环境与配额隔离(必做) ​

text
dev  —— 试跑、小分区、可失败
pre  —— 对账、演练补数(可选)
prod —— 仅发布物与定时;补数走审批 + 限流队列

落地检查:

  • [ ] 开发补数不能占用生产默认队列 / 资源组
  • [ ] 生产发布走包 / 工作流版本,禁止在 prod 里改节点 SQL 热修成常态
  • [ ] 跨环境禁止无审的「一把梭同步全表」

3. 调度:READY,不要只信托管「成功」 ​

云上工作流一样适用 调度依赖:

  1. 产物契约(业务日、来源集合、质量门禁)
  2. 校验通过后再写 READY / 分区信号
  3. 下游依赖 READY;跨工作空间只等信号,不等「整空间全绿」
  4. 补数走 补数与重跑,限并发

厂商差异只在「依赖节点怎么配」;语义必须是数据就绪。

4. 仓表:分区、生命周期、成本 ​

项建议
分区业务日 dt(或小时);禁止无分区巨大堆表
生命周期ODS 短、DWD/DWS 中、ADS 按产品定;到期归档或删
小文件 / 槽位合并策略与仓内治理同 小文件 思路
成本按科目看扫描量与存储;大回刷前估一次代价

SQL 仍要求分区幂等写入,见 离线幂等。

5. OLAP 同步:当作「受控发布」 ​

text
仓 ADS/DWS 分区 READY
  → 同步任务(全量首灌 / 按 dt 增量)
  → OLAP 目标表校验(行数、主键、金额合计)
  → 写 OLAP 侧 READY 或切换查询视图
  → 看板 / API 只读「已发布」版本

注意:

  • 同步成功 ≠ 可服务:要有行数 / 对账门槛,见 对账
  • 多时区报表:同步与看板的 biz_date 口径写死一种(账户日 / UTC 日),进 指标口径
  • 实时链路另见 CDC 与 延迟排查,不要和 T+1 同步混成一个工作流不加标注

6. 安全与权限(最小集) ​

  • 按层授权:ODS 少人、ADS/OLAP 对人;禁止业务账号扫 ODS
  • 密钥进密钥服务,不进节点参数明文
  • 对外 API 走服务账号 + 限流,不直连生产仓高权限

7. 迁移 / 多云时只带「原则」 ​

可带走的:分层、READY、幂等、对账、SLA、环境隔离。
不必带走的:某一控制台菜单、某一函数方言(用视图 / 中间层隔离方言)。

常见坑(至少这些) ​

  1. 开发生产同资源组
    一次回刷拖死当日日报。

  2. 看板直查离线仓
    交互 SQL 与 ETL 抢槽位;应同步到 OLAP 或物化服务层。

  3. 同步只看任务绿勾
    分区错日、半份数据仍「成功」。

  4. 用云厂商「一键同步」绕过质量门禁
    坏数据进 OLAP 更快。

  5. 生命周期默认永久
    存储与费用无声涨;ODS 尤甚。

  6. 多时区未写进口径字典
    云上全局表一拼,三国报表对不齐。

  7. 补数不限流
    托管弹性让你误以为「能跑就行」,账单与邻居任务一起炸。

如何验收(带数字的前后对比) ​

指标改前(示例)改后(目标)
开发补数导致生产排队次数 / 月如 ≥ 30(资源已隔离)
P0 ADS READY 时刻达标率(工作日)如 < 80%≥ 95%(按你们 SLA)
OLAP 与仓同 dt 金额 diff如偶发 > 1%≤ 约定阈值(如 0.1%)
看板 P95 查询如 > 10s≤ 约定(如 3s)
无审批的 prod 热修次数 / 月如很多趋近 0

Checklist:

  • [ ] 三层职责图(调度 / 仓 / OLAP)已文档化
  • [ ] dev/prod 资源隔离;补数限流
  • [ ] 跨空间依赖等 READY,不是整空间成功
  • [ ] OLAP 同步有行数/对账门槛后再开放查询
  • [ ] 生命周期与成本科目可查
  • [ ] 无未公开项目名、空间名、内部账号写进文档
text
验收记录模板:
环境:
P0 表与 ready_by:
本周 READY 达标率:
OLAP vs 仓 diff(dt=):
补数是否走限流队列:
签字:

相关面试题 ​

题库小程序链接待定;先用站内锚点占位。

  • [ ] 题:云上数仓为什么要画清调度/仓/OLAP 三层职责?(考察点:三层职责图已文档化)→ 占位:#todo-interview-platform-principles-layers
  • [ ] 题:开发补数导致生产排队怎么验收已治理?(考察点:资源隔离+补数限流,排队次数趋 0)→ 占位:#todo-interview-platform-principles-isolation
  • [ ] 题:跨空间依赖为何不能只看整空间成功?(考察点:等 READY 不是整空间成功)→ 占位:#todo-interview-platform-principles-ready
  • [ ] 题:OLAP 开放查询前要过什么门槛?(考察点:行数/对账门槛后再开放)→ 占位:#todo-interview-platform-principles-olap-gate

改写说明:写可迁移原则,厂商名仅作类比;不写控制台菜单,不贴未公开公司空间/表/配额数据。