数据倒换工具 Sqoop (大数据时代的ETL)

2019-09-24 16:43:23 浏览数 (1)

在传统的数据编程时代,我们今天听到过ETL(数据抽取、转换工具),可以用来从数据源提取数据,经过数据清洗后,放到数据仓库中,如熟知的Logstash, Flume。在大数据的时代,传统的RDBMS中的结构化数据如何倒向大数据的数据库如HBase中呢?这时侯,会用到Sqoop工具。

一、Sqoop工具名字很容易记忆。也就是SQL to hadoop,也就是当结构化数据倒入大数据的意思,当然这个倒入是双向的,hadoop也可以to SQL。

二、 Sqoop的工作流程也不难。

因Hadoop基于Java开发,而大部分关系型数据库都支撑JDBC数据访问接口,因此Sqoop一般采用JDBC连接RDMS数据库。

1、Sqoop使用者首先通过Sqoop命令行客户端输入导入命令,指定数据库的服务器地址、数据库名、表名等信息。

2、Sqoop客户端将数据表的元数据(字段)映射为Hadoop支持的数据类型。

3、根据元数据,Sqoop自动生成提取数据的类、具体的类方法。

4、Sqoop会自动将类下发到不同MapReduce集群服务器中,实现并行计算。MapReduce任务会根据数据库的关键字进行自动的任务分节点划分,例如某集群服务器1只读取1-999的记录。

5、集群服务器按Map任务进行数据的读取,最终以数据文本格式或二进制的格式存储HDFS或HBase中。

三、Hadoop向SQL的数据导出基本流程相同,不再详述

四、Sqoop后的数据可以被其它工具共享

存入HBase、HDFS中的数据,已经永久保存,可以被MapReduce任务,也可以通过Pig、Hive等脚本化的MapReduce任务进行二次的数据处理、分析。

对于一些对于数据时要求不高的大数据展示屏,实际上通过定期的Sqoop任务也能够将HBase中的数据通过UI界面进行数据的可视化展示。

0 人点赞