当前位置:首页 > 问答 > 正文

数据仓库开发其实没那么难,跟着学一步步搞定也能轻松上手

综合自多位一线数据开发工程师的实践经验分享与技术博客)

很多人一听到“数据仓库”这四个字,头就大了,脑子里立刻浮现出各种看不懂的英文缩写、复杂的架构图和高深莫测的理论,感觉这是只有大厂专家才能玩转的高科技,但其实,数据仓库的核心思想非常朴素,它就像一个大型的、井井有条的“家庭数据储物间”。

想象一下你家里的储物间,在没有整理之前,东西扔得到处都是:网购的快递单在餐桌上,水电费账单在抽屉里,孩子的成绩单在书架上,你想查一下上个季度总共花了多少钱,得跑好几个地方,把各种纸张翻出来,自己拿计算器加一遍,非常麻烦。

这个状态,就是公司里没有数据仓库时的样子,数据分散在各个业务系统里:销售数据在A软件里,用户信息在B系统里,财务数据又在C数据库里,每个数据都像散落在房间各处的纸片。

数据仓库是做什么的呢?它就是那个帮你整理储物间的贴心管家,它的工作分几步,一步步来,一点都不难。

数据仓库开发其实没那么难,跟着学一步步搞定也能轻松上手

第一步,确定你要往储物间里放什么(需求调研与模型设计)。 你不能把家里所有东西都胡乱塞进去,对吧?你得想好,这个储物间主要用来存放哪些类别的物品?是工具类、档案类还是季节性物品?对应到数据仓库,就是你要和各个业务部门(比如销售、市场、财务)聊天,搞清楚他们最关心什么问题?需要看哪些数据来做决策?销售总监可能想看“每个地区、每个销售员本月的销售额”,而市场经理可能想看“不同广告渠道带来了多少新用户”,把这些需求弄清楚,你就知道了你的“储物间”需要设计哪些“货架”(在数据仓库里,这叫“主题域”和“数据模型”)。

第二步,把散落的东西收集起来,并贴上统一的标签(数据抽取与清洗)。 你要开始动手整理了,你会从餐桌、抽屉、书架等各个地方,把那些票据、账单都收集到一个大筐里,这个过程,在数据仓库里叫“数据抽取”,但收集来的东西很乱,有的账单日期写的是“2023.10.1”,有的写的是“2023/10/01”,还有的甚至写错了年份,你需要把它们统一改成“2023-10-01”这样的标准格式,这就是“数据清洗”,你还会给每张票据贴上标签,水电费”、“教育支出”、“购物消费”,这就是“数据转换”,这一步的目标是把来自不同源头、格式五花八门的数据,变成干净、统一、规整的数据。

第三步,把整理好的物品分门别类地放进储物间的货架(数据加载与存储)。 数据清洗转换好后,就可以把它们加载到数据仓库的“货架”上了,这些货架可不是随便摆的,而是根据第一步设计好的模型来安排的,所有和“客户”相关的信息放在一个区域,所有和“产品”相关的信息放在另一个区域,这样摆放之后,以后找东西就特别快,在技术上说,这就是将数据加载到目标模型中,可能是星型模型或者雪花模型,听起来高级,其实就是为了查询方便而设计的一种摆放规则。

数据仓库开发其实没那么难,跟着学一步步搞定也能轻松上手

第四步,让大家能方便地找到想要的东西(数据应用与查询)。 储物间整理好了,最终目的是为了用,你家人可能会问:“帮我找出今年所有的教育支出票据?”你就能很快地从“教育支出”那个盒子里拿出来给他,数据仓库也一样,它会通过一些BI工具(比如报表、可视化大屏)或者直接提供SQL查询接口,让业务人员能够轻松地获取他们想要的数据分析结果,以前需要花一整天从不同系统导数据、用Excel手工合并的报表,现在可能点几下鼠标就能自动生成。

所以你看,整个流程“明确需求 -> 收集清洗 -> 分类存放 -> 方便使用”,是不是和整理家务的逻辑一模一样?它并不需要你一开始就精通各种高深理论,而是需要你具备清晰的逻辑思维和耐心。

在实际操作中,每个步骤都会用到一些工具和技术,比如用Kettle、DataX这样的工具做数据抽取清洗,把数据存到Hive、ClickHouse这样的数据库里,用FineBI、Tableau做可视化,但工具是死的,思路是活的,只要你理解了“整理数据储物间”这个核心思想,再去学习具体工具的使用,就会发现它们都是为实现这个思路服务的,学起来也就有方向了。

最关键的是开始动手,你可以先从给自己做一个个人记账的数据仓库开始练手:数据源就是你的微信、支付宝账单,需求就是分析你的钱花在了哪里,然后用Excel或者简单的数据库工具走一遍上述所有流程,当你成功做出第一个属于自己的“数据分析报告”时,你就会恍然大悟:原来数据仓库开发,真的没那么难,一步步跟着做,真的能轻松上手。