为什么很多系统会需要大数据
一个业务系统刚开始做的时候,数据通常不复杂。
用户信息放一张表。
订单信息放一张表。
操作日志放一个地方。
外部接口返回结果再放一个地方。
刚开始人还能记住。谁要查什么,找开发写个 SQL,或者导个 Excel,就能凑合用。
但系统一多,问题就来了。
同一个人可能在多个系统里出现。
同一个业务编号可能被不同系统叫成不同名字。
同一笔流水可能既在原始数据里,又在清洗后的数据里。
一个字段看起来叫“状态”,但业务、研发、测试理解的含义并不一样。
这时候,问题已经不是“有没有数据”。
问题变成了:
数据从哪里来?
字段是什么意思?
有没有重复?
有没有缺失?
能不能按人、账号、时间、业务单号串起来?
结果能不能追到原始来源?
业务人员敢不敢拿这个结果做判断?
大数据要解决的,就是这些问题。
大数据不是报表系统
很多项目会把大数据理解成报表。
这个理解也容易走偏。
报表只是大数据的一种输出。真正有价值的是报表背后的数据整理过程。
比如一个页面上展示“本月新增 1000 条业务记录”。这个数字看起来简单,但背后要回答很多问题。
这 1000 条从哪些系统来?
有没有重复计算?
统计时间按创建时间,还是按审核通过时间?
被撤回、作废、重复录入的数据算不算?
明天再查一次,结果会不会变?
如果这些问题答不上来,报表再漂亮,也只能看个热闹。
所以,大数据不是把图表做炫。
大数据是让数据结果经得起追问。
一条数据通常要走几步
大数据的工作,可以用一条普通数据的旅程来理解。
第一步,采集。
采集就是把数据接进来。来源可能是业务数据库、外部接口、日志文件、Excel 文件,也可能是消息队列。
这一步要先问清楚:数据源是谁提供的,更新频率是什么,失败了谁负责处理。
第二步,入仓。
入仓,就是把数据放进数据仓库。数据仓库是专门用来集中保存、整理和分析数据的数据库体系。
这里不能只把数据随便塞进去。原始数据要保留,处理后的数据要分层,最终给业务查询的数据也要单独组织。
第三步,清洗。
清洗不是把数据洗漂亮,而是把脏数据处理成可用数据。
比如去掉重复数据,统一时间格式,补齐缺失字段,把“男、M、1”统一成同一种性别口径,把不同系统里的业务编号对齐。
第四步,建模。
建模在这里不是大模型训练。它指的是按照业务理解重新组织数据。
比如把用户、订单、支付、退款、客服工单串起来。这样查询时看到的不再是孤立字段,而是一件事的完整过程。
第五步,服务业务。
数据整理好之后,要能被页面、报表、接口、算法、预警规则使用。
这一步才是真正的落地。否则前面做再多,也只是把数据换了个地方存。
ODS、DIM、DWD、DWS、ADS 到底是什么
很多人一看到 ODS、DIM、DWD、DWS、ADS 就头大。
其实可以先按人话理解。
ODS 是原始数据层。它尽量保留数据刚进来时的样子,方便以后追溯来源。
DIM 是维度层。维度,就是看数据的角度,比如人、机构、地区、时间、商品、客户。
维度层的作用,是把这些常用信息整理成统一口径。这样不同报表、不同接口、不同分析任务,就不用各自维护一套“客户是谁、地区怎么分、机构怎么归属”的规则。
DWD 是明细数据层。它会对原始数据做清洗和标准化,让字段更统一,数据更适合继续使用。
DWS 是汇总数据层。它开始按业务主题做统计,比如按用户、订单、地区、时间做汇总。
ADS 是应用数据层。它直接面向页面、报表、接口或业务分析,通常已经贴近具体使用场景。
这 5 层不是为了显得专业。
它们的作用是把“原始数据、公共维度、清洗明细、汇总数据、业务使用数据”分开。这样出了问题,能一层一层往回查。
不同团队的叫法会有差异。有的团队会把 DIM 单独算一层,有的团队会把它当成公共维度表放在数仓中间。普通读者不用先纠结名字,先记住它解决的是“按什么角度看数据”的问题。
没有分层,数据就容易变成一锅粥。