数据集成--ETL工具

背景:不同平台都可以获得用户,这些用户之间可能是交叉重复,比如你之前在A平台注册了,后来你又在B平台注册了。而不同的平台存储数据的表结构,表字段可能不同。最有代表性的,美团合并了大众点评,两家外卖平台的数据必须整合在一起,才能发挥更大的商业价值----数据集成。

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

一般来说,数据工程师的工作包括了数据的 ETL 和数据挖掘算法的实现。算法实现可以理解,就是通过数据挖掘算法,从数据仓库中找到“金子“。

ETL实现数据抽取、转换、加载这三个过程

抽取是将数据从已有的数据源中提取出来。

转换是对原始数据进行处理,例如将表输入 1 和 表输入 2 进行连接形成一张新的表。

根据转换发生的顺序和位置,数据集成可以分为 ETL 和 ELT 两种架构。

ETL 的过程为提取 (Extract)——转换 (Transform)——加载 (Load),在数据源抽取后首先进行转换,然后将转换的结果写入目的地。

ELT 的过程则是提取 (Extract)——加载 (Load)——变换 (Transform),在抽取后将结果先写入目的地,然后利用数据库的聚合分析能力或者外部计算框架,如 Spark 来完成转换的步骤。

目前数据集成的主流架构是 ETL,但未来使用 ELT 作为数据集成架构的将越来越多。

ELT 和 ETL 相比,最大的区别是“重抽取和加载,轻转换”,从而可以用更轻量的方案搭建起一个数据集成平台。一方面更省时,另一方面 ELT 允许 BI 分析人员无限制地访问整个原始数据,从而使BI对于数据处理更加灵活,更好的支持业务。

ETL 工具有哪些?

开源软件:Kettle、Talend、Apatar、Scriptella、DataX、Sqoop 等

Kettle 工具的使用

Kettle 是一款国外开源的 ETL 工具,纯 Java 编写,可以在 Window 和 Linux 上运行,不需要安装就可以使用。

下载地址:https://community.hitachivantara.com/docs/DOC-1009855

在使用 Kettle 之前还需要安装数据库软件和 Java 运行环境(JRE)

Kettle 采用可视化的方式进行操作,来对数据库间的数据进行迁移。它包括了两种脚本:Transformation 转换和 Job 作业。

Transformation(转换):相当于一个容器,对数据操作进行了定义。数据操作就是数据从输入到输出的一个过程。在通常的工作中,我们会把任务分解成为不同的作业,然后再把作业分解成多个转换

Job(作业):相比于转换是个更大的容器,它负责将转换组织起来完成某项作业。

Transformation 可以分成三个步骤,它包括了输入、中间转换以及输出。

在 Transformation 中包括两个主要概念:Step 和 Hop。

Step(步骤):Step 是转换的最小单元。在上面这个转换中,就包括了表输入、值映射、去除重复记录、表输出这 4 个步骤;

Hop(跳跃线):用来在转换中连接 Step。它代表了数据的流向。

如何创建 Job(作业):完整的任务,实际上是将创建好的转换和作业串联起来。在这里 Job 包括两个概念:Job Entry、Hop。

Job Entry(工作实体):Job Entry 是 Job 内部的执行单元,每一个 Job Entry 都是用来执行具体的任务,比如调用转换,发送邮件等。

Hop:指连接 Job Entry 的线。并且它可以指定是否有条件地执行。

案例 1:如何将文本文件的内容转化到 MySQL 数据库中

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值