|
做企业数据项目时间久了,我越来越觉得,“数据体系建设”这件事,最容易被讲复杂。
一开会就是数据中台、数据湖、数仓分层、指标平台、主数据、元数据、数据治理,听起来每个词都很专业,但真正回到企业现场,经常还是几个老问题:
所以我一直觉得,企业建数据体系,最怕的不是技术做得少,而是一开始就把顺序做反了。
真正好用的数据体系,不是先决定上什么平台,也不是先画一张特别漂亮的架构图,而是先回答一个很朴素的问题:
企业以后到底希望靠数据解决什么问题?
如果这个问题想不清楚,后面做多少层架构、建多少张表,都有可能只是“技术上完成了,业务上没用起来”。
这也是为什么我最近会比较关注 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。
但我一直不太建议把重点放在背这些缩写上。
真正重要的是:
每一层到底承担什么职责。
可以把它理解得简单一点。
-
-
DWD开始围绕订单、付款、出库、库存变动这些真实业务事件整理明细数据,并统一颗粒度。
-
DWS更适合做主题汇总,比如客户月度销售、产品月度毛利、区域库存结构。
-
分层最大的意义,不是让架构看起来专业,而是:
避免每一个分析需求都从原始数据重新加工。
如果今天经营看板算一遍销售额,明天财务专题再写一遍,后天客户分析又重新开发一套逻辑,那企业永远不会形成稳定的数据公共层。
所以好的数仓设计,本质上是在做两件事:
判断分层是否合理,也可以看一个很实际的指标:
同一套业务逻辑,有没有被多个报表、专题和系统重复开发。
重复得越多,说明公共层越弱。
数仓分层真正跑起来之后,难点往往会从“怎么写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连接器这些实际建设中越来越常见的问题。
真正好用的数据体系,从来不是架构图画得多漂亮。
它最现实的标准只有一个:业务需要数据的时候,能不能找得到、看得懂、信得过、用得起来。 |