龙空技术网

Hadoop生态中sqoop工作原理及数据导入、导出流程#大数据

Dataer贾雪冬 55

前言:

此时兄弟们对“sqooporacle到hive”大约比较注重,兄弟们都需要学习一些“sqooporacle到hive”的相关知识。那么小编也在网络上汇集了一些有关“sqooporacle到hive””的相关文章,希望大家能喜欢,看官们快快来学习一下吧!

从几百个实际项目中提炼数据治理实战(十一)。

sqoop数据导入的流程。左侧的假如接入的数据源不同类型的数据库很多都可能有db2、mysql、oracle等等。

·是通过sqoopimport命令导入到中间的hadoop里边的hive,HDF里边去的,这是导入。

·导出也是通过hive来去sqoop命令export命令导出到不同的数据源。所以它的导入导出是有一个中间的hadoop作为介质的。

·如果是DataX就跟这个完全不一样,它就完全是一个网状结构,是这种的,中间没有hive,它是完全是一个网状的结构。db2到oracle或者是mysql到db2的都是一个网状结构,它没有中间的hadoop中间的存储介质,这是DataX跟这个不一样的地方。

在sqoop里边数据导入的流程是怎么样的?

·第一步,就是通过sqoop的命令来去获取数据要接入的数据源。比如要从一个mysql接数据到hadoop里边去,首先会从mysql要接入的表里边去把数据源信息拿到,比如有表、字段、数据类型。

·拿到之后就会进行第二步的操作,会把数据类型做一个转换,转换成java的类型。比如之前在mysq里边存的是一个string类型,可能要转化成一个varchar2的类型来去存放。

·对应的再去hive里边儿去建表,根据它的字段表的信息还有数据类型转化后数据类型,再去hadoop里边儿去hive上去建表。

·建完表之后根据hive这种的机制,会有在hdfs上建立对应的文件目录用来存储之后要接入的这部分数据文件。但这个前提就是在hive上没有hive,要接入这张表的同名的表,没有这张表的时候它会自动去创建,如果有这张表,第二步就会省略掉。

·把这个表建完之后,第三步就会读取要接入的数据,比如要从mysql要接数据,就会把mysql里边的数据读取出来,以文件的形式先存在一个临时的目录下。临时的目录可以自己去建一个临时的目录,也可以去用系统默认的。

一般是推荐自己去建一个临时的目录,根据自己的表名建一个自己临时目录,然后把数据接入完之后再把临时的目录删掉。如果是用系统默认,不同的表接入大家都会抢占临时的目录,这样会造成抢占资源的情况。这是把数据先从mysql里边导到临时目录下。

·第四步就是把临时目录下的文件统一的通过load的命令load到hive对应的hdfs的路径下面去。这个时候就完成了整个的数据导入的过程。

所以再回顾一下sqoop的四步。

·第一步是先获取要接入的表的元数据的信息,获取这些信息之后做这种数据类型的转换,hive上建立对应的表,没有会自动去创建,如果有第2步省略。

·第3步就会读取要接入的数据的数据,以文本的形式存在一个临时的目录下面去。

·第4步就会把刚才已经接完的数据,存好的数据文件统一的load的到对应的hdfs上面去。

这是sqoop数据导入的整个的流程。

记得点赞关注我。

标签: #sqooporacle到hive