Sqoop - Eval



本章节介绍如何使用 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://127.0.0.1/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 用于 insert 语句。以下命令用于在db 数据库的employee 表中插入新行。

$ sqoop eval \
--connect jdbc:mysql://127.0.0.1/db \
--username root \ 
-e “INSERT INTO employee VALUES(1207,‘Raju’,‘UI dev’,15000,‘TP’)”

如果命令执行成功,则它将在控制台上显示更新行的状态。

或者,你可以在 MySQL 控制台验证 employee 表。以下命令用于通过“选择”查询验证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     |
+------+--------------+-------------+-------------------+--------+
广告