开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第一阶段):整体技术流程-数据入库(ETL)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/693/detail/12165
整体技术流程-数据入库(ETL)
内容简介
一、数据入库
二、数据入库的技术
三、总结
通过之前的采集和预处理,我们已经将数据变成了格式统一,干净规整的结构化数据,这时就可以针对这些结构化数据开展分析。
本节内容我们将学习数据入库,我们要重点这里的库是指什么库以及入库的本质是为了什么以及当中的专业说法 ETL 是什么含义。
一、数据入库
预处理完的结构化数据通常会导入到 Hive 数据仓库中,建立相应的库和表与之映射关联。这样后续就可以使用 Hive SQL 针对数据进行分析。
因此这里所说的入库是把数据加进面向分析的数据仓库,而不是数据库。
因项目中数据格式比较清晰简明,可以直接 load 进入数据仓库。
实际中,入库过程有个更加专业的叫法— ETL. ETL 是将业务系统的数据经过抽取,清洗转换之后加载到数据仓库的过程。目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
ETL 的设计分三部分:数据抽取.数据的清洗转换、数据的加载。在设计ETL的时候我们”也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到 ODS(Operational DataStore, 操作型数据存储)中,这个过程也可以做一些数据的清洗和转换, 在抽取的过程中需要挑选不同的抽取方法,尽可能的提高ETL的运行效率。ETL 三个部分中,花费时间最长的是“T”(Transform.清冼、转换)的部分,一般情况下这部分工作量是整个 ETL 的2/3.数据的加载一般在数据清洗完了之后直接写入 D (Data Warehousing,数据仓库)中去。
如图,数据仓库中间层用于开展数据分析,英文为 DW,中文为数据仓库层(数据仓库本身不生产数据,也不消费数据,数据来自不同的数据源,由角色应用来使用),下方为不同的数据源,有关系型数据库 ROBMS,有网站日志,爬虫等。要开展分析时要在数据仓库中确定一个主题,再基于主题去寻找数据。
如果主题所需要的数据单一,可以直接使用数据,但通常情况下主题需要的数据是各个数据源,这时候如果直接应用他们之间可能会存在格式,单位的差异性。
因此为了分析方便,我们需要把各个不同的数据放至 ODS (源数据层),经过 ODS 的分析后需要导入进数据仓库主题下,再导入过程中我们所进行的转化操作,编码统一操作等称为 ETL。ETL 的本质就是经过抽取,转换和加载,把数据放至仓库中的过程。
二、数据入库的技术(针对 ETL)
手动 shell Hadoop hivesql
自动:sqoop kettle
三、小结
库:面向分析的数据仓库,也就是 Apache Hive
入库的本质:经过 ETL 抽取,转换,加载把各个不同的数据源集中加载到数仓的分析主题下面。