Sqoop - Exportieren

In diesem Kapitel wird beschrieben, wie Sie Daten aus dem HDFS zurück in die RDBMS-Datenbank exportieren. Die Zieltabelle muss in der Zieldatenbank vorhanden sein. Die Dateien, die als Eingabe für Sqoop angegeben werden, enthalten Datensätze, die in der Tabelle als Zeilen bezeichnet werden. Diese werden gelesen und in eine Reihe von Datensätzen analysiert und mit einem benutzerdefinierten Trennzeichen getrennt.

Die Standardoperation besteht darin, den gesamten Datensatz aus den Eingabedateien mit der INSERT-Anweisung in die Datenbanktabelle einzufügen. Im Aktualisierungsmodus generiert Sqoop die UPDATE-Anweisung, die den vorhandenen Datensatz in der Datenbank ersetzt.

Syntax

Das Folgende ist die Syntax für den Exportbefehl.

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

Beispiel

Nehmen wir ein Beispiel für die Mitarbeiterdaten in der Datei in HDFS. Die Mitarbeiterdaten sind in verfügbaremp_dataDatei im Verzeichnis 'emp /' in HDFS. Dasemp_data ist wie folgt.

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

Die zu exportierende Tabelle muss manuell erstellt werden und in der Datenbank vorhanden sein, aus der sie exportiert werden muss.

Die folgende Abfrage wird verwendet, um die Tabelle 'Mitarbeiter' in der MySQL-Befehlszeile zu erstellen.

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

Der folgende Befehl wird verwendet, um die Tabellendaten (die sich in befinden) zu exportieren emp_data Datei auf HDFS) in die Mitarbeitertabelle in der Datenbank des MySQL-Datenbankservers.

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

Der folgende Befehl wird verwendet, um die Tabelle in der MySQL-Befehlszeile zu überprüfen.

mysql>select * from employee;

Wenn die angegebenen Daten erfolgreich gespeichert wurden, finden Sie die folgende Tabelle mit den angegebenen Mitarbeiterdaten.

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