数据仓库介绍:什么是数据仓库、数据仓库功能、数据仓库价值、数仓领域职业发展方向规划

2021年8月8日 16点热度 0条评论 来源: yangxdata

数据仓库介绍:什么是数据仓库、数据仓库功能、数据仓库价值、数仓领域职业发展方向规划

大家好,本次分享的主题是数据仓库,通过本次分享的目的,一个是帮助到初次接触大数据行业、或者想要了解大数据体系的伙伴,能够对数据仓库的概念有一个清晰的认知。再一个是在了解数据仓库的功能跟作用的基础上,深度剖析数据仓库的价值,方便后续大家在系统学习大数据,或者从事大数据相关岗位时,应该要注重哪些方面的总结提升。
首先,我们先看一下数据仓库的概念,何为数据仓库呢,我们先把数据跟仓库拆开来看,那数据的含义简单理解就是针对一类实体信息的描述,比如把一个人作为一个实体,那个人信息包括姓名、性别、年龄、血型,把公司作为一个实体,公司的信息又包括公司名称、公司地址、主营业务、职工人数等。数据的概念比较好理解,我们就不细说了。
我们重点看看仓库的概念,仓库的直观意义就是对所有实体的集中化的管理,仓库的特性包括入库、出库、库存、盘点、分类、存储、转运。怎么去理解呢,大家如果有网上购物的习惯呢,应该听说过京东物流。那在京东自营买的商品,为什么能做到次日达甚至当日达呢,最重要的原因是京东建立了一套非常强大的物流体系,这个体系里面最重要的一个环节就是京东的物流仓库。当你在京东商城下单后,后台可以直接根据订单信息,从本地的京东仓库进行配货,然后通过专门的运输通道,送到顾客手里。
当然我们做为消费者,京东仓库对我们的直观感受是买的所有的商品统一从仓库发货,要比通过商家发货要快很多。但是如果从京东仓库的全局考虑,一个是作为一个综合型的物流仓库,如何保证仓库货物的丰富度能够支持当地购物的需求场景,这并不是每个仓只要库配备的货物种类足够多就可以了,比如你在海南省的仓库进了大批的羽绒服,那肯定是要滞销的,再一个每个地方、每个季度不同的商品它的需求量也不同,那仓库如何把控各个商品的库存,既能保障整体的供应量,又不会有较高的货物积压导致空间的浪费。最重要的一点就是当所有工场生产的商品都进入到仓库时,如何对这些货物进行科学的存储、分类、管理,当订单需求过来时,能保障快速的在仓库中找到对应的货物呢。这才是一个物流仓库的核心功能价值。

那作为数据的仓库,数仓的意义也不止是把数据存到仓库就可以了,它也包含了对数据分门别类存储、并且通过精细化的管理分析手段,实现数据的高可用,让数据发挥出最大的价值。我们可以通过物流仓库的结构图跟跟数据仓库的架构图,系统的比较一下,数据仓库都是通过哪些功能模块的协调,实现对所有数据的科学化管理。在比较之前我们先介绍一个常规的物流仓库的架构图,以及各个区域的功能,帮助大家理解数据仓库的结构。整个物流仓库呢,分为进货区、理货区、仓储区、配货区,当然还有废弃物处理区跟管理区。我们根据货物的流转过程一步一步来看。
首先这个仓库货物来源都是各个工厂,比如服装厂、家具厂、电子厂、水产养殖场,不同类型的货物在不同的工场通过物流运输,统一汇聚到物流仓库里,并在物流仓库的进货区进行卸货,在卸货的同时也会对货物的出货单进行核对,为什么要核对呢,不能说从工厂装的是一千吨货,但是到仓库只卸了五百吨,或者在养殖场装的是龙虾,结果运回来的是虾米。 核实货物没有问题后,我们就可以对货物进行分拣,并且把一些正常货物之外的东西进行处理,这个处理主要分为两种,一种是货物的外包装箱,这种就直接按照废品处理了,另外是一些残次品,因为你不能保障所有运过来的物品都是完好的,可能在运输、装卸过程中出现磕碰,或者物品在工厂生产、加工的时候本身就有瑕疵,那这种情况,在分拣的时候就要把这种货物挑出来。 分拣好货物之后,就可以根据货物的类型放到不同的仓储区并做好入库单跟标签,比如从各个服装厂运过来的衣服放到日用品区的服装区,当然服装区又细分为儿童、成人、男装、女装。从水产养殖厂运过来的货物,生鲜放在冷藏区,熟食放在冷冻区。 配货区的作用就是当某一个超市或者服装店进行下单进货时,配货人员可以在配货区根据商品订单进行快速的配货,比如当服装店进货时,可以直接到服装区进行提货,快餐店进货的话,可以去食品区提货。
整个过程大家可能只是注重理货区、仓储区这种有货物流转的地方,忽略了管理区,其实管理区的作用也是非常大的,我们可以举几个例子,比如你要如何根据商品的不同类型选择你的运输方式,针对家具厂,你要选择载重、空间比较大的运输工具,那针对水产养殖场,就要优先考虑速度快的运输工具。而且不同的货物根据市场的需求每次进货的频率也不一样,像家具没有保质期,可以考虑半个月运一次,但是像海鲜、蔬菜这种保质期比较短的商品,就要做到一天进一次或者多次货,如果生鲜也像家具那样半个月运一次,那都烂在工厂里了。或者根据不同的季节,从服装厂进货时就要考虑不同的衣服的需求量,那管理区就需要综合分析商品的特性跟市场的需求量,保障物流仓库从各个工厂合理的进货。再一个呢,当货物进入仓库后,对货物进行分拣时如何定义它是否合格,不能因为他外包装有一点破损,就把整个商品当做废弃物处理。也不能因为龙虾只是少了个前腿,也认为它合格。这些也需要管理区去制定每类商品的检查策略,然后分拣人员根据这个标准去分拣货物。再一个呢应该怎么去规划整个仓库的空间,比如家具区设计的很小,电子区设计的很大,或者像需要经常入货出货的生鲜区放在仓库的最里面,或者没有明确的区域划分,把服装跟生鲜放一起,这些都是有问题,那如何去科学的规划仓储区,既保证空间的利用率,又能保障分拣完成的货物快速入库,而且配货人员能根据清单快速的找到对应的商品。这些都需要管理区的人去设计的。
那从一个物流仓库的全局来看,一个物流仓库运转的效率高不高,能不能支撑当地的消费需求,它的核心呢,其实就是管理区,并不是说仓库配备的人员越多越好,仓库越大越好,那整个京东的营业额也不够建仓库的成本。如何对整个资源的进行协调分配,分析把控,用最小的成本,发挥最大的价值,这个就是管理区的意义。虽然看起来管理区并没有参与到货物的流转,但是任何一个流程,都少不了管理区的决策把控。那显而易见,如果你选择一个物流仓库的身份的话,肯定是要选择仓库管理人员。这个岗位才是价值最大的地方,也是薪资最高的地方。其实管理区的实质工作就是在大数据分析,当这个仓库每天的进货量达到百万吨千万吨,对这些货物的分析处理决策,就是一个大数据项目团队要做的事。再说回数据仓库,为什么数据仓库会用到仓库这个名词呢,它本质上功能其实是跟实际的仓库是高度融合的。比如咱们看一下数据仓库的架构图。当然这里面的内容相对更丰富一些,咱们先挑一些主要的模块,把数据流转的过程串起来。
整个数仓的结构,一般分为ODS层、DWD层、DWS层、APP层,当然还有问题库、元数据库,再实际项目里每层的叫法可能不太一样,但是每层的它对应的功能基本上是一致的。比如ODS层有的公司叫做贴源层或者原始层。但是它的功能都是负责存储从各个业务系统采集的数据。当然数据本身的特性跟货物的特性还不太一致,同一个物体只能存在同一个空间里,比如物流数仓里某件衣服要不然在进货区要不然在理货区。但是数据不一样,同一份数据是可以复制成多份,并不是把人事系统的数据抽到数仓,那人事系统就没有数据了,同理,我们在做数据向上层加工的同时,ODS层的数据是依然存在。
ODS的功能除了做为数据的统一入口,它在汇聚数据的基础上也会尽可能保留原本的业务特性、数据特性,方便上层做数据处理的时候进行业务溯源,同时它也有的历史的数据备份的作用,怎了理解呢,比如交易系统每天只给数仓同步前一天的增量数据,而且交易系统做为一个典型的事务型处理系统,为了保障每条数据处理的快速响应,它本身只存储近一年的数据,那ods层可以将每次接收的数据都累积备份下来。这样就可以基于历史数据做跨年的分析了。那数据隔离怎了理解呢,一个是资源的隔离,当所有数据统一汇聚到ODS后,你后续所有的数据处理、分析操作都是在数仓进行,那所需要的计算、存储资源都是你数仓内部去管理把控的,不会影响业务系统。再一个呢,就是数据缓冲,假如没有ODS层,人事系统提供的字段结构格式一旦发生变化,那后续所有跟这个表相关的处理逻辑都需要调整,有了ODS层做为缓冲呢,即使人事系统的数据发生了变化,我们只需要在接入的环节做好映射调整,就不会直接影响到后续的处理逻辑。
DWD层就类似与物流仓库的分拣层,它存储的数据就是那种清洗后、标准化后的数据。那何为数据清洗呢,举个例子,比如人事系统给的员工基本信息表,张三的手机号只有10位,那这种数据不做清洗的话,那后续别人使用这条数据的时候,肯定是有问题的。标准化怎么理解呢,还是张三这个人,人事系统登记的他的性别是男,但是从财务系统对接的数据里,张三的性别叫男性,虽然内容只有一字之差,但是不做内容统一的标准的话,后续做融合处理、分组统计就会非常的麻烦。当然不止是内容的标准化,有些字段的格式、长度、精度都需要做标准化。当然跟仓库的流程有些不同,数仓一般清洗、标准化的动作,是在ODS层到DWD层的数据流转过程去处理的。
DWS层的作用呢,基本跟物流仓库的仓储区的功能非常相似了,它最大的作用就是将数据分门别类的进行存储,比如将行政部门,跟市场部门采集的人员相关的信息整合到人员主题信息里,每一类主题呢,可能来自与不同的业务系统,就比如物流仓储区,服装区的服装来自与不同的生产厂商。这样做的目的是可以直接在DWS层根据需求方提取的需求的信息做主数据的提取,细致一点来讲呢,很多需求方都是决策型的,他们提的需求并不是针对与某一个系统,很多需求都是多元的,需要你统计不同系统的数据。比如要做个某类商品的销售趋势分析跟竞品分析,那你需要从各个系统去找商品相关的信息,销售相关的信息。那有DWS提前把商品信息、销售信息分好类之后呢,就可以直接到对应的维度表去取数了。
APP层类似于物流仓库的配货区,针对不同的需求加工不同的专题表。上述这些就是业务数据在数据仓库的流转过程。
当然像物流数仓那样,我们怎么去理解数据仓库的元数据呢,如果说数据仓库是对数据的管理,那元数据就是对整个数仓的管理。比如每个业务系统的数据格式、存储介质、提供方式不同,你怎么去分析这些数据,并根据数据的特性去定义它的同步方式、同步频率,而且根据不同的特性,采用什么样的同步技术,比如像一些基本信息,可以通过sqoop或者kettle一天同步一次,但是像一些时效性要求比较高的,比如舆情信息,你就要通过kafka、flink这种手段做到实时收集。再一个如何给汇总到ODS的数据制定清洗规则,以及标准化的规范,也需要元数据的定义。上层的主题、专题模型的结构跟血缘依赖,同样也需要元数据去管理。整个数仓,共接入了哪些业务系统,多少表,清洗了哪些字段,开发了多少专题,支撑了多少应用,也可以通过元数据去统计。数据仓库整个数据管理的策略都集中在元数据系统,甚至说元数据是你建立一个科学高效规范化数据仓库的基石。当你把元数据的意义理解透了,那你对数仓的建设的整体把控,肯定会有一个跨越性的提升。
整个大数据处理场景怎么体现数据仓库的价值,假如没有数据仓库对数据进行统一的分析管理,那个某些部门想要综合获取某个方面的信息时,就需要去一个业务系统或者多个业务系统去提数,而且因为不同业务系统数据的质量跟标准都不一样,数据的权威性就会受到质疑,再一个因为如果没有一个统一的数据管理,或者数据目录,像一些决策人员想要综合某一个方面的信息去做决策的时候,他都不清楚这些数据需要从哪个系统获取,或者哪个系统有他想要的数据。有了数据仓库对数据统一管理规划,所有数据的汇总、清洗、指标统一我们都会在数据仓库做好,并形成一个一个的主题领域,决策人员只需要提出我需要哪方面的统计,我们就可以基于他的需求范围去对应的数据主题下找到所有系统中与该指标相关的基础数据。其实这个就是数据仓库存在的意义。
那大家在系统的学习大数据,或者从事大数据相关岗位时,应该要注重哪些方面的总结提升。其实跟刚才我们说的物流数仓一样,如果你想做进货、理货这种事,那你就是ETL开发的岗位,如果你想做入库、配货的事,那你就是数据分析的岗位,如果这些东西我都参与,那你就是数据仓库的岗位。如果你想做为管理人员制定数据同步策略、存储策略、计算策略、数据标准、开发规范等等,让ETL开发、数据分析人员根据你的规则去实施,那你就是架构师的岗位。当然这些都是层层递进的,不可能ETL开发还没了解,就要直接去做架构师。
那如何去实现架构师这个目标呢,我们先举两个反面的例子,一个是你只是空想,一开始就安于初级的ETL开发这个角色,每天只完成分配到手里的工作,不去关注、主动承担一些重要的工作。那你永远只是这个角色,甚至说你未来被优化的概率也是最高的。年龄大精力跟不上公司的节奏只是表象,最重要的原因是被整个行业的优化,为啥这么说,大家可以基于物流仓库的发展趋势去对比数据仓库,现在很多仓库都在搞无人化、自动化。像一些简单的流程都被机器替代了,千万吨级别的仓库可能并没有多少分拣人员,未来只会更少。同样,数据仓库的ETL开发的岗位也会越来越淡化,当然并不是没有这个岗位了,而是变成普通的薪资的岗位,可能有些人不信,数据接入场景、数据清洗规则各种各样,用到的技术手段也非常丰富,而且针对数据的离线、实时的同步技术都是现在很火爆的,而且像大型的数仓动辄涉及上千张表的接入、或者清洗开发,未来只要有数据接入的场景,像这种既需要技术、又有大量工作场景的ETL工程师怎么可能会被优化。大数据的下一个风口是人工智能,整个数据体系相关的岗位里首先被产品化、智能化的工具替代的就是ETL开发。现在就已经有很多中大型公司都在开发这些智能化的工具服务于自己的业务了,那针对ETL开发的整体工作流程,就是你通过简单的拖拽,批量配置就可以了,当这种趋势越来越普及,最终的结果呢,ETL的岗位大部分的机会的就会被更廉价的劳动力替代。
再一个场景呢,就是对大数据的定位有误区,认为大数据的开发,就是各种技术手段的运用,只要紧跟技术的潮流,那就未来可期,虽然想法不错,但是绝大部分人是存在惰性的,一个人的技术深度、广度很多情况是依赖于项目里使用的技术栈,而一个常规的公司对技术的要求,不是创新,而是稳定,只要这套技术框架能支撑项目的运转,那它就可以用三年或者五年,不会轻易区替换。在这种环境下你项目用到的技术自然而然就会落后于最新的技术框架。即使说平时很努力,不断的学习新的框架,但是你没有实际的业务场景去支撑你验证你的知识,那也只是雾里看花,很难把学到的知识转换成你实际工作中的能力。除非你一直在一些互联网大厂的核心部门,平时接触的数据非常庞大或者非常复杂。你需要不断的去优化、更新、迭代你的技术框架,时刻让你的技术处于最高领域。但是这种机会是少之又少的。
那作为一个普通人,其实选对目标方向,顺势而为,对你以后的发展空间,一定会更宽广、更轻松。如果你看重大数据领域,想在这个领域长期发展的话,那怎么做呢,就是不管你现在或者未来是做ETL开发、数据分析,因为你刚入行做的肯定都是数据处理相关的实际工作,那在你埋头苦干,或者追求你的技术深度、广度的同时,一定要经常抬抬头,从全局去看待你的工作,多思考你做的事情的目的是啥,价值是啥,多总结你的方法,优化你的方法。即使说你现在只是做简单的数据接入工作,那也应该思考我可以通过什么手段,保障我数据接入的稳定性、一致性,或者可以通过什么优化手段,提高工作的效率。当你对数据处理的每一个环节都熟悉了,那积累了一套完善的数据方法论之后,你自然而然的就掌握了数据架构师的技能。
那为什么会推荐数据架构师,数据架构师到底有什么优势,未来会不会被淘汰呢。现在无论是存储技术、还是计算技术,都是为了服务与业务,最终实现数据的价值的。任何一个技术框架都可能会随着时间淘汰,你说你可以学,完全能追的上主流技术的步伐,但是当你35岁去掌握一门新型的主流的技术,跟28岁掌握同一门技术的人,同样的技术能力,公司肯定是优先考虑28岁的。但是做为一个职场发展相对比较久的人,你的优势是啥,就是你平时对数据的管理的经验和总结。当技术越来越智能化,那它就会变成人人都可以快速上手的工具了,其实这不止是大数据领域,像软件开发领域同样也是。那在数据领域,数据架构师平时做的是啥,是各种规则、策略的制定。技术的宗旨是为业务服务,那数据架构师的角色定义就是智能化技术应用的掌舵者,而不是被替代者。未来企业对一个优秀人才的要求,肯定不只是只会使用工具就可以了,而是如何利用工具把数据发挥出价值。
所以说对大部分普通人来讲,平时的工作一定要多注重业务上的积累,成为数据架构师,或者行业专家。后面我也会系统的剖析大数据处理相关的方法论并且分享给大家,欢迎大家关注,有兴趣的小伙伴也可以跟我私聊探讨。

    原文作者:yangxdata
    原文地址: https://blog.csdn.net/weixin_45646590/article/details/119523466
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。