Hive ETL: загрузка JSON, XML, примеров текстовых данных

Hive как инструмент ETL и хранилищ данных поверх Hadoop ecosСистема предоставляет такие функции, как моделирование данных, манипулирование данными, обработка данных и запросы к данным. Извлечение данных в Hive означает создание таблиц в Hive и загрузку структурированных и полуструктурированных данных, а также запрос данных на основе требований.

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

Работа со структурированными данными с помощью Hive

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

Здесь мы собираемся загрузить структурированные данные, представленные в текстовых файлах в Hive.

Шаг 1) На этом этапе мы создаем таблицу «employees_guru» с именами столбцов, такими как идентификатор, имя, возраст, адрес, зарплата и отдел сотрудников, с типами данных.

Работа со структурированными данными с помощью Hive

На приведенном выше скриншоте мы можем наблюдать следующее.wing,

  1. Создание таблицы «сотрудники_гуру»
  2. Загрузка данных из файла «Сотрудники.txt» в таблицу «employees_guru»

Шаг 2) На этом этапе мы отображаем содержимое, хранящееся в этой таблице, с помощью команды «Выбрать». Содержимое таблицы мы можем наблюдать ниже.wing снимок экрана.

Работа со структурированными данными с помощью Hive

– Пример фрагмента кода

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

1) Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING)
> Row format delimited
> Fields terminated by ',';
2) load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru;
3) select * from employees_guru;

Работа с полуструктурированными данными с использованием Hive (XML, JSON)

Hive выполняет функции ETL в Hadoop ecosсистема, действуя как Инструмент ETL. В некоторых приложениях может быть сложно выполнить сокращение карты. Hive может уменьшитьplexобеспечивает лучшее решение для ИТ-приложений в сфере хранилищ данных.

Полуструктурированные данные, такие как XML и JSON, можно обрабатывать с меньшими затратами.plexity с помощью Hive. Сначала мы увидим, как можно использовать Hive для XML.

XML В ТАБЛИЦУ HIVE

При этом мы собираемся загрузить данные XML в таблицы Hive и получить значения, хранящиеся внутри тегов XML.

Шаг 1) Создание таблицы «xmlsample_guru» со столбцом str со строковым типом данных.

Работа с полуструктурированными данными с помощью Hive

На приведенном выше скриншоте мы можем наблюдать следующее.wing

  1. Создание таблицы «xmlsample_guru»
  2. Загрузка данных из test.xml в таблицу «xmlsample_guru»

Шаг 2) . XPath () мы сможем получить данные, хранящиеся внутри тегов XML.

Работа с полуструктурированными данными с помощью Hive

На приведенном выше скриншоте мы можем наблюдать следующее.wing

  1. Используя метод XPATH(), мы извлекаем значения, хранящиеся в каталогах /emp/esal/ и /emp/ename/.
  2. Значения присутствуют внутри тегов XML. На этом этапе мы отображаем фактические значения, хранящиеся в тегах XML в таблице «xmlsample_guru».

Шаг 3) На этом этапе мы получим и отобразим необработанный XML таблицы «xmlsample_guru».

Работа с полуструктурированными данными с помощью Hive

На приведенном выше скриншоте мы можем наблюдать следующее.wing

  • Фактические данные XML отображаются с помощью тегов
  • Если мы наблюдаем один тег, то это родительский тег «emp» с дочерними тегами «ename» и «esal».

Фрагмент кода:

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

1) create table xmlsample_guru(str string);                                                                                                   2) load data local inpath '/home/hduser/test.xml' overwrite  into table xmlsample_guru;
3) select xpath(str,'emp/ename/text()'), xpath(str,'emp/esal/text()') from xmlsample_guru;

JSON (нотация объектов JavaScript)

Данные Twitter и веб-сайтов хранятся в формате JSON. Всякий раз, когда мы пытаемся получить данные с онлайн-серверов, они возвращают файлы JSON. Используя Hive в качестве хранилища данных, мы можем загружать данные JSON в таблицы Hive, создавая схемы.

JSON В ТАБЛИЦУ HIVE

При этом мы собираемся загрузить данные JSON в таблицы Hive и получить значения, хранящиеся в схеме JSON.

Шаг 1) На этом этапе мы создадим таблицу JSON с именем «json_guru». После создания загружается и отображается содержимое фактической схемы.

Json в таблицу Hive

На приведенном выше скриншоте мы можем наблюдать следующее.wing

  1. Создание таблицы «json_guru»
  2. Загрузка данных из test.json в таблицу «json_guru»
  3. Отображение фактической схемы файла JSON, хранящегося в таблицах json_guru.

Шаг 2) Используя метод get_json_object(), мы можем получить значения данных, хранящиеся в иерархии JSON.

Json в таблицу Hive

На приведенном выше снимке экрана мы можем наблюдать следующее.wing

  1. Используя get_json_object (str,'$.ecode), он может получить значения кодирования из таблицы json_guru. Аналогично, используя get_json_object (str,'$.ename), get_json_object (str,'$.Sali), он будет получать значения ename sal из таблицы json_guru.
  2. Значения, хранящиеся внутри иерархии JSON в json_guru.

Фрагмент кода

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

1) create table json_guru(str string);
2) load data inpath 'home/hduser/test.json' into table json_guru;
3) select * from json1;
4) select get_json_object(str,'$.ecode') as ecode, get_json_object(str,'$.ename') as ename ,get_json_object(str,'$.sal') as salary from json_guru;

сplex JSON В ТАБЛИЦУ HIVE

При этом мы собираемся загрузить Complex Данные JSON в таблицы Hive, и мы получим значения, хранящиеся в схеме JSON.

Шаг 1) Создание комplexjson_guru с полем из одного столбца

сplex Json в таблицу Hive

На приведенном выше скриншоте мы можем наблюдать следующее.wing

  1. Создание на столе complexjson_guru с полем одного столбца как строковым типом данных
  2. Загрузка данных в complexjson_guru с сайта emp.json complex Файл JSON

Шаг 2) Используя get_json_object, мы можем получить фактический контент, хранящийся внутри иерархии файлов JSON.

Из следующегоwing скриншот, мы можем увидеть вывод данных, хранящихся в complexjson_guru.

сplex Json в таблицу Hive

Шаг 3) На этом этапе, используя команду «Выбрать», мы действительно можем увидеть com.plex Данные JSON хранятся внутри таблицы «complexjson_guru»

сplex Json в таблицу Hive

-Пример фрагмента кода,

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

1) create table complexjson_guru(json string);
2) load data inpath 'home/hduser/emp.json' into table complexjson_guru;
3) select get_json_object(json,'$.ecode') as ecode ,get_json_object(json,'$.b') as code, get_json_object(json,'$.c') from complexjson_guru;
4) select * from complexjson_guru;

Hive в проектах реального времени – когда и где использовать

Когда и где использовать Hive в Hadoop Ecosystem:

После появления

  • При работе с сильными и мощными статистическими функциями в Hadoop ecosystem
  • При работе со структурированной и полуструктурированной обработкой данных
  • Как инструмент хранилища данных с Hadoop
  • Прием данных в реальном времени с помощью HBASE, можно использовать Hive

где

  • Для упрощения использования ETL и инструмента хранилища данных.
  • Чтобы обеспечить среду типа SQL и выполнять запросы, подобные SQL, с использованием HIVEQL.
  • Использовать и развертывать специальные сценарии карт и редукторов для конкретных требований клиента.