Учебники

Sqoop — Экспорт

В этой главе описывается, как экспортировать данные обратно из HDFS в базу данных RDBMS. Целевая таблица должна существовать в целевой базе данных. Файлы, которые передаются в качестве входных данных для Sqoop, содержат записи, которые называются строками в таблице. Они читаются и разбираются в набор записей и разделяются указанным пользователем разделителем.

Операцией по умолчанию является вставка всей записи из входных файлов в таблицу базы данных с помощью оператора INSERT. В режиме обновления Sqoop генерирует инструкцию UPDATE, которая заменяет существующую запись в базе данных.

Синтаксис

Ниже приведен синтаксис команды экспорта.

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

пример

Давайте рассмотрим пример данных о сотрудниках в файле в HDFS. Данные о сотрудниках доступны в файле emp_data в каталоге ’emp /’ в HDFS. Emp_data выглядит следующим образом.

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

Обязательно, чтобы экспортируемая таблица создавалась вручную и присутствовала в базе данных, откуда она должна быть экспортирована.

Следующий запрос используется для создания таблицы ’employee’ в командной строке 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));

Следующая команда используется для экспорта данных таблицы (которая находится в файле emp_data в HDFS) в таблицу employee в базе данных db сервера базы данных Mysql.

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

Следующая команда используется для проверки таблицы в командной строке mysql.

mysql>select * from employee;

Если данные данные успешно сохранены, вы можете найти следующую таблицу данных о сотрудниках.