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

        在传统的数据编程时代,我们今天听到过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界面进行数据的可视化展示。

希望以上文章能帮到您。

更多内容实时更新,请访问公众号。    

点击这里,获取最高¥1888阿里云产品通用代金券

猜你喜欢

转载自blog.csdn.net/qq_29718979/article/details/88586368