Hive як ETL та інструмент зберігання даних поверх екосистеми Hadoop забезпечує такі функції, як моделювання даних, маніпулювання даними, обробка даних та запити даних. Вилучення даних у вулику означає створення таблиць у вулику та завантаження структурованих та напівструктурованих даних, а також запит даних на основі вимог.
Для пакетної обробки ми збираємося писати власні сценарії за допомогою власної карти та зменшувати сценарії за допомогою мови сценаріїв. Він забезпечує середовище, подібне до SQL, і підтримку для легких запитів.
У цьому підручнику ви дізнаєтесь-
- Робота зі структурованими даними за допомогою Hive
- Робота з напівструктурованими даними за допомогою Hive (XML, JSON)
- Вулик у проектах у режимі реального часу - коли і де використовувати
Робота зі структурованими даними за допомогою Hive
Структуровані дані означають, що дані мають належний формат рядків і стовпців. Це більше схоже на дані СУБД із належними рядками та стовпцями.
Тут ми збираємося завантажувати структуровані дані, присутні в текстових файлах у Hive
Крок 1) На цьому кроці ми створюємо таблицю "worker_guru" з іменами стовпців, такими як Ідентифікатор, Ім'я, Вік, Адреса, Зарплата та Відділ співробітників з типами даних.
З наведеного вище скріншоту ми можемо спостерігати наступне:
- Створення таблиці "staff_guru"
- Завантаження даних з Employees.txt до таблиці "worker_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 ДЛЯ ТАБЛИЦІ
У цьому ми збираємося завантажувати дані 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 Object Notation)
Дані Twitter та веб-сайтів зберігаються у форматі JSON. Кожного разу, коли ми намагаємося отримати дані з мережевих серверів, він повертає файли JSON. Використовуючи Hive як сховище даних, ми можемо завантажувати дані JSON у таблиці Hive, створюючи схеми.
JSON ДЛЯ ВІЛЬНОГО СТОЛА
У цьому ми збираємося завантажувати дані 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), він отримає значення enama sal з таблиці json_guru
- Значення, що зберігаються всередині JSON Hierarchy у 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 TABLE
У цьому ми збираємося завантажувати складні дані 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;
Вулик у проектах у режимі реального часу - коли і де використовувати
Коли і де використовувати вулик в екосистемі Hadoop:
Коли
- Під час роботи з потужними та потужними статистичними функціями щодо екосистеми Hadoop
- При роботі зі структурованою та напівструктурованою обробкою даних
- Як інструмент зберігання даних з Hadoop
- Можна застосовувати дані в режимі реального часу за допомогою HBASE, Hive
Де
- Для зручності використання ETL та інструменту зберігання даних
- Забезпечити середовище типу SQL та запитувати як SQL, використовуючи HIVEQL
- Використовувати та розгортати спеціальні сценарії мап та редукторів для конкретних вимог клієнта
- Далі