本章介绍了如何使用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的INSERT语句了。下面的命令用于在DB数据库的员工(employee) 表中插入新行。
$ sqoop eval \ --connect jdbc:mysql://localhost/db \ --username root \ -e “INSERT INTO employee VALUES(1207,‘Raju’,‘UI dev’,15000,‘TP’)”
如果命令成功执行,那么它会显示在控制台上更新的行的状态。
或者,可以验证在MySQL控制台 employee 表。下面的命令是用来验证DB数据库的employee表使用"select“查询行。
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 | +------+--------------+-------------+-------------------+--------+