import
Инструмент import
импортирует отдельную таблицу из СУБД в HDFS.
Каждая строка из таблицы представлена в виде отдельной записи в HDFS.
Записи могут храниться в виде текстовых файлов (одна запись в строке) или в двоичном представлении.
Использование инструмента показано ниже.
$ sqoop import <generic-args> <import-args>
$ sqoop-import <generic-args> <import-args>
Общие аргументы Hadoop должны предшествовать любым аргументам import
.
Аргументы import
могут указываться в любом порядке по отношению друг к другу.
--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> |
Указывает класс-обработчик ошибок |
--append |
Добавляет данные в существующий dataset в HDFS |
--as-avrodatafile |
Импортирует данные в виде файлов данных Avro |
--as-sequencefile |
Импортирует данные в виде SequenceFiles |
--as-textfile |
Импортирует данные в виде обычного текста (значение по умолчанию) |
--as-parquetfile |
Импортирует данные в Parquet-формате |
--autoreset-to-one-mapper |
Если встречается таблица без первичного ключа, то в процессе импорта должен быть задействован один mapper.
Недоступно для использования с опцией |
--boundary-query <statement> |
Указывает запрос для создания сплитов |
--columns <col,col,col…> |
Указывает столбцы, которые необходимо импортировать |
--delete-target-dir |
Удаляет директорию импорта, если такая существует |
--direct |
Использует direct-коннектор для базы данных (если такой имеется) |
-e,--query <statement> |
Импортирует результат выполнения запроса |
--fetch-size <n> |
Указывает количество записей, которые нужно извлечь из базы данных за одно обращение |
--inline-lob-limit <n> |
Задает максимальный размер для inline LOB |
-m,--num-mappers <n> |
Использует |
--null-string <null-string> |
Указывает строку, которая используется для отображения |
--null-non-string <null-string> |
Указывает строку, которая используется для отображения |
--split-by <column-name> |
Указывает столбец таблицы, используемый для разделения процесса на единицы работы.
Недоступно для использования с опцией |
--split-limit <n> |
Устанавливает максимальный размер каждого сплита. Применимо к столбцам типа Integer и Date. Для полей, хранящих даты или отметки времени, устанавливается в секундах |
--table <table-name> |
Таблица для чтения |
--target-dir <dir> |
Конечная директория HDFS |
--temporary-rootdir <dir> |
Устанавливает временную HDFS-директорию для временных файлов, созданных в процессе импорта (перезаписывает дефолтное значение |
--warehouse-dir <dir> |
Устанавливает родительский каталог HDFS для импортируемой таблицы |
--where <where clause> |
Выражение |
-z,--compress |
Включает компрессию |
--compression-codec <c> |
Устанавливает кодек Hadoop (по умолчанию gzip) |
Аргументы --null-string
и --null-non-string
опциональные.
Если они не указаны, используется строка null
.
--enclosed-by <char> |
Устанавливает символ границ поля |
--escaped-by <char> |
Устанавливает символ экранирования |
--fields-terminated-by <char> |
Устанавливает символ разделителя полей |
--lines-terminated-by <char> |
Устанавливает символ конца строки |
--mysql-delimiters |
Использует стандартный набор разделителей MySQL: поля — |
--optionally-enclosed-by <char> |
Устанавливает опциональный символ границ поля |
--input-enclosed-by <char> |
Устанавливает символ границ поля для входных данных |
--input-escaped-by <char> |
Устанавливает символ экранирования для входных данных |
--input-fields-terminated-by <char> |
Устанавливает символ разделителя полей для входных данных |
--input-lines-terminated-by <char> |
Устанавливает символ конца строки для входных данных |
--input-optionally-enclosed-by <char> |
Устанавливает опциональный символ границ поля для входных данных |
Когда Sqoop импортирует данные в HDFS, он создает Java-класс, который может повторно обработать текстовые файлы, созданные при импорте с разделителями.
Разделители устанавливаются с помощью таких аргументов, как --fields-terminated-by
; это определяет как вид, в котором данные записываются на диск, так и обработку этих данных методом parse()
.
Разделители, используемые методом parse()
, можно выбирать независимо от выходных аргументов, используя --input-fields-terminated-by
и так далее.
Это может быть полезно, например, для создания классов, которые могут парсить записи, созданные с одним набором разделителей, и передавать записи в другой набор файлов, используя другой набор разделителей.
--create-hive-table |
Если аргумент задан и Hive-таблица уже существует, выполнение завершается ошибкой |
--hive-home <dir> |
Переопределяет |
--hive-import |
Импортирует таблицы в Hive (использует разделители Hive по умолчанию, если они не установлены) |
--hive-overwrite |
Перезаписывает существующие данные в таблице Hive |
--hive-table <table-name> |
Устанавливает имя таблицы для использования при импорте в Hive |
--hive-drop-import-delims |
Удаляет символы |
--hive-delims-replacement |
Заменяет |
--hive-partition-key |
Устанавливает ключ раздела Hive |
--hive-partition-value <v> |
Устанавливает значение раздела Hive |
--map-column-hive <map> |
Переопределяет сопоставление по умолчанию из типов данных SQL в типы данных Hive.
Если аргумент содержит запятые, используйте ключи/значения в кодировке URL, например, используйте |
--column-family <family> |
Задает column family для импорта |
--hbase-create-table |
Если указан, создает недостающие HBase-таблицы |
--hbase-row-key <col> |
Указывает, какой входной столбец использовать в качестве ключа строки.
Если входная таблица содержит составной ключ (composite key), то значение |
--hbase-table <table-name> |
Указывает таблицу HBase вместо HDFS |
--hbase-bulkload |
Включает массовую загрузку |
--bindir <dir> |
Устанавливает выходной каталог для скомпилированных объектов |
--class-name <name> |
Задает имя для сгенерированного класса.
Эта опция переопределяет |
--jar-file <file> |
Отключает генерацию кода; вместо этого используется предоставленный JAR |
--map-column-java <m> |
Переопределяет сопоставление по умолчанию из типа SQL в тип Java для столбца |
--outdir <dir> |
Устанавливает выходной каталог для сгенерированного кода |
--package-name <name> |
Помещает автоматически сгенерированные классы в указанный пакет |