SQL必知必会46-数据集成:如何对各种数据库进行集成和转换?

我们的数据可能分散在不同的数据源中,如果想要对这些数据分析,就需要先对这些数据进行集成。同时因为不同的来源,这些数据可能会存在各种问题,比如这些数据源采用了不同的 DBMS,数据之间存在冗余的情况,比如某一条数据在不同的数据源中都有记录,那么在数据集成中我们只保留其中的一条就可以了。除此以外,这些不同的数据源还可能字段标识不统一,再或者我们需要将数据转换成我们想要的格式要求进行输出。

数据集成是数据分析之前非常重要的工作,它将不同来源、不同规范以及不同质量的数据进行统一收集和整理,为后续数据分析提供统一的数据源。

好了,关于这部分内容,今天我们一起来学习下:

  1. 我们将数据从 OLTP 系统中转换加载到 OLAP 数据仓库中,这中间重要的步骤就是 ETL。那什么是 ETL 呢?
  2. 认识 Kettle 工具。在 Kettle 中有两个重要的脚本,分别是 Transformation 转换和 Job 作业,它们分别代表什么?
  3. 完成两个实例项目。通过使用 Kettle 完成 MySQL 数据表的数据同步,以及根据我们的需求将银行客户转账的记录导出到目标文件中。

什么是 ETL

在使用数据的时候,根据需求,我们可以分成 OLTP 和 OLAP 两种场景。OLTP 更注重数据的实时性,而 OLAP 更注重数据的分析能力,对时效性要求不高。在这个过程中,我们的数据源来自于 OLTP 系统,而最终得到的数据仓库则应用在 OLAP 系统中,中间的转换过程就是 ETL,如下图所示:


ETL 是英文 Extract、Transform 和 Load 的缩写,也就是将数据从不同的数据源进行抽取,然后通过交互转换,最终加载到目的地的过程。

在 Extract 数据抽取这个过程中,需要做大量的工作,我们需要了解企业分散在不同地方的数据源都采用了哪种 DBMS,还需要了解这些数据源存放的数据结构等,是结构化数据,还是非结构化数据。在抽取中,我们也可以采用全量抽取和增量抽取两种方式。相比于全量抽取,增量抽取使用得更为广泛,它可以帮我们动态捕捉数据源的数据变化,并进行同步更新。

在 Transform 数据转换的过程中,我们可以使用一些数据转换的组件,比如说数据字段的映射、数据清洗、数据验证和数据过滤等,这些模块可以像是在流水线上进行作业一样,帮我们完成各种数据转换的需求,从而将不同质量,不同规范的数据进行统一。

在 Load 数据加载的过程中,我们可以将转换之后的数据加载到目的地,如果目标是 RDBMS,我们可以直接通过 SQL 进行加载,或者使用批量加载的方式进行加载。

认识 Kettle 工具

Kettle 可以帮助我们完成 ETL 工作,它的设计师希望它能像水壶一样,可以从将不同的数据通过 Kettle 水壶按照指定的格式流出来。

相比于其他商业软件来说,Kettle 是 Java 开发的免费开源工具,可以运行在多个操作系统中。因此在使用之前,你需要安装 Java 运行环境(JRE)。Kettle 的下载地址在这里。

在 Kettle 中有 3 个重要的组件:

  1. Spoon(勺子)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员zhi路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值