本章介紹了如何使用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 | +------+--------------+-------------+-------------------+--------+