ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

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

企业数据体系到底怎么建?从数据架构、数仓设计到指标定义,一文讲清 做企业数据项目时间久了我越来越觉得“数据体系建设”这件事最容易被讲复杂。一开会就是数据中台、数据湖、数仓分层、指标平台、主数据、元数据、数据治理听起来每个词都很专业但真正回到企业现场经常还是几个老问题同一个销售额不同部门算出来不一样系统不少分析时还是靠Excel拼数据数仓建了很多表但业务不知道该用哪张指标看起来很全一到经营会上还是解释不清问题。所以我一直觉得企业建数据体系最怕的不是技术做得少而是一开始就把顺序做反了。真正好用的数据体系不是先决定上什么平台也不是先画一张特别漂亮的架构图而是先回答一个很朴素的问题企业以后到底希望靠数据解决什么问题如果这个问题想不清楚后面做多少层架构、建多少张表都有可能只是“技术上完成了业务上没用起来”。这也是为什么我最近会比较关注FineDataLink 5.0。它不只是解决传统的数据集成和数仓开发问题在5.0里又补上了实时计算、数据质量以及信创数据源和SaaS连接器等能力。简单说就是让企业不仅能把数据“接进来”还能够把数据持续加工、及时校验、稳定流转起来为后面的数仓建设、指标统一和分析应用打好底座。需要数据集成工具FineDataLink 5.0的可以自取https://s.fanruan.com/tx4dw复制到浏览器说到底企业数据体系其实没那么神秘。它就是把分散在各个系统里的数据经过统一整理、建模和定义最终变成一套业务看得懂、分析用得上、管理层敢拿来做决策的数据基础。一、先别急着建数仓先把企业的数据问题说清楚很多项目一上来就问“我们数仓分几层”我一般不会先回答这个问题。因为数仓分几层不重要重要的是你到底想解决什么。如果企业最大的问题是财务和业务口径不一致那优先级就应该放在指标口径和数据标准上。如果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等实时数据让一部分原来只能T1处理的数据真正具备分钟级甚至更及时的流转能力。三、数仓设计最容易犯的错就是把“搬数据”当成“建数仓”这一点在企业项目里特别常见。业务系统几十张表全部同步到一个数据库里然后说“数仓已经建好了。”其实这只能算数据搬运。真正的数据仓库核心不是把数据集中起来而是把数据重新组织成业务可以理解和复用的结构。比如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连接器这些实际建设中越来越常见的问题。真正好用的数据体系从来不是架构图画得多漂亮。它最现实的标准只有一个业务需要数据的时候能不能找得到、看得懂、信得过、用得起来。
返回列表