本章介绍如何将数据从HDFS导出到RDBMS数据库。目标表必须存在于目标数据库中。这是作为输入到Sqoop的文件包含记录,这被称为在表中的行。那些被读取并解析成一组记录和分隔与用户指定的分隔符。
默认的操作是从输入文件到数据库表,使用INSERT语句插入所有记录。在更新模式,Sqoop生成替换现有记录到数据库的UPDATE语句。
语法
以下是export命令语法。
$ sqoopexport(generic-args)(export-args)$ sqoop-export(generic-args)(export-args)
示例
在HDFS文件中的员工数据的一个例子,。员工数据是在HDFS“EMP/”目录的emp_data文件中。所述emp_data如下。
1201,gopal,manager,50000,TP1202,manisha,preader,50000,TP1203,kalil,php dev,30000,AC1204,prasanth,php dev,30000,AC1205,kranthi,admin,20000,TP1206,satish p,grp des,20000,GR
它是强制性的,该表手动导出创建并且存在于从要导出的数据库中。
下面的查询被用来创建MySQL命令行表'employee'。
$ mysql
mysql>USE db;mysql>CREATE TABLE employee(id INT NOT NULL PRIMARY KEY,name VARCHAR(20),deg VARCHAR(20),salary INT,dept VARCHAR(10));
下面的命令是用来导出表数据(这是在HDFS emp_data文件)到MySQL数据库服务器DB数据库的employee表中。
$ sqoopexport\--connect jdbc:mysql://localhost/db \--username root \--table employee \--export-dir/emp/emp_data
下面的命令是用来验证表mysql命令行。
mysql>select*fromemployee;
如果给定的数据存储成功,那么可以找到数据在如下的employee表。
+------+--------------+-------------+-------------------+--------+
| Id | Name | Designation | Salary | Dept |
+------+--------------+-------------+-------------------+--------+
| 1201 | gopal | manager | 50000 | TP |
| 1202 | manisha | preader | 50000 | TP |
| 1203 | kalil | php dev | 30000 | AC |
| 1204 | prasanth | php dev | 30000 | AC |
| 1205 | kranthi | admin | 20000 | TP |
| 1206 | satish p | grp des | 20000 | GR |
+------+--------------+-------------+-------------------+--------+
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。