转职入行做数据仓库也有一年半载了,一直想写一些1,总结一下以往学习过程中的个人理解供自己与广众做参考。这篇文章,只是0,一个懒人包,帮助对数据仓库有兴趣的朋友,以类比形式简易理解数据仓库的概念,以作之后1的铺垫。因为是开篇,欢迎阅读过的朋友在简书这里留下疑问或建议,感激。
什么是数据,什么是数据库?
Data,数据 (資料 zh-TW)其实就是 数、文字、字符,符号,或影像、声音。我们这里通常泛指的是可以被收集,处理的,可能有价值的数据。数据是新石油嘛(Data Is the New Oil)。既然有价值,我们来把它们比喻做货品吧,蔬果,啤酒,尿片。而你是老板(数据持有者/用户),要拿这些货品起家做生意(获取数据价值)。
Database,数据库(資料庫 zh-TW)就是装载这些电子化数据的“容柜”,通常这样的容柜会有个管理系统,以便帮助你查找,装载,卸除,整理你所持有的货品(数据)。对于蔬果和啤酒来说,他们是新鲜快消品,来去快,那么这个容柜可以是农场或酿酒厂里的大冰柜,成品,半成品(原始数据),都先摆大冰柜冻起来(OLTP 交易型数据库)。出货用的容柜可以是一般的货箱(OLAP 分析型数据库),对它操作频率相对不那么高,功能上也不那么多要求。不需冷藏功能,能摆的下出货的批量其实就够了(OLAP 在某些特性像存储读写/实时监测上的要求也许不高)。
什么是数据仓库,什么是数据集市?
好吧现在你发家了,有了点小资本,以前你是批发商,一直是一两个柜拿货、出货(直接使用数据库就够),甚至直接调货给零售商(终端用户)。现在你想进更多的货,考虑自己做做小加工和零售。是时候要整一块大地儿,有规模的定制好一些货架,来摆放盘点你这么多的货品了(大数据)。
Data Warehouse / EDW,数据仓库(資料倉儲 zh-TW),就是很大,预算充足的一个再加工仓储空间。可以集中,统一,整齐一致摆放来自于各类容柜的货品,分门别类上货架,并突出它们相关的时间标签,以便作为老板的你可以随时调出货品何时上架何时更改(历史数据),看看下次该采购什么货,多少货(做企业决策)。
调出到哪里呢?你聘有这么一批专员(BI分析员),帮你对接你的零售商客户。餐饮业客户希望调一些最新最炫的酒类货品;母婴产品零售想跟你调几批新旧款尿片试做比较;超市啤酒和尿片都要,他们要研究两者有什么关联,你的客户还真是多种多样哦。
我们只好在仓库外搭起几个小帐篷 Data Mart(数据集市),再把他们各自所需的货架(在这里数据是货架因为已整理分门别类好了)都调过去小帐篷出货。要啤酒,要尿片,或是两样都要,安照客户需求统统满足呗(面向业务主题)。
所以,按照范畴划分,数据 < 数据库 < 数据集市(小)/ 数据仓库(大)。
按照过程,一般的数据是由交易型数据库转移至分析型数据库,清洗整理后在数据仓库加载,最后转移至数据集市供用户使用:
什么是 ETL?
Extract-Transform-Load,抽取-转换-加载。货品越多越需要自动化管理,否则就焦头烂额了嘛。你看亚马逊的仓库,都靠机器人来整理至出货,效率摆在那,不需要人手的就给它自动化。
它是这样开始的:仓库门前摆满了农场送来的满载了蔬果的货箱,上个礼拜和今天都有胡萝卜到货,今天还有新到的雪梨,而在仓库里指定的上架类别是新鲜蔬果汁成品(商业需求)。为了保证品质要来作些筛选取舍,上礼拜的胡萝卜过期就不要了,我们只要今天到货的胡萝卜和雪梨(数据的抽取)。
选好了这批货开箱后,胡萝卜和雪梨都摆上传送带往仓库里输送(数据抽取进程),清洁水洗(数据清洗)和大小分批(粒度筛选),这个过程也会分拣出质量不好的一部分(错误/不完整/冗余数据),接着就被按照批次摆放至仓库内的一个蔬果待加工储藏区(ODS)。
因为最终成品是新鲜胡萝卜雪梨汁,加工步骤(Staging)开始了:去皮去核打汁(数据转换),按比例参杂蔬果汁和水(商业需求逻辑),玻璃瓶封起,六支一箱包装好(数据模型标准),成品入仓上架(数据加载)。
以上这些仓库内的自动化处理进程,就叫ETL。设计,开发和维护这些进程的人,也就是数据的“仓务管理员”。