在长期参与企业数据建设的过程中,与客户沟通时经常收到类似反馈:
““系统里并非没有数据,表也不少,但真到做分析时,不知道选哪张。”
“同一个订单金额,不同部门跑出来的结果不一致。”
“业务人员看不懂表名,开发人员一变动,找数据就更费劲。”
”
这些现象背后指向同一个根源:数据建设缺乏统一规划,表虽然在增长,但体系并未真正建立起来。
01 表变多了,取数为何更费劲?
信息化推进数年之后,不少企业会碰到一种矛盾:系统数量在涨,库表也在扩,但业务分析时反而更不容易找到目标数据。
ERP、CRM、订单、财务、会员等系统会持续输出数据,数据团队又会围绕项目和分析需求,不断做同步、加工和新建表。时间一长,单库出现几百乃至几千张表并不奇怪。
关键在于,这些表主要跟随系统和开发过程生成,并非以业务人员理解业务的方式来做组织。
假设要算“每天各城市的订单金额”,库中可能同时躺着 order_info、order_detail、order_history、dwd_order、order_stat 等多张订单表。
仅凭表名,很难判断哪张可用、是否已加工、口径是否一致。
类似情况还有:业务侧看不懂技术表;同一客户或订单存在多份数据;不同部门各自取数统计,结果也可能对不上。
所以,很多企业的核心矛盾已从“有没有数据”转为“数据增多后,如何组织清楚,并让使用者知道该怎么用”。
“”
业务系统:ERP、CRM、订单、财务、会员、生产系统
大量数据表:几百 / 几千张表
业务分析需求:我想统计每天各城市的订单金额,到底应该用哪张表?哪张表能用?数据口径一致吗?这张表是谁加工的?
总结:企业并不缺数据,真正缺的是一套能够让数据被清楚组织、理解和使用的方式。
02 常见解法有哪些?
面对数据越来越多、越来越难找的问题,企业通常会采用下面几种方式:
补充数据字典与文档说明
通过数据字典与文档,对表、字段、来源等做补充说明,缓解“看不懂”。
依赖熟悉系统的数据开发人员
业务不知道取哪张表时,靠熟悉系统的开发人员凭经验判断。
按业务需求继续新增数据表
现有数据满足不了需求,就继续加工、汇总或新建应用表,先支撑当前需求。
建设数据目录、元数据或数据资产平台
用数据目录、元数据或数据资产平台,通过搜索、分类、标签、血缘等方式帮用户找数据、看关系。
制定数据分层与开发规范
用 ODS、DWD、DWS、ADS 等分层,以及表名、字段规范,约束开发过程。
“”
数据字典 / 文档说明:主要解决“看不懂数据”;
依赖开发人员经验:主要解决“不知道该用哪张表”;
按需求继续建表:主要解决“现有数据无法满足当前需求”;
数据目录 / 元数据平台:主要解决“数据找不到、关系看不清”;
分层与开发规范:主要解决“数据建设过程不够规范”。
总结:这些方法都有用,但更多是在解决局部问题。它们解决了说明、查找、交付和规范问题,但大多数仍然是在管理“已经存在的数据”,没有回答“数据一开始应该如何建设”。
这些方式都能解决部分实际问题,但多数仍围绕已有数据展开说明、查找、整理和规范。
随着数据不断增长,一个更基础的问题会逐渐浮现:
企业的数据,从一开始究竟应该按照什么方式来规划和建设?
03 为什么这些做法仍难治本?
前述方式更多是在处理“已有数据如何管理”,但如果数据建设本身缺少统一规划,问题依旧会不断积累。
主要体现在以下三个方面:
缺少业务视角的数据规划
数据规划缺少业务视角。很多表围绕系统、项目或单次需求建,同一客户、订单、商品可能散落在多个系统和表中。
缺少统一的数据结构
缺少统一数据结构。不同团队按各自理解建数据,同一业务对象的字段、结构、口径不一致,用的时候还得重新理解加工。
缺少可持续的数据体系
缺少可持续数据体系。新需求一来就找表、改表、建表,短期能解,长期让数据越堆越多、越复杂。
因此,关键不只是管理存量数据,而是先明确业务与数据应如何组织,再按统一方式持续建设。
这正是数据建模的命题。
“前面的方法能改善说明、查找和管理,但没有回答数据一开始应该如何建设。
问题不只是怎么管理已有数据,而是数据从一开始应该怎么建设。
”
04 数据建模怎样构建统一数据体系?
数据建模并非单纯“建一张表”,而是在数据入库前,先回答企业数据以什么为核心组织、按什么结构建设。
一句话:先懂业务,再设计数据。
以业务视角组织数据
先看企业有哪些业务范围、业务对象及关系。比如交易业务中识别客户、商家、商品、订单等核心对象,再明确关系。数据建设起点从“库里有哪些表”变成“业务上需要沉淀哪些数据”。
建立统一数据结构
对象明确后,定义属性、字段和关系。比如订单包含哪些基础信息,与客户、商品、商家如何关联,都提前在模型中统一定义,减少重复设计。
让模型可被后续需求复用
新报表、指标或分析需求出现时,优先使用已沉淀的对象和结构,而不是每次重新找表、理解字段、重新加工。数据建设从“需求来了就建表”转为“围绕统一模型持续建设数据”。
“1.从业务视角梳理数据:先理解企业的业务范围和核心对象,从业务出发确定需要沉淀哪些数据。业务板块:交易、会员、财务、更多;业务流程:下单、支付、发货、售后;核心业务对象:客户、商家、商品、订单。
2.建立业务对象模型:明确各个业务对象之间的关系,形成统一的业务视角。客户→下单→订单;商家→销售→订单;订单→包含→商品;订单→所属→城市。
3.定义统一的数据结构:为每个业务对象设计统一的字段、关系和数据结构,形成可复用的模型。订单模型(事实):order_id 订单ID、customer_id 客户ID、merchant_id 商家ID、product_id 商品ID、order_amount 订单金额、order_time 下单时间。客户模型(维度):客户ID、客户名称。商家模型(维度):商家ID、商家名称。商品模型(维度):商品ID、商品名称。城市模型(维度):城市ID、城市名称。
4.支撑多场景持续复用:基于统一的模型,快速支撑各类数据应用,减少重复建设。数据分析:业务报表、经营分析、多维分析……;指标体系:原子指标、派生指标、业务限定……;数据服务:API发布、数据查询、接口调用;数据应用:经营大屏、业务看板、智能问数。
总结:从“围绕需求不断建表”,转向“围绕业务模型持续建设数据”。更清晰的业务视角、统一的数据结构、可持续复用的数据体系。
”
05 qData 数据建模的落地路径
如前所述,重点不在多建几张表,而在先理清业务范围、业务对象和数据结构,再让后续建设遵循同一规则。
qData 把这套过程从业务规划起步,逐步落到逻辑模型和指标模型。
1. 先统一分层规则
建模前先确定数据分层,明确不同类型数据放在哪层。
比如原始业务数据进贴源层,客户、商品、组织等公共对象沉淀到维度层,订单、支付、退款等业务过程形成明细事实数据,再按分析需要形成汇总数据和应用数据。
同时统一模型命名规则,让后续创建有约束,而不是各项目自行命名建设。
“”
ODS 贴源数据:存储来自业务系统的原始数据,为后续数据加工提供基础。
DIM 公共维度:建立客户、商品、组织、地区等公共业务对象,为各业务过程提供统一分析维度。
DWD 明细数据:存储各业务过程产生的明细数据,完成维度关联、事实度量等加工。
DWS 汇总数据:基于维度建模,将不同粒度的汇总数据集中存储,为各分析场景提供统一数据。
ADS 应用数据:以客户、商品、销售等业务对象为核心,为各类数据应用提供直接可用的数据。
2. 从业务规划开始,而非直接从库表开始
分层规则确定后,先梳理业务范围。
qData 通过数据板块、主题域和业务实体逐层组织业务。
数据板块划分大业务范围;主题域拆分具体业务方向;业务实体对应真正要管理的业务对象,如客户、商品、订单、商家等。
好处是后续每个模型都知道自己属于哪个业务范围、描述哪个业务对象,而不是只剩技术表和表名。
3. 按用途建设逻辑模型
业务范围明确后设计数据结构。
qData 区分不同用途模型:
贴源逻辑表承接源系统数据,为后续加工提供基础;
维度逻辑表沉淀客户、商品、组织、地区等公共业务对象;
事实逻辑表记录订单、支付、退款等业务活动明细数据。
明细基础上还可建汇总逻辑表,沉淀常用统计粒度和分析结果;
面向报表、看板、数据服务等应用的数据,通过 ADS 应用表组织。
这样不同类型数据建在哪、承担什么作用,边界更清晰。
4. 把业务指标沉淀下来
数据结构统一后,同一指标不同部门可能有不同算法。
qData 可在逻辑模型基础上管理指标口径。
通过原子指标定义基础统计逻辑,通过业务限定配置筛选条件,再按统计粒度和业务要求形成派生指标。
指标不再只是某张报表里的 SQL,而能与数据模型一起沉淀,后续其他分析场景继续使用。
5. 让后续建设尽量复用已有模型
数据建模真正发挥作用,不在模型建完那一刻,而在后续新需求不断出现后。
过去新分析需求来了,往往重新找表、理解字段、确认口径、再加工一套数据。模型沉淀后,可优先判断已有业务实体、维度、事实、汇总模型和指标能否直接复用。
已有模型能满足就不必从底层重建;确有新业务对象或新数据结构时,再在原有体系中补充。
数据建设从“需求来了就建表”变为“基于已有模型持续补充和复用”。
通过这种方式,qData 把业务规划、模型设计和指标定义放在同一套数据建模体系中,让数据建设不再只是不断增加库表,而是围绕统一业务结构持续沉淀。
06 落地后能带来哪些变化?
数据建模最终不是多出一套模型,而是让企业数据建设有了统一规则和方向。
其一,建设更规范。不同团队按统一业务范围、模型类型和数据结构推进,减少重复开发和随意建表。
其二,数据更易理解使用。客户、订单、商品等业务对象统一梳理后,业务与技术更容易形成一致理解。
其三,存量数据可持续复用。新报表、指标和分析需求优先使用已沉淀模型和指标,减少重复加工。
在此之上,报表分析、指标体系、数据服务、智能问数等数据应用,能建立在更统一的数据基础上。
“1.数据建设更规范:统一分层、统一模型、统一结构,减少重复建设和随意建表。
2.数据更容易理解和使用:业务对象更清晰,降低业务与技术沟通成本。
3.数据复用效率更高:已有维度、事实、汇总模型可持续复用,新需求不必每次重新加工。
4.支撑更多数据应用:报表分析、指标体系、数据服务、智能问数。
总结:从“数据库里有很多表”,走向“一套可以理解、复用和持续建设的数据体系”。
”
数据建模真正带来的,不止模型本身,更是一套更清晰、更可复用、更可持续的数据建设方式。
写在最后
回到开头的问题:企业要解决的并非“库中有多少张表”,而是数据有没有按统一业务逻辑组织。
数据建模,就是把不断增长的表逐步沉淀为可理解、可复用、可持续建设的数据体系。
qData 所做的,也是把业务规划、模型设计和指标定义纳入同一套数据建模体系,让数据建设不再只是堆表,而是围绕统一业务结构持续沉淀。