Видео: Sqoop Import and Export data from RDMBS and HDFS 2024
Готовы ли погрузиться в импорт данных с помощью Sqoop? Начнем с рассмотрения рисунка, который иллюстрирует шаги в типичной операции импорта Sqoop из СУБД или системы хранилища данных. Здесь нет ничего сложного - просто типичная таблица данных о продуктах (типичная) вымышленная компания, импортируемая в типичный кластер Apache Hadoop из типичной системы управления данными (DMS).
На шаге 1 Sqoop использует соответствующий соединитель для извлечения метаданных таблицы Products из целевой DMS. (Метаданные используются для сопоставления типов данных из таблицы Products с типами данных на языке Java.)
Этап 2 затем использует эти метаданные для генерации и компиляции класса Java, который будет использоваться одной или несколькими задачами карты для импортируйте фактические строки из таблицы Products. Sqoop сохраняет созданный Java-класс временному пространству или указанному вами каталогу, чтобы вы могли использовать его для последующей обработки ваших записей данных.
Созданный Sqoop код Java, который сохраняется для вас, похож на подарок, который продолжает давать! С помощью этого кода Sqoop импортирует записи из DMS и сохраняет их в HDFS, используя один из трех форматов, которые вы можете выбрать: бинарные данные Avro, файлы двоичной последовательности или текстовые файлы с разделителями. Впоследствии этот код доступен для последующей обработки данных.
Файлы последовательности являются естественным выбором, если вы импортируете двоичные типы данных, и вам понадобится сгенерированный класс Java для сериализации и десериализации данных позже - возможно, для MapReduce обработки или экспорта. Данные Avro, основанные на собственной структуре сериализации Apache, полезны, если вам нужно взаимодействовать с другими приложениями после импорта в HDFS.
Если вы решите сохранить ваши импортированные данные в текстовом формате с разделителями, вы можете найти сгенерированный код Java, ценный позже, при анализе и преобразовании формата данных в новые данные. Вы увидите, что сгенерированный код также помогает объединять наборы данных после операций импорта Sqoop, а сгенерированный код Java может помочь избежать двусмысленности при обработке текстовых данных с разделителями.
Наконец, на этапе 3 Sqoop делит записи данных в таблице «Продукты» на множество задач карты (с числом опций, заданных пользователем) и импортирует данные таблицы в HDFS, Hive или HBase.