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> |
Переопределяет |
--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> |
Использует |
--table <table-name> |
Таблица для заполнения |
--call <stored-proc-name> |
Указывает имя хранимой процедуры |
--update-key <col-name> |
Столбец, выполняющий роль ключа для инкрементального обновления или слияния. Если столбцов несколько, укажите значения, разделяя их запятой |
--update-mode <mode> |
Определяет, как выполнять обновление при обнаружении новых строк с несовпадающими ключами в базе данных.
Допустимые значения: |
--input-null-string <null-string> |
Указывает строку, которая используется для отображения |
--input-null-non-string <null-string> |
Указывает строку, которая используется для отображения |
--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: поля — |
--optionally-enclosed-by <char> |
Устанавливает опциональный символ границ поля |
Sqoop автоматически генерирует код для анализа и интерпретации записей файлов, которые содержат данные для экспорта в базу данных. Если эти файлы были созданы с кастомными разделителями (по умолчанию разделители полей — запятые, разделители записей — перенос строки), необходимо указать эти разделители, чтобы Sqoop мог корректно парсить ваши файлы.
Если вы укажете разделители неправильно, Sqoop не сможет определить столбцы в строке.
Это приведет к ошибкам map-задач экспорта (ParseExceptions
).
--bindir <dir> |
Устанавливает выходной каталог для скомпилированных объектов |
--class-name <name> |
Задает имя для сгенерированного класса.
Эта опция переопределяет |
--jar-file <file> |
Отключает генерацию кода; вместо этого используется предоставленный JAR |
--map-column-java <m> |
Переопределяет сопоставление по умолчанию из типа SQL в тип Java для столбца |
--outdir <dir> |
Устанавливает выходной каталог для сгенерированного кода |
--package-name <name> |
Помещает автоматически сгенерированные классы в указанный пакет |
Если экспортируемые записи были сгенерированы в результате процедуры импорта, то исходный сгенерированный класс можно использовать для обратного считывания данных.
Указание --jar-file
и --class-name
избавляет от необходимости указывать разделители в этом случае.
Использование существующего сгенерированного кода несовместимо с --update-key
; экспорт в режиме обновления требует генерации нового кода для выполнения UPDATE-операций.
Вы не можете использовать --jar-file
и должны полностью указать все кастомные разделители.