📅  最后修改于: 2020-11-29 08:23:59             🧑  作者: Mango
本章介绍如何使用Sqoop“评估”工具。它允许用户对各个数据库服务器执行用户定义的查询,并在控制台中预览结果。因此,用户可以期望导入结果表数据。使用eval,我们可以评估可以是DDL或DML语句的任何类型的SQL查询。
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评估工具可用于建模和定义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控制台上验证employee表。以下命令用于使用select’查询来验证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 |
+------+--------------+-------------+-------------------+--------+