企业数据体系到底怎么建?从数据架构、数仓设计到指标定义,一文讲清

楼主
学无止境,精益求精

做企业数据项目时间久了,我越来越觉得,“数据体系建设”这件事,最容易被讲复杂。

一开会就是数据中台、数据湖、数仓分层、指标平台、主数据、元数据、数据治理,听起来每个词都很专业,但真正回到企业现场,经常还是几个老问题:

  • 同一个销售额,不同部门算出来不一样;
  • 系统不少,分析时还是靠Excel拼数据;
  • 数仓建了很多表,但业务不知道该用哪张;

  • 指标看起来很全,一到经营会上还是解释不清问题。

所以我一直觉得,企业建数据体系,最怕的不是技术做得少,而是一开始就把顺序做反了。

真正好用的数据体系,不是先决定上什么平台,也不是先画一张特别漂亮的架构图,而是先回答一个很朴素的问题:

企业以后到底希望靠数据解决什么问题?

如果这个问题想不清楚,后面做多少层架构、建多少张表,都有可能只是“技术上完成了,业务上没用起来”。

图片
这也是为什么我最近会比较关注 FineDataLink 5.0
 
它不只是解决传统的数据集成和数仓开发问题,在5.0里又补上了实时计算、数据质量,以及信创数据源和SaaS连接器等能力。
 
简单说,就是让企业不仅能把数据“接进来”,还能够把数据持续加工、及时校验、稳定流转起来,为后面的数仓建设、指标统一和分析应用打好底座。
 
需要数据集成工具 FineDataLink 5.0的可以自取:https://s.fanruan.com/ns1l9
图片

说到底,企业数据体系其实没那么神秘。

它就是把分散在各个系统里的数据,经过统一整理、建模和定义,最终变成一套业务看得懂、分析用得上、管理层敢拿来做决策的数据基础。


一、先别急着建数仓,先把企业的数据问题说清楚

很多项目一上来就问:

“我们数仓分几层?”

我一般不会先回答这个问题。

因为数仓分几层不重要,重要的是你到底想解决什么。

如果企业最大的问题是财务和业务口径不一致,那优先级就应该放在指标口径和数据标准上。

如果ERP、CRM、MES之间数据根本接不起来,那先解决的是数据集成和数据链路

如果业务已经能拿到数据,但每次分析都要重新加工,那真正缺的是统一的数据模型和公共数据层

我通常会先把问题拆成三类:

  • 拿不到:数据散在不同系统里,做一次完整分析还得找IT导库、找业务补Excel;
  • 对不上:同一个客户、同一个产品、同一个收入指标,不同系统和部门口径都不一样;
  • 用不好:数据其实都有,但没人知道应该用哪张表、哪个字段,最后还是找熟悉系统的人临时解释。

这几类问题如果不先分清楚,后面很容易出现一个结果:

企业花了很多钱建数据平台,但原来的问题只是被搬到了一个新的系统里。

所以数据体系建设第一步,不是选架构,而是先把业务问题翻译成数据问题。

这一步看起来慢,其实最省时间。

如果问题首先卡在“数据根本汇不起来”,那就别急着往上做指标平台。

实际项目里可以先用 FineDataLink 5.0 把ERP、CRM、MES、WMS、数据库、接口、Excel等不同来源的数据接起来,先把人工导数、重复搬运这类基础问题解决掉。

尤其是在数据源越来越多之后,先让数据稳定流起来,再谈模型和指标,整个体系会顺很多。


二、数据架构真正要解决的,是“数据以后怎么流”

很多企业画数据架构图,喜欢画得特别满。

最下面是业务系统,中间是ODS、DWD、DWS,再往上是数据集市、指标平台、BI、AI。

图一看很完整。

但真正落地的时候,经常没人能回答:

一条订单数据从ERP出来以后,到底经过哪些加工,最后为什么能变成管理层看到的销售额?

这才是数据架构最应该解决的问题。

数据架构不是为了把系统画出来,而是为了明确一条完整的数据流动路径。

先把三件事讲清楚:

  • 数据从哪里来;
  • 中间怎么处理;
  • 最后给谁用。

数据来源这一层,重点不是把系统名字列全,而是要明确每类核心数据的唯一来源。

比如客户主数据到底以CRM为准,库存数据到底以WMS还是ERP为准。

如果源头都不明确,后面数据对不上,就很难追。

中间处理这一层,要提前考虑字段标准化、编码映射、历史保留和异常处理。

最后一层则要回到业务应用。

经营分析、财务分析、供应链分析,对数据颗粒度和口径要求完全不同,底层设计必须为最终使用服务。

所以我更愿意把数据架构理解成一条链:

业务产生数据 → 数据统一加工 → 形成稳定模型 → 定义指标 → 分析应用消费数据。

真正危险的,不是架构层级少,而是层级很多,却没人说得清每一层为什么存在。

到了这一步,FineDataLink 5.0 的作用就不只是“把数据拉过来”,而是把架构图里的数据流真正落成可运行的任务。

源端数据怎么进来、中间经过哪些处理、最终写到哪里,都能在同一条数据链路里管理。

对于实时性要求更高的场景,5.0新增的实时计算能力还可以接入CDC、Kafka、MQTT等实时数据,让一部分原来只能T+1处理的数据,真正具备分钟级甚至更及时的流转能力。


三、数仓设计最容易犯的错,就是把“搬数据”当成“建数仓”

这一点在企业项目里特别常见。

业务系统几十张表,全部同步到一个数据库里,然后说:

“数仓已经建好了。”

其实这只能算数据搬运。

真正的数据仓库,核心不是把数据集中起来,而是把数据重新组织成业务可以理解和复用的结构。

比如ERP里面一张订单表,可能只记录订单头信息。订单明细、客户、产品、区域和业务员信息又分别放在其他表里。

如果每次分析销售都重新连这些表,企业的数据能力就还是停留在临时加工阶段。

数仓真正要做的,是围绕业务主题重新组织数据。

到了销售主题里,一笔业务至少应该能够比较顺畅地回答:

  • 什么时候发生;
  • 卖给谁;
  • 卖了什么;
  • 收入、数量和成本分别是多少。

这时候你已经不是在看“系统表”,而是在看一个真正的业务模型。

这就是数仓设计非常关键的一步:

从系统视角,转向业务视角。

系统建表是为了交易和流程效率,数仓建模是为了分析和决策,两者目标完全不同。

一个实用的判断标准是:

如果一个业务问题每次都要重新理解源系统表结构,说明数仓还没有真正把业务语义沉淀下来。

在数仓加工环节,FineDataLink 5.0 更适合承担的是“稳定的数据生产流水线”。

例如订单头、订单明细、客户和商品等数据进入数仓之前,可以把字段拆分、值替换、JSON/XML解析、计算列、过滤等处理逻辑固定下来。

复杂一些的场景还可以结合关联、合并、分组汇总甚至Flink SQL去处理。

这样原本散落在SQL脚本和个人电脑里的加工逻辑,就能变成可复用、可维护的长期任务。


四、为什么很多企业数仓建完了,业务还是不会用?

我见过不少这样的项目。

数仓里表很多,命名也很规范。

ODS_xxx、DWD_xxx、DWS_xxx,一看就很专业。

但业务问一句:

“我要看客户利润,应该用哪张表?”

没人能直接回答。

这说明数仓虽然建了,但业务语义没有真正沉淀进去。

好的数仓,不应该只是技术人员看得懂。

它应该逐步把企业的核心业务对象固定下来,比如:

  • 客户;
  • 产品;
  • 订单;
  • 组织。

这里最关键的,不是有没有这些对象,而是同一个对象能不能在不同主题里保持一致。

比如“客户”,销售分析按照成交主体理解,财务按照结算主体理解,售后又按照联系人理解。

最后一做跨主题分析,数据一定乱。

所以很多所谓“指标对不上”,继续往前追,真正的问题往往不是公式,而是连业务对象都没统一。

统一业务对象,是企业数据体系能够跨主题复用的前提。

这一步里,很多麻烦其实都出在编码和映射关系上。客户编码、组织编码、产品编码如果每个系统各用一套,分析时就会反复对表。

可以把这些映射逻辑放到 FineDataLink 5.0 的数据处理任务里统一执行,让新数据进入数仓时自动按照同一套规则完成转换。

真正统一的不是一张表,而是同一个业务对象在整个数据体系里的身份。


五、分层不是目的,关键是每一层不要重复干活

数仓分层大家都很熟。

ODS、DWD、DWS、ADS。

但我一直不太建议把重点放在背这些缩写上。

真正重要的是:

每一层到底承担什么职责。

可以把它理解得简单一点。

  • ODS主要解决原始数据先稳定落下来的问题。
  • DWD开始围绕订单、付款、出库、库存变动这些真实业务事件整理明细数据,并统一颗粒度。
  • DWS更适合做主题汇总,比如客户月度销售、产品月度毛利、区域库存结构。
  • ADS才真正靠近具体报表和分析场景。

分层最大的意义,不是让架构看起来专业,而是:

避免每一个分析需求都从原始数据重新加工。

如果今天经营看板算一遍销售额,明天财务专题再写一遍,后天客户分析又重新开发一套逻辑,那企业永远不会形成稳定的数据公共层。

所以好的数仓设计,本质上是在做两件事:

  • 把公共逻辑提前沉淀;
  • 让重复计算尽量只做一次。

判断分层是否合理,也可以看一个很实际的指标:

同一套业务逻辑,有没有被多个报表、专题和系统重复开发。

重复得越多,说明公共层越弱。

数仓分层真正跑起来之后,难点往往会从“怎么写SQL”变成“怎么保证任务长期稳定运行”。

这时候可以利用 FineDataLink 5.0 统一管理任务依赖、调度和异常状态,把不同层之间的加工顺序固定下来。

相较于大量散落的脚本,集中管理的好处很直接:哪一步失败、影响哪些下游、需不需要重跑,会更容易判断。


六、指标定义一定要提前做,不能等看板做到最后再补

这一点我特别想强调。

很多企业的指标管理,都是看板做到一半才开始讨论。

页面都快搭好了,业务突然问:

“这里的销售额到底含不含税?”

然后大家才发现,这个指标从来没有正式定义过。

这时候再补,成本非常高。

因为销售额一个口径变化,后面的同比、环比、完成率、客户贡献都会跟着变。

所以指标定义一定要前置。

一个合格的指标定义,至少要说清楚:

  • 业务含义是什么;
  • 统计对象和时间口径是什么;
  • 哪些数据需要纳入或排除;
  • 最终取数来自哪里。

比如“销售收入”。

按订单金额、出库金额、开票金额和财务确认收入计算,都有可能有合理场景。

问题不是哪一个绝对正确,而是:

企业必须明确在什么场景下,用哪个口径表达什么业务事实。

这里再给一个很实用的建议:

指标不要只留“名称 + 公式”。

最好补一份指标口径卡片,至少把定义、计算逻辑、过滤条件和责任部门写清楚。

指标口径定下来以后,最怕的是报表层各算各的。与其让不同分析人员重复写过滤条件,不如把核心逻辑提前固化到 FineDataLink 5.0 的数据加工层里。

某项收入需要排除取消订单、内部结算或者特殊交易类型,就在底层一次性处理好。

指标统一真正难的,从来不是开会把名字统一,而是让后续所有数据都按照同样的规则产生。


七、指标不要一上来建几百个,先把核心经营链路跑通

有些企业做指标体系,特别容易追求“大而全”。

最后指标字典几百个,真正经营会上长期看的,可能只有二三十个。

我的经验是,指标体系最好从经营链路往下拆。

比如销售,先看结果:

  • 销售额;
  • 毛利;
  • 回款。

结果有变化,再继续追过程。

  • 销售额可以继续拆订单量、客户数和客单价。
  • 毛利可以继续看价格、成本和产品结构。
  • 回款则可以继续看账龄、逾期和回款周期。

你会发现,指标不是越多越好。

真正有价值的指标体系,是指标之间能够形成解释关系。

如果一堆指标只是平铺在一个页面上,彼此之间没有逻辑,那只能叫指标清单。

一个实用原则是:

每个结果指标,最好能找到2到3个可以继续解释它的过程指标。

这样经营会上看到问题,才知道下一步往哪里看。

而要让这些指标长期稳定更新,底层主题数据就不能靠月底临时拼。

这里 FineDataLink 5.0 更像是在给指标体系做“供水管道”:

销售、客户、回款等主题数据按照固定节奏持续加工,实时性要求高的部分还可以通过实时链路补充。

指标能不能长期可信,最终还是取决于底层数据是不是持续、稳定地被生产出来。


八、维度设计往往比指标数量更重要

这一点很多企业一开始不太重视。

大家都在讨论:

“我们需要哪些指标?”

但真正做分析的时候,更关键的问题经常是:

这个指标能不能往下拆。

销售额下降了,下一步可能要看区域、产品、客户、渠道或者业务员。

如果这些维度没有在底层统一好,指标再标准,也很难深入分析。

所以数据体系建设里,维度设计非常重要。

尤其是几个核心维度:

  • 时间;
  • 组织;
  • 客户;
  • 产品。

这里有两个特别容易踩的坑。

第一个是维度编码不统一。

同一个客户在不同系统里有不同ID,跨主题分析直接失效。

第二个是历史口径没有保留。

比如组织架构调整以后,如果历史数据全部按新组织重算,就很难还原当时真实经营情况。

所以成熟的维度设计,不只是“现在能不能对上”,还要考虑历史怎么追溯。

实际落地时,可以把维度转换和历史映射规则沉淀到 FineDataLink 5.0 的任务里。

比如组织调整以后,既保留原始组织关系,又生成统一分析口径,让报表既能看当前组织,也能追历史。

维度体系做得扎实,后面跨财务、销售、供应链做综合分析才不会每次重新对表。


九、数据质量不能只放到最后验收,它必须嵌在整条链路里

很多项目的数据质量管理很被动。

看板发现数字不对了,再往下排查。最后发现源系统字段漏填,或者中间同步失败。

真正成熟的数据质量管理,不应该一直靠“有人看出问题”来触发。

它应该尽可能变成持续监控。

常见的数据质量规则可以从几类开始:

  • 完整性:关键字段是不是缺失;
  • 一致性:不同系统之间能不能对上;
  • 唯一性:订单、客户等关键对象是否重复;
  • 及时性:关键数据是否按要求更新。

还有一个很重要的点:

质量规则一定要跟业务影响挂钩。

不是所有空值都值得报警。

如果某个字段从来不用,缺不缺其实影响不大。

但如果是客户编码、订单金额、结算日期这类核心字段,就应该重点监控。

所以质量治理不是规则越多越好,而是要优先覆盖关键业务对象和核心指标链路。

这一块正好是 FineDataLink 5.0 相比之前版本变化比较明显的地方。

5.0新增了数据质量模块,可以围绕完整性、一致性、准确性、唯一性、时效性、有效性等维度配置检测规则,并查看异常明细。

更实用的一点是,质量检测可以直接放进数据开发流程里:关键任务检测不通过,可以阻断后续流程并通知负责人。

这比等看板出错以后再人工排查,效率完全不是一回事。


十、别总想着一步到位,数据体系更像是“边用边长出来的”

很多企业做数据体系建设,最容易掉进“顶层设计一次定终局”的思路。

顶层设计当然重要。

但现实业务永远在变化。

系统会升级,组织会调整,产品会变化,指标口径也会不断优化。

所以真正好用的数据体系,必须允许迭代。

我更建议先选几个高价值场景。

比如:

  • 经营分析;
  • 财务分析;
  • 库存管理。

先把这些场景里的数据链路、模型和指标跑顺。

等第一批场景稳定以后,再逐步扩展。

这样做有一个很现实的好处:

每往前走一步,都能看到业务价值。

而不是花一年时间建一套巨大平台,最后业务才第一次真正使用。

还有一个很实用的建设顺序:

先选场景,再确定核心指标。

指标定下来以后,反推需要哪些业务对象和数据源。

最后才决定数仓模型怎么建、任务怎么跑。

这样做出来的数据体系,会比“先建平台,再找应用”靠谱得多。

FineDataLink 5.0 在这种渐进式建设里也更容易发挥作用。

企业可以先从一个主题域、一条关键链路开始,把数据同步、加工、质量检测和监控跑通,再逐步复制到更多系统和主题。

对于有国产化要求的企业,还可以继续扩展到达梦、人大金仓、OceanBase、GaussDB等信创数据源;

如果业务数据在SaaS平台上,也可以通过连接器减少接口开发工作。

数据体系真正能落地,通常不是因为第一次规划得足够大,而是因为第一批场景真的跑通了。


最后说几句

企业数据体系这件事,说到底并不是一个纯技术项目。

它真正要解决的是:

企业的数据到底能不能被统一理解、稳定加工和持续使用。

如果一定要把整套逻辑压缩成一句话,我会这样理解:

数据架构负责把路修好,数仓负责把数据组织好,指标体系负责把企业的业务语言统一起来。

而真正落地时,还得靠稳定的数据开发、质量管理和持续运维,把这套体系长期跑下去。

所以如果你现在正在建企业数据体系,我反而不建议先问:

“我们是不是需要数据中台?”

更应该先问几个更实际的问题:

  • 当前最影响经营的数据问题是什么;
  • 哪些核心数据必须先统一;
  • 哪些指标必须先定义清楚;
  • 第一批最值得跑通的业务场景是什么。

这些问题想清楚以后,后面的架构、数仓、指标和工具选择,才会顺。

从底层落地来看,FineDataLink 5.0 真正值得关注的,也不只是传统的数据集成。

它现在更像一套围绕企业数据流动建立的基础能力:

一边解决多系统数据接入和数仓开发,一边补上实时计算、数据质量、信创数据源和SaaS连接器这些实际建设中越来越常见的问题。

真正好用的数据体系,从来不是架构图画得多漂亮。

 

 

它最现实的标准只有一个:业务需要数据的时候,能不能找得到、看得懂、信得过、用得起来。

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表