Sqoop - Esporta

Questo capitolo descrive come esportare di nuovo i dati dall'HDFS al database RDBMS. La tabella di destinazione deve esistere nel database di destinazione. I file forniti come input a Sqoop contengono record, chiamati righe nella tabella. Questi vengono letti e analizzati in una serie di record e delimitati con delimitatore specificato dall'utente.

L'operazione predefinita consiste nell'inserire tutto il record dai file di input nella tabella del database utilizzando l'istruzione INSERT. In modalità di aggiornamento, Sqoop genera l'istruzione UPDATE che sostituisce il record esistente nel database.

Sintassi

La seguente è la sintassi per il comando di esportazione.

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

Esempio

Facciamo un esempio dei dati dei dipendenti in file, in HDFS. I dati dei dipendenti sono disponibili inemp_datafile nella directory "emp /" in HDFS. Ilemp_data è come segue.

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

È obbligatorio che la tabella da esportare sia creata manualmente e sia presente nel database da dove deve essere esportata.

La seguente query viene utilizzata per creare la tabella "dipendente" nella riga di comando di 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));

Il seguente comando viene utilizzato per esportare i dati della tabella (che è in formato emp_data file su HDFS) nella tabella dei dipendenti nel database db del server database Mysql.

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

Il seguente comando viene utilizzato per verificare la tabella nella riga di comando di mysql.

mysql>select * from employee;

Se i dati forniti vengono archiviati correttamente, è possibile trovare la seguente tabella di dati sui dipendenti.

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