1
ETL,Extraction-Trasformation-Loading,即数据读取,转换,装载的过程,是构建数据仓库的重要环节。
ETL是将业务系统的数据经过抽取,清洗转换之后加载到数据仓库的过程,目的是将企业中的额分散的,零乱的,标准不统一的数据整合到一起,为企业决策提供分析依据。ETL是BI项目中重要的一个环节。
数据抽取:把不同的数据源数据抓取过来,存到某个地方。例如:网络爬虫。
数据清洗:过滤那些不符合要求的数据或者修正数据之后再抽取。清洗包括以下几种不符合要求的数据:
1、不完整的数据:数据缺失需要不全才能写入数据仓库。
2、错误的数据:格式错误,日期越界,或者多了一个空格等。
3、重复的数据:重复数据记录的所有字段都要去重。
数据转换:不一致的数据转换。统一编码。
ETL的实现方法:
1、借助ETL工具。(如OWB,DTS,SSIS等)实现。
2、SQL方法实现。
3、ETL工具与SQL相结合。
工具降低难度,但缺少灵活性。SQL灵活但编码复杂,因此结合两者。
2
大数据平台架构
首先,对于做大数据开发而言,平台的监控与报警和平台管理不归我们管,主要是给运维人员做的事情。我们要做的就是中间的事情。
然后来看看数据基础平台。接入层,获取数据,一般用Canal,Sqoop与Flume。存储层,当我们拿到数据以后,我们需要找个地方存储,首选HDFS(分布式文件系统,前面讲过),这里就是作为一个存储层。另外还有HBase,可以称作大数据中的数据库。Kafka的话一般会跟Flume作为一个组合。调度层,就是把计算层的计算放到调度层运行。如前面讲的小案例,就是把mapreduce放到yarn上面去运行。计算层,就是对数据的处理运算。
接着看数据应用平台。元数据管理。这边的元数据要存储到关系型数据库中。作业平台管理,就是任务调度。交互分析就关系到sql语句。多维分析主要是对数据的维度分析,如按年分析,按月分析,按周分析等。数据可视化,展示数据,供给决策。
最后看看数据应用。一般做的就是流量统计和用户行为分析,做数据展示。
3
系统数据流动
最左边是数据来源,可以看到,一个是来自日志数据,另外一个是来源于关系型数据库。
实时流。拿到数据后直接存入kafka或者是hdfs中进行缓存,如果此时计算层需要调度数据,可以直接从kafka中直接消费。计算完后对数据存储还可以存储回kafka或者放到HBase或mysql,从而作为业务上的使用。
离线流,存储到hdfs然后由MR调用,接着是ETL对数据的处理,处理完后将数据存储到关系型数据库,最后可以做出BI报表展示。
这边的话可能我的逻辑也有点乱...主要还是看图分析吧。