Sqoop - Xuất

Chương này mô tả cách xuất dữ liệu trở lại từ HDFS sang cơ sở dữ liệu RDBMS. Bảng đích phải tồn tại trong cơ sở dữ liệu đích. Các tệp được cung cấp làm đầu vào cho Sqoop chứa các bản ghi, được gọi là các hàng trong bảng. Chúng được đọc và phân tích cú pháp thành một tập hợp các bản ghi và được phân tách bằng dấu phân cách do người dùng chỉ định.

Hoạt động mặc định là chèn tất cả bản ghi từ tệp đầu vào vào bảng cơ sở dữ liệu bằng cách sử dụng câu lệnh INSERT. Trong chế độ cập nhật, Sqoop tạo câu lệnh UPDATE thay thế bản ghi hiện có vào cơ sở dữ liệu.

Cú pháp

Sau đây là cú pháp cho lệnh xuất.

$ sqoop export (generic-args) (export-args) 
$ sqoop-export (generic-args) (export-args)

Thí dụ

Hãy để chúng tôi lấy một ví dụ về dữ liệu nhân viên trong tệp, trong HDFS. Dữ liệu nhân viên có sẵn trongemp_datatệp trong thư mục 'emp /' trong HDFS. Cácemp_data là như sau.

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

Bắt buộc phải xuất bảng được tạo theo cách thủ công và có mặt trong cơ sở dữ liệu từ nơi nó phải được xuất.

Truy vấn sau được sử dụng để tạo bảng 'nhân viên' trong dòng lệnh mysql.

$ 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));

Lệnh sau được sử dụng để xuất dữ liệu bảng (trong emp_data trên HDFS) vào bảng nhân viên trong cơ sở dữ liệu db của máy chủ cơ sở dữ liệu Mysql.

$ sqoop export \
--connect jdbc:mysql://localhost/db \
--username root \
--table employee \ 
--export-dir /emp/emp_data

Lệnh sau được sử dụng để xác minh bảng trong dòng lệnh mysql.

mysql>select * from employee;

Nếu dữ liệu đã cho được lưu trữ thành công, thì bạn có thể tìm thấy bảng dữ liệu nhân viên nhất định sau đây.

+------+--------------+-------------+-------------------+--------+
| 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     |
+------+--------------+-------------+-------------------+--------+