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>

Переопределяет $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>

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

Аргументы импорта

--append

Добавляет данные в существующий dataset в HDFS

--as-avrodatafile

Импортирует данные в виде файлов данных Avro

--as-sequencefile

Импортирует данные в виде SequenceFiles

--as-textfile

Импортирует данные в виде обычного текста (значение по умолчанию)

--as-parquetfile

Импортирует данные в Parquet-формате

--autoreset-to-one-mapper

Если встречается таблица без первичного ключа, то в процессе импорта должен быть задействован один mapper. Недоступно для использования с опцией --split-by <column-name>

--boundary-query <statement>

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

--columns <col,col,col…>

Указывает столбцы, которые необходимо импортировать

--delete-target-dir

Удаляет директорию импорта, если такая существует

--direct

Использует direct-коннектор для базы данных (если такой имеется)

-e,--query <statement>

Импортирует результат выполнения запроса <statement>

--fetch-size <n>

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

--inline-lob-limit <n>

Задает максимальный размер для inline LOB

-m,--num-mappers <n>

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

--null-string <null-string>

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

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

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

--split-by <column-name>

Указывает столбец таблицы, используемый для разделения процесса на единицы работы. Недоступно для использования с опцией --autoreset-to-one-mapper

--split-limit <n>

Устанавливает максимальный размер каждого сплита. Применимо к столбцам типа Integer и Date. Для полей, хранящих даты или отметки времени, устанавливается в секундах

--table <table-name>

Таблица для чтения

--target-dir <dir>

Конечная директория HDFS

--temporary-rootdir <dir>

Устанавливает временную HDFS-директорию для временных файлов, созданных в процессе импорта (перезаписывает дефолтное значение _sqoop)

--warehouse-dir <dir>

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

--where <where clause>

Выражение WHERE для использования в процессе импорта

-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: поля — ,, строки — \n, символ экранирования — \, опциональный enclosed-by (--optionally-enclosed-by) — '

--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 и так далее. Это может быть полезно, например, для создания классов, которые могут парсить записи, созданные с одним набором разделителей, и передавать записи в другой набор файлов, используя другой набор разделителей.

Hive arguments

--create-hive-table

Если аргумент задан и Hive-таблица уже существует, выполнение завершается ошибкой

--hive-home <dir>

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

--hive-import

Импортирует таблицы в Hive (использует разделители Hive по умолчанию, если они не установлены)

--hive-overwrite

Перезаписывает существующие данные в таблице Hive

--hive-table <table-name>

Устанавливает имя таблицы для использования при импорте в Hive

--hive-drop-import-delims

Удаляет символы \n, \r и \01 из полей при импорте в Hive

--hive-delims-replacement

Заменяет \n, \r и \01 на пользовательские символы при импорте в Hive

--hive-partition-key

Устанавливает ключ раздела Hive

--hive-partition-value <v>

Устанавливает значение раздела Hive

--map-column-hive <map>

Переопределяет сопоставление по умолчанию из типов данных SQL в типы данных Hive. Если аргумент содержит запятые, используйте ключи/значения в кодировке URL, например, используйте DECIMAL(1%2C%201) вместо DECIMAL(1, 1)

Аргументы HBase

--column-family <family>

Задает column family для импорта

--hbase-create-table

Если указан, создает недостающие HBase-таблицы

--hbase-row-key <col>

Указывает, какой входной столбец использовать в качестве ключа строки. Если входная таблица содержит составной ключ (composite key), то значение <col> должно содержать список атрибутов составных ключей, разделенных запятыми

--hbase-table <table-name>

Указывает таблицу HBase вместо HDFS

--hbase-bulkload

Включает массовую загрузку

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

--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>

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

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