本章介绍如何使用Sqoop'eval'工具.它允许用户对各自的数据库服务器执行用户定义的查询,并在控制台中预览结果.因此,用户可以期望导入结果表数据.使用eval,我们可以评估任何类型的SQL查询,可以是DDL或DML语句.
语法
以下语法用于Sqoop eval命令.
$ sqoop eval(generic-args)(eval-args) $ sqoop-eval(generic-args) (eval-args)
选择查询评估
使用eval工具,我们可以评估任何类型的SQL查询.让我们举一个在 db 数据库的 employee 表中选择有限行的示例.以下命令用于使用SQL查询评估给定示例.
$ sqoop eval \--connect jdbc:mysql://localhost/db \--username root \ --query "SELECT * FROM employee LIMIT 3"
如果命令执行成功,那么它将在终端上产生以下输出.
+------+--------------+-------------+-------------------+--------+| Id | Name | Designation | Salary | Dept |+------+--------------+-------------+-------------------+--------+| 1201 | gopal | manager | 50000 | TP || 1202 | manisha | preader | 50000 | TP || 1203 | khalil | php dev | 30000 | AC |+------+--------------+-------------+-------------------+--------+
插入查询评估
Sqoop eval工具可用于建模和定义SQL语句.这意味着,我们也可以使用eval作为插入语句.以下命令用于在 db 数据库的 employee 表中插入新行.
$ sqoop eval \--connect jdbc:mysql://localhost/db \--username root \ -e "INSERT INTO employee VALUES(1207,‘Raju’,‘UI dev’,15000,‘TP’)"
如果命令执行成功,那么它将显示更新行的状态在控制台上.
否则,您可以在MySQL控制台上验证员工表.以下命令用于使用select'query验证 db 数据库的 employee 表的行.
mysql>mysql> use db;mysql> SELECT * FROM employee;+------+--------------+-------------+-------------------+--------+| Id | Name | Designation | Salary | Dept |+------+--------------+-------------+-------------------+--------+| 1201 | gopal | manager | 50000 | TP || 1202 | manisha | preader | 50000 | TP || 1203 | khalil | php dev | 30000 | AC || 1204 | prasanth | php dev | 30000 | AC || 1205 | kranthi | admin | 20000 | TP || 1206 | satish p | grp des | 20000 | GR || 1207 | Raju | UI dev | 15000 | TP |+------+--------------+-------------+-------------------+--------+