- Sqoop 教程
- Sqoop - 主頁
- Sqoop - 簡介
- Sqoop - 安裝
- Sqoop - 匯入
- Sqoop - 匯入所有表
- Sqoop - 匯出
- Sqoop - Sqoop 作業
- Sqoop - 程式碼生成
- Sqoop - 評估
- Sqoop - 列出資料庫
- Sqoop - 列出表
- Sqoop 有用資源
- Sqoop - 問答
- Sqoop - 快速指南
- Sqoop - 有用資源
- Sqoop - 討論
Sqoop - 匯出
本章介紹如何將資料從 HDFS 導回 RDBMS 資料庫。目標表必須存在於目標資料庫中。提供給 Sqoop 的檔案作為輸入包含記錄,這些記錄在表中稱為行。它們被讀取並解析成一組記錄,並使用使用者指定的定界符進行分隔。
預設操作是使用 INSERT 語句將來自輸入檔案的全部記錄插入資料庫表中。在更新模式下,Sqoop 生成的 UPDATE 語句將替換資料庫中現有的記錄。
語法
以下是 export 命令的語法。
$ sqoop export (generic-args) (export-args) $ sqoop-export (generic-args) (export-args)
示例
讓我們舉一個 HDFS 檔案中的員工資料示例。員工資料位於 HDFS 中“emp/”目錄中的“emp_data”檔案中。emp_data 如下所示。
1201, gopal, manager, 50000, TP 1202, manisha, preader, 50000, TP 1203, kalil, php dev, 30000, AC 1204, prasanth, php dev, 30000, AC 1205, kranthi, admin, 20000, TP 1206, satish p, grp des, 20000, GR
需要手動建立待匯出的表,並且該表存在於需要匯出的資料庫中。
以下查詢用於在 MySQL 命令列中建立“employee”表。
$ mysql mysql> USE db; mysql> CREATE TABLE employee ( id INT NOT NULL PRIMARY KEY, name VARCHAR(20), deg VARCHAR(20), salary INT, dept VARCHAR(10));
以下命令用於將表資料(位於 HDFS 上的“emp_data”檔案中)匯出到 MySQL 資料庫伺服器的 db 資料庫中的 employee 表。
$ sqoop export \ --connect jdbc:mysql:///db \ --username root \ --table employee \ --export-dir /emp/emp_data
以下命令用於在 MySQL 命令列中驗證表。
mysql>select * from employee;
如果給定資料儲存成功,你將找到給定員工資料以下表格。
+------+--------------+-------------+-------------------+--------+ | Id | Name | Designation | Salary | Dept | +------+--------------+-------------+-------------------+--------+ | 1201 | gopal | manager | 50000 | TP | | 1202 | manisha | preader | 50000 | TP | | 1203 | kalil | php dev | 30000 | AC | | 1204 | prasanth | php dev | 30000 | AC | | 1205 | kranthi | admin | 20000 | TP | | 1206 | satish p | grp des | 20000 | GR | +------+--------------+-------------+-------------------+--------+
廣告