export

Инструмент export используется для экспорта файлов из HDFS в СУБД. Конечная таблица должна быть создана в базе данных. Инструмент обрабатывает входные данные и создает записи, используя разделители, указанные пользователем.

По умолчанию эти записи превращаются в SQL-выражения INSERT, которые вставляют записи в базы данных. В режиме update Sqoop генерирует выражения UPDATE, которые заменяют существующие записи в базе данных, а в режиме call Sqoop выполняет вызов хранимой процедуры для каждой записи.

Использование инструмента показано ниже.

$ sqoop export <generic-args> <export-args>
$ sqoop-export <generic-args> <export-args>

Общие аргументы Hadoop должны предшествовать любым аргументам export. Аргументы export могут указываться в любом порядке по отношению друг к другу.

Общие аргументы

--connect <jdbc-uri>

Указывает JDBC-строку соединения

--connection-manager <class-name>

Указывает класс диспетчера соединений

--connection-param-file <filename>

Указывает путь к файлу, который содержит параметры подключения

--driver <class-name>

Указывает класс JDBC-драйвера

--hadoop-mapred-home <dir>

Переопределяет $HADOOP_MAPRED_HOME

--help

Выводит справочную информацию

--password-file

Задает путь к файлу, который содержит пароль аутентификации

-P

Считывает пароль из консоли

--password <password>

Устанавливает пароль аутентификации

--username <username>

Устанавливает имя пользователя для аутентификации

--verbose

Выводит более подробную информацию во время работы

--relaxed-isolation

Устанавливает уровень изоляции транзакций read-uncommitted

Аргументы валидации

--validate

Включает проверку скопированных данных, поддерживает только копирование одной таблицы

--validator <class-name>

Указывает класс валидатора

--validation-threshold <class-name>

Указывает класс-обработчик порога валидации

--validation-failurehandler <class-name>

Указывает класс-обработчик ошибок

Аргументы экспорта

--columns <col,col,col…>

Указывает столбцы для экспорта

--direct

Использует прямой путь экспорта

--export-dir <dir>

HDFS-источник для экспорта

-m,--num-mappers <n>

Использует n map-задач для параллельного процесса экспорта

--table <table-name>

Таблица для заполнения

--call <stored-proc-name>

Указывает имя хранимой процедуры

--update-key <col-name>

Столбец, выполняющий роль ключа для инкрементального обновления или слияния. Если столбцов несколько, укажите значения, разделяя их запятой

--update-mode <mode>

Определяет, как выполнять обновление при обнаружении новых строк с несовпадающими ключами в базе данных. Допустимые значения: updateonly и allowinsert

--input-null-string <null-string>

Указывает строку, которая используется для отображения null-значений в столбцах, хранящих строки

--input-null-non-string <null-string>

Указывает строку, которая используется для отображения null-значений в столбцах, хранящих нестроковые данные

--staging-table <staging-table-name>

Указывает таблицу для временного хранения данных перед вставкой в конечную таблицу

--clear-staging-table

Означает, что любые данные во временной таблице могут быть удалены

--batch

Использует режим batch для выполнения выражений

Аргументы парсинга входных данных

--input-enclosed-by <char>

Устанавливает символ границ поля для входных данных

--input-escaped-by <char>

Устанавливает символ экранирования для входных данных

--input-fields-terminated-by <char>

Устанавливает символ разделителя полей для входных данных

--input-lines-terminated-by <char>

Устанавливает символ конца строки для входных данных

--input-optionally-enclosed-by <char>

Устанавливает опциональный символ границ поля для входных данных

Аргументы форматирования строк вывода

--enclosed-by <char>

Устанавливает символ границ поля

--escaped-by <char>

Устанавливает символ экранирования

--fields-terminated-by <char>

Устанавливает символ разделителя полей

--lines-terminated-by <char>

Устанавливает символ конца строки

--mysql-delimiters

Использует стандартный набор разделителей MySQL: поля — ,, строки — \n, символ экранирования — \, опциональный enclosed-by (--optionally-enclosed-by) — '

--optionally-enclosed-by <char>

Устанавливает опциональный символ границ поля

Sqoop автоматически генерирует код для анализа и интерпретации записей файлов, которые содержат данные для экспорта в базу данных. Если эти файлы были созданы с кастомными разделителями (по умолчанию разделители полей — запятые, разделители записей — перенос строки), необходимо указать эти разделители, чтобы Sqoop мог корректно парсить ваши файлы.

Если вы укажете разделители неправильно, Sqoop не сможет определить столбцы в строке. Это приведет к ошибкам map-задач экспорта (ParseExceptions).

Аргументы генерации кода

--bindir <dir>

Устанавливает выходной каталог для скомпилированных объектов

--class-name <name>

Задает имя для сгенерированного класса. Эта опция переопределяет --package-name. При комбинации с --jar-file, задает имя для входного класса

--jar-file <file>

Отключает генерацию кода; вместо этого используется предоставленный JAR

--map-column-java <m>

Переопределяет сопоставление по умолчанию из типа SQL в тип Java для столбца <m>

--outdir <dir>

Устанавливает выходной каталог для сгенерированного кода

--package-name <name>

Помещает автоматически сгенерированные классы в указанный пакет

Если экспортируемые записи были сгенерированы в результате процедуры импорта, то исходный сгенерированный класс можно использовать для обратного считывания данных. Указание --jar-file и --class-name избавляет от необходимости указывать разделители в этом случае.

Использование существующего сгенерированного кода несовместимо с --update-key; экспорт в режиме обновления требует генерации нового кода для выполнения UPDATE-операций. Вы не можете использовать --jar-file и должны полностью указать все кастомные разделители.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней