Sqoop - Импортировать все таблицы

В этой главе описывается, как импортировать все таблицы с сервера базы данных СУБД в HDFS. Данные каждой таблицы хранятся в отдельном каталоге, а имя каталога совпадает с именем таблицы.

Синтаксис

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

$ sqoop import-all-tables (generic-args) (import-args) 
$ sqoop-import-all-tables (generic-args) (import-args)

пример

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

+--------------------+
 |      Tables        |
 +--------------------+
 |      emp           |
 |      emp_add       |
 |      emp_contact   |
 +--------------------+

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

$ sqoop import-all-tables \
--connect jdbc:mysql://localhost/userdb \
--username root

Note - Если вы используете import-all-tables, обязательно, чтобы каждая таблица в этой базе данных имела поле первичного ключа.

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

$ $HADOOP_HOME/bin/hadoop fs -ls

Он покажет вам список имен таблиц в базе данных userdb в виде каталогов.

Вывод

drwxr-xr-x - hadoop supergroup 0 2014-12-22 22:50 _sqoop
drwxr-xr-x - hadoop supergroup 0 2014-12-23 01:46 emp
drwxr-xr-x - hadoop supergroup 0 2014-12-23 01:50 emp_add
drwxr-xr-x - hadoop supergroup 0 2014-12-23 01:52 emp_contact