Hive ETL: завантаження JSON, XML, приклади текстових даних
Hive як ETL та інструмент сховища даних на додачу Hadoop екосистема надає такі функції, як моделювання даних, маніпулювання даними, обробка даних і запит до даних. Вилучення даних у Hive означає створення таблиць у Hive і завантаження структурованих і напівструктурованих даних, а також запит даних на основі вимог.
Для пакетної обробки ми збираємося написати настроювані сценарії за допомогою спеціальної карти та скоротити сценарії за допомогою мови сценаріїв. Це забезпечує SQL як середовище та підтримка для легкого запиту.
Робота зі структурованими даними за допомогою Hive
Структуровані дані означають, що дані мають правильний формат рядків і стовпців. Це більше схоже СУБД дані з відповідними рядками та стовпцями.
Тут ми збираємося завантажити структуровані дані, наявні в текстових файлах у Hive
Крок 1) На цьому кроці ми створюємо таблицю «employees_guru» з такими назвами стовпців, як Id, Name, Age, Address, Salary та Department, із типами даних співробітників.
З наведеного вище знімка екрана ми можемо спостерігати наступне,
- Створення таблиці “employees_guru”
- Завантаження даних із Employees.txt у таблицю “employees_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 TABLE
У цьому випадку ми збираємося завантажити дані XML у таблиці Hive і отримати значення, що зберігаються в тегах XML.
Крок 1) Створення таблиці “xmlsample_guru” зі стовпцем str із типом даних string.
З наведеного вище знімка екрана ми бачимо наступне
- Створення таблиці “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 (JavaНотація об’єкта сценарію)
Дані Twitter і веб-сайтів зберігаються у форматі JSON. Щоразу, коли ми намагаємось отримати дані з онлайн-серверів, вони повертатимуть файли JSON. Використовуючи Hive як сховище даних, ми можемо завантажувати дані JSON у таблиці Hive шляхом створення схем.
JSON НА ТАБЛИЦЮ 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 TABLE
У цьому випадку ми збираємося завантажити складні дані JSON у таблиці Hive і отримати значення, збережені в схемі JSON
Крок 1) Створення комплексного json_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
- Для використання та розгортання настроюваних сценаріїв карти та редуктора для конкретних вимог клієнта