Sqoop - Exportar

Este capítulo descreve como exportar dados de volta do HDFS para o banco de dados RDBMS. A tabela de destino deve existir no banco de dados de destino. Os arquivos fornecidos como entrada para o Sqoop contêm registros, que são chamados de linhas na tabela. Eles são lidos e analisados ​​em um conjunto de registros e delimitados com um delimitador especificado pelo usuário.

A operação padrão é inserir todos os registros dos arquivos de entrada na tabela do banco de dados usando a instrução INSERT. No modo de atualização, o Sqoop gera a instrução UPDATE que substitui o registro existente no banco de dados.

Sintaxe

A seguir está a sintaxe do comando de exportação.

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

Exemplo

Tomemos um exemplo dos dados do funcionário em arquivo, no HDFS. Os dados do funcionário estão disponíveis ememp_dataarquivo no diretório 'emp /' no HDFS. oemp_data é o seguinte.

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

É obrigatório que a tabela a ser exportada seja criada manualmente e esteja presente no banco de dados de onde deve ser exportada.

A consulta a seguir é usada para criar a tabela 'funcionário' na linha de comando do 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));

O seguinte comando é usado para exportar os dados da tabela (que está em emp_data arquivo em HDFS) para a tabela de funcionários no banco de dados db do servidor de banco de dados Mysql.

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

O seguinte comando é usado para verificar a tabela na linha de comando do mysql.

mysql>select * from employee;

Se os dados fornecidos forem armazenados com êxito, você poderá encontrar a seguinte tabela de dados de funcionários fornecidos.

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