Sqoop导入与导出底层

来源:互联网 发布:上海淘宝运营助理招聘 编辑:程序博客网 时间:2024/06/06 02:42

1.Sqoop导入底层工作原理

(1)在导入前,Sqoop使用JDBC来检查将要导入的数据表。

(2)Sqoop检索出表中所有的列以及列的SQL数据类型。

(3)把这些SQL类型的映射到java数据类型,例如(VARCHAR、INTEGER)———>(String,Integer)。

(4)在MapReduce应用中将使用这些对应的java类型来保存字段的值。

(5)Sqoop的代码生成器使用这些信息来创建对应表的类,用于保存从表中抽取的记录。

注意:对于导入来说,更关键的是DBWritable接口的序列化方法,这些方法能使(生成的类)和JDBC进行交互。

2.Sqoop导出底层工作原理

(1)在导出前,sqoop会根据数据库连接字符串来选择一个导出方法  ————>对于大部分系统来说,sqoop会选择JDBC。

(2)Sqoop会根据目标表的定义生成一个java类。

(3)这个生成的类能够从文本中解析出记录,并能够向表中插入类型合适的值(除了能够读取ResultSet中的列)。

(4)然后启动一个MapReduce作业,从HDFS中读取源数据文件。

(5)使用生成的类解析出记录,并且执行选定的导出方法。
原创粉丝点击