Sqoop – Exportar

Este capítulo describe cómo exportar datos de HDFS a una base de datos DBMS. La tabla de destino debe existir en la base de datos de destino. Los archivos que se ingresan en Sqoop contienen registros que se denominan filas en una tabla. Se leen y analizan en un conjunto de registros y se separan mediante un delimitador especificado por el usuario.

La operación predeterminada es insertar el registro completo de los archivos de entrada en una tabla de base de datos utilizando una instrucción INSERT. En el modo de actualización, Sqoop genera una instrucción UPDATE que reemplaza un registro existente en la base de datos.

Sintaxis

A continuación se muestra la sintaxis del comando de exportación.

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

Ejemplo

Tomemos un ejemplo de datos de empleados en un archivo en HDFS. Los datos de los empleados están disponibles en emp_data archivo en el directorio emp / en HDFS. A emp_data la direccion correcta.

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

Es imperativo que la tabla que se va a exportar se cree manualmente y esté presente en la base de datos desde la que se va a exportar.

La siguiente consulta se utiliza para crear la tabla «empleado» en la línea de comandos de 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));

El siguiente comando se utiliza para exportar datos de la tabla (que se encuentra en emp_data archivo en HDFS) a la tabla de empleados en la base de datos del servidor de base de datos Mysql.

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

El siguiente comando se usa para verificar la tabla en la línea de comando de mysql.

mysql>select * from employee;

Si los datos se guardan correctamente, puede encontrar la siguiente tabla con los datos de los empleados.

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

🚫