通俗语言解释数据仓库、数据湖、数据中台

数据仓库

 
如何理解数据仓库?举个简单的例子。
我如今打算学习大数据的内容,因此我看了CSDN,博客园,微信的大数据公众号,一些实体书等等,而且我在看某些这些东西的时候,有些不错的文章我都收藏了,储存在这些论坛的帐号中,实体书我也作了不少标记,来标出那些对我有用的部分。
 
看了好几个月以后,我打算来一次总体的复习,结果这个时候遇到了困难:我收藏的文章太多了,我彻底记不获得底哪些文章在哪里了,若是我要找某一篇文章,我可能要从头开始一个一个的翻找这些论坛的收藏夹,看看我要找的东西到底在哪里,何况还要实体书呢!也要翻一遍!
  这工做量也太大了,并且我每找一次东西都要几乎从头开始找一次,太麻烦了,此时我想到,我为何不把我收藏夹的那些东西都放到一个地方呢?这样我也不用登陆不少帐号找了,此时我就想到,我是否是能够用Word软件呢?把收藏夹里面的文章都复制到Word里不就能够了吗?并且Word软件还有查找功能,比这样翻找的快太多了!立马行动,我开始把一篇文章从标题到内容全都复制到Word文档里,实体书上的我也打字打进来,花了好几天时间,我终于把全部的东西都搬到Word文档上了,真是累死了!
 
  这个时候我又有了新的麻烦:虽然我按照一篇文档一个文件来分开,可是这些文件很是多,并且标题都不明确,单从文件名字上来看根本就不知道内容是什么,若是要知道是什么内容,仍是须要一个一个打开来看。
 
  这样并不比以前的操做要轻松啊?我花了这么多的时间,结果也就省了一个打开网页的操做,反而又增长了一个打开Word文档的操做,这样彷佛比以前更麻烦了,毕竟个人电脑打开网页还好,打开Word可慢多了,这要怎么办呢?
这时候我又想到了一个办法:把这些文档所有打开看看,而后把文件名字改好,改为我一眼就能看得懂的名字,这样就很便于查找了吧,毕竟看一眼名字就知道这个文件是否是我想要的,因而我又花了好几天的时间,把这些文档按照文章的内容,归纳出来一个主题,把它看成文档的名字,当我完成以后我以为目前就能够很轻松的经过Wrod自带的查找功能来找到我想要的文档来看了,我以为个人整理工做以及结束了
 
  但是当我开始复习这些资料的时候,又发现了一个问题:这些文档读起来很冗余,不少的地方都是重复的,并且有的几乎都所有重复了仅仅有一小部分才是不一样的,好比什么Hadoop的定义啥的,这些不少文档都写了,并且都是如出一辙的,每次打开文档都要看一遍,并且还很占用个人磁盘空间,而另一些,好比Hadoop的版本解读,我搜集的这些文档,从1.0.x到3.0.x的版本解读都有,可是我想要从1.0到3.0的版本变化,这样的话的得把这些文档所有都打开,而后一个文档一个文档的看,每次这样翻我也很烦躁,我只想更懒一点,为何没有一个文档整理了从1.0到3.0全部的版本变化呢?我在网上也没找到,哎,靠人不如靠本身,我仍是本身来吧!
 
  这个时候我通过了前两次的整理经历以后我学聪明了,我没有一开始就着手整理,我想了一下,我如今到底须要整理成什么样子?
1.不变的东西整理到一个文档里面去,上面写上xxxx定义 
2.会变的东西,好比版本解读啥的,每一个版本都会有一个文档,这些我也整理到一个文档里面去,这样我就不用处处翻来翻去了
3.可是以前的这些东西我不能删掉,我本身合并的东西可能有的不全,或者是合并的有问题,我须要找原来的文档对比一下,若是我把以前的删掉,一旦我打错了字,我可能就会一直学了错的知识了
 
  好吧,我目前就想到这么多,那我就开始整理吧!因而我又花了好几天的时间,把原来的文档中的东西提取出来,重复的定义都合并到一块儿而且只留一份,不一样的版本解读我放到一个文档里面去,而后我要保存以前的那些原始的文档,这俩东西不能都在一个都放在一个文件夹里面吧,这样也太乱了,因而我又打算吧这两个放在两个文件夹里面,我建立了两个文件夹,一个存放原始的文档,一个存放我整理好的文档,而后把这俩文件夹都放到
一个叫知识库的文件夹里面,这样个人整理工做貌似真的已经完成了。
如今,我想看Hadoop相关的版本解读的话,我就打开版本解读文档就能够了,若是我想看Hadoop的定义和版本解读呢?我就打开这两个文档,一个放在屏幕左边,一个放在右边,这样看起来也很舒服,至此,个人整理工做真的算完成了。
 
  而后我忽然想到,我X,我不就是在搭建数据仓库吗???
 
  是的,你们看到这里,若是对数据仓库有了一些了解的话已经知道了数据仓库的通常流程了,把上文的一些名词换成数据仓库的名词:
 
  各个论坛和实体书的文章 ->搭建数仓以前各个系统的数据源,好比MySQL,Oracle等传统关系型数据,还要一些业务日志和埋点日志(好比说你在某宝点击某个商品啊,浏览了某些商品啊,这些都是有记录的,也叫作埋点数据,前端已经在你点击进入这个商品的详情页的时候作了埋点,你点进去就会产生了一条数据,会记录你点击的商品记录和你这个用户的通常信息,这就叫作埋点日志)
 
 
  把这些不在同一个论坛,甚至在实体书上的文章,都统一放到Word文档上,而且稍微改个文件名 --->利用一些数据导入工具,好比Sqoop,Flume,DataX(阿里云的产品,但已开源),把这些不一样系统上面的数据,都导入到同一个框架里,这里大部分都是导入到Hive里,它利用HDFS存储,具备自然的容灾性,查询的引擎是MR(也可使用Spark),对于这么大的数据量是再适合不过了。这种迁移数据的行为已是搭建数仓的一部分了,这些迁移过来的数据做为数据仓库的ODS层(数据准备层),这一层是为加下来的数据层提供原始数据,咱们尽可能不作什么变更,只作一些数据按日期分表存储,把这些数据按照主题和逻辑划分好。
 
 
  把文章去重,把版本解读放到一块儿 --->对应数据仓库的DW层,这一层的主要任务就是把原始数据进行ETL,把原始数据分为维度表和事实表(这种方法称为维度建模),把细粒度的数据聚合成粗粒的表,把一些维度退化,造成业务宽表等等
 
 
  使用文档  --->对应数据仓库的ADS层(也叫ST层),ST层面向用户应用和分析需求,包括前端报表、分析图表、KPI、仪表盘、OLAP、专题等分析,面向最终结果用户
 
 
  这样,咱们就完成了一个简单的数据仓库(三层),其中DW层还能够细分为DWD,DM等,这个就看实际状况了,灵活分层
 
 

数据湖与数据中台

 
至于数据湖和数据中台呢?
  我是这样理解数据湖的,上面的例子里,咱们在把各类不一样论坛的文章导入到Word文档中的时候,其实已经丢失掉了一层信息:来源
放到Word文档以后,你就没法知道某篇文章到底来自于哪一个论坛的了 ,而数据湖呢?数据湖是尽力保持全部数据的原始面貌,不丢失任何信息,一样,也不会作任何的处理(由于你处理数据多多少少会丢失掉一部分信息),尽力保持数据的原汁原味,由于谁也不知道之后某些数据又拥有多达的价值,因此咱们须要保持数据的原封原貌,而这个时候咱们能够把数据仓库想象成一个在湖边的矿泉水加工厂,一边抽取湖中的水(数据),进行各类清洗消毒加工,最后生产出各类各样包装的矿泉水来,这就是这两个概念我本身理解。
 
  下面是维基百科上关于数据湖的定义:数据湖(Data Lake)是一个存储企业的各类各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。数据湖是以其天然格式存储的数据的系统或存储库,一般是对象blob或文件。数据湖一般是企业全部数据的单一存储,包括源系统数据的原始副本,以及用于报告、可视化、分析和机器学习等任务的转换数据。数据湖能够包括来自关系数据库(行和列)的结构化数据,半结构化数据(CSV,日志,XML,JSON),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像,音频,视频)
 
至于数据中台呢?咱们先来看下数据中台的定义:
  数据中台是指经过企业内外部多源异构的数据采集、治理、建模、分析,应用,使数据对内优化管理提升业务,对外能够数据合做价值释放,成为企业数据资产管理中枢。数据中台创建后,会造成数据API,为企业和客户提供高效各类数据服务。(这个概念最先由阿里提出,实际上阿里云的一些云产品就是一个大的数据中台)
  又回到以前说的矿泉水加工厂的例子,若是咱们只有一个加工厂,那确定是仅仅不够的,由于咱们不只要喝水,还要喝的是安全健康的水,这个检测若是工厂内本身作,你们仍是不太相信的,那么仍是须要别人来检测,监管加工厂的质量和水质等安全问题,这些的监管检测机制,并且还有一个问题就是,加工厂缺乏一个管帐的,内部的财务情况很混乱, 所以,加工厂又请了另外一家公司来为他们作财务管理,如此,再加上加工厂内部的更新换代,又增长了新技术来加工矿泉水(机器学习,数据挖掘等),加工厂是愈来愈大了,而包含兼管人员,财务管理和整个加工厂在内的,就是你们常说的数据中台了。
 
 
 
 
以上就是我本身理解的数据仓库、数据湖和数据中台的概念了,若是有错误,欢迎在评论区指正!
相关文章
相关标签/搜索