数据集成

235 阅读3分钟

这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战

数据集成

多个数据源合并在一个数据存储中(数据仓库)- 方便后续的数据挖掘工作

数据集成的两种架构:ELT和ETL

ETL - Extract、Transform、Load - 数据抽取、转换、加载三个过程

抽取:将数据从已有的数据源中提取处理
转换:对原始数据进行处理
根据转换发生的顺序和位置,将数据集成分为ETL和ELT两种架构
ETL:提取 - 转换 - 加载:在数据源抽取后首先进行转换,然后将转换的结果写入目的地
ELT:提取 - 加载 - 变换
在抽取后将结果先写入目的地
然后利用数据库的聚合分析能力或者外部计算框架 - 如Spark来完成转换的步骤

image.png

ETL和ELT的异同

ELT:最大的区别是“重抽取和加载,轻转换” - 可以用更轻量的方案搭建起一个数据集成平台
在提取完成后,数据加载会立刻开始 - 更省时+允许BI分析人员无限制地访问整个原始数据,为分析师提供了更大的灵活性,使之能够更好地支持业务
数据变换整个过程根据后续使用的情况 - 在SQL中进行,而不是在加载阶段进行
可以从数据源中提取数据, 经过少量预处理后进行加载
架构更简单,使分析人员更好地了解原始数据的变换过程

ETL工具有哪些

商业软件:information PowerCenter, IBM InfoSphere DataStage, Oracle Data Integrator. Microsoft SQL Server Integration Services等
开源软件: Kettle, Talend, Apatar, Scriptella, DataX, Sqoop等

Kettle工具的使用

各种数据放入一个壶中,以一种指定的格式流出
包含两种脚本:Transformation转换和Job作业
Transformation:一个容器,对数据操作【数据从输入到输出的过程】进行了定义 - 作业粒度更小的容器,在通常的工作中,把任务分解为不同的作业,再把作业分解为多个转换
Job:相比于转换是个更大的容器 - 负责将转换组织起来完成某项作业

创建Transformation(转换)

输入 - 中间转换 - 输出
两个概念:Step和Hop Step:步骤 - 转换的最小单元, 每一个Step完成一个特定的功能 Hop:跳跃线 - 在转换中连接Step - 代表了数据的流向

创建Job(作业):

完整的任务,将创建好的作业和转换串联起来
这里的Job包含两个概念:Job Entry, Hop
Job Entry:工作实体 - Job内部的执行单元, 每一个Job Entry 都是用来执行具体的任务,比如调用转换,发送邮件等
Hop: 连接Job Entry的线。可以指定是否有条件地执行

Kettle中,可以使用Spoon - 图形化方式,来设计Job和Transformation