Hive как инструмент ETL и хранилища данных поверх экосистемы Hadoop предоставляет такие функции, как моделирование данных, манипулирование данными, обработка данных и запросы данных. Извлечение данных в Hive означает создание таблиц в Hive и загрузку структурированных и полуструктурированных данных, а также запрос данных на основе требований.
Для пакетной обработки мы собираемся писать настраиваемые сценарии с использованием настраиваемой карты и сокращать количество сценариев с помощью языка сценариев. Он предоставляет среду, подобную SQL, и поддерживает простые запросы.
В этом руководстве вы узнаете:
- Работа со структурированными данными с помощью Hive
- Работа с полуструктурированными данными с использованием Hive (XML, JSON)
- Проекты Hive в реальном времени - когда и где использовать
Работа со структурированными данными с помощью Hive
Структурированные данные означают, что данные представлены в правильном формате строк и столбцов. Это больше похоже на данные РСУБД с правильными строками и столбцами.
Здесь мы собираемся загрузить структурированные данные, присутствующие в текстовых файлах в Hive.
Шаг 1) На этом шаге мы создаем таблицу «employee_guru» с именами столбцов, такими как Id, Name, Age, Address, Salary и Department, сотрудников с типами данных.
На приведенном выше снимке экрана мы можем наблюдать следующее:
- Создание таблицы «employee_guru»
- Загрузка данных из Employees.txt в таблицу «employee_guru»
Шаг 2) На этом шаге мы отображаем содержимое, хранящееся в этой таблице, с помощью команды «Выбрать». Мы можем наблюдать содержимое таблицы на следующем снимке экрана.
- Пример фрагмента кода
Запросы, которые будут выполнены
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, выступая в качестве инструмента ETL. В некоторых типах приложений может быть сложно выполнить сокращение карты, Hive может снизить сложность и обеспечивает лучшее решение для ИТ-приложений с точки зрения сектора хранилищ данных.
Полуструктурированные данные, такие как XML и JSON, можно с меньшей сложностью обрабатывать с помощью Hive. Сначала мы увидим, как мы можем использовать Hive для XML.
ТАБЛИЦА XML TO HIVE
Здесь мы собираемся загрузить данные XML в таблицы Hive и получить значения, хранящиеся внутри тегов XML.
Шаг 1) Создание таблицы «xmlsample_guru» со столбцом str со строковым типом данных.
На скриншоте выше мы можем наблюдать следующее
- Создание таблицы "xmlsample_guru"
- Загрузка данных из test.xml в таблицу "xmlsample_guru"
Шаг 2) Используя метод XPath (), мы сможем получить данные, хранящиеся внутри тегов XML.
На скриншоте выше мы можем наблюдать следующее
- Используя метод XPATH (), мы получаем значения, хранящиеся в / emp / esal / и / emp / ename /
- Значения присутствуют внутри тегов XML. На этом этапе мы отображаем фактические значения, хранящиеся в тегах XML, в таблице «xmlsample_guru».
Шаг 3) На этом шаге мы извлечем и отобразим необработанный XML таблицы «xmlsample_guru».
На скриншоте выше мы можем наблюдать следующее
- Фактические данные 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 TO HIVE
Здесь мы собираемся загрузить данные JSON в таблицы Hive и получить значения, хранящиеся в схеме JSON.
Шаг 1) На этом шаге мы собираемся создать таблицу JSON с именем «json_guru». После создания загрузка и отображение содержимого фактической схемы.
На скриншоте выше мы можем наблюдать следующее
- Создание таблицы "json_guru"
- Загрузка данных из test.json в таблицу json_guru
- Отображение фактической схемы файла JSON, хранящегося в таблицах json_guru
Шаг 2) Используя метод get_json_object (), мы можем получить значения данных, хранящиеся в иерархии JSON.
На приведенном выше снимке экрана мы можем наблюдать следующее
- Используя get_json_object (str, '$. Ecode), он может получать значения ecode из таблицы json_guru. Аналогично, используя get_json_object (str, '$. Ename), get_json_object (str,' $. Sali), он будет извлекать значения ename sal из таблицы json_guru.
- Значения, хранящиеся внутри иерархии 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;
Комплексная таблица JSON TO HIVE
Здесь мы собираемся загрузить сложные данные JSON в таблицы Hive и получить значения, хранящиеся в схеме JSON.
Шаг 1) Создание complexjson_guru с одним полем столбца
На скриншоте выше мы можем наблюдать следующее
- Создание в таблице complexjson_guru с полем одного столбца в качестве строкового типа данных
- Загрузка данных в complexjson_guru из сложного файла JSON emp.json
Шаг 2) Используя get_json_object, мы можем получить фактический контент, который хранится внутри иерархии файлов JSON.
На следующем снимке экрана мы можем увидеть вывод данных, хранящихся в complexjson_guru.
Шаг 3) На этом шаге, используя команду «Выбрать», мы действительно можем увидеть сложные данные JSON, хранящиеся в таблице «complexjson_guru».
-Пример фрагмента кода,
Запросы, которые будут выполнены
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:
Когда
- При работе с мощными и мощными статистическими функциями в экосистеме Hadoop
- При работе с обработкой структурированных и полуструктурированных данных
- Как инструмент хранилища данных с Hadoop
- Прием данных в реальном времени с HBASE, можно использовать Hive
Где
- Для простоты использования ETL и инструментов хранилища данных
- Чтобы предоставить среду типа SQL и выполнять запросы, такие как SQL, с использованием HIVEQL
- Для использования и развертывания настраиваемых сценариев карты и редуктора для конкретных требований клиента.
- Следующий