Big data platforms. Main objectives, features and advantages
This paper presents an overview of existing big data platforms. The goal is to identify the main problems and solutions that exist in this area, as well as the properties of the big data platforms that determine their capabilities, advantages or weaknesses in solving these problems. The relevance of...
Збережено в:
Дата: | 2019 |
---|---|
Автор: | |
Формат: | Стаття |
Мова: | Ukrainian |
Опубліковано: |
Інститут програмних систем НАН України
2019
|
Теми: | |
Онлайн доступ: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/369 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Problems in programming |
Репозитарії
Problems in programmingid |
pp_isofts_kiev_ua-article-369 |
---|---|
record_format |
ojs |
resource_txt_mv |
ppisoftskievua/e7/2636a781431cf5faa5ce3ae65ff655e7.pdf |
spelling |
pp_isofts_kiev_ua-article-3692024-04-28T11:05:26Z Big data platforms. Main objectives, features and advantages Платформы больших данных. Основные задачи, свойства и достоинства Платформи великих даних. Основні задачі, властивості та переваги Zakharova, O.V. big data platform; machine learning; Apache Hadoop; document-oriented storage; «key-value» storage; column storage; graph storage; data management; distributed storage; stream computing; NoSQL data bases; distributed file system; MapReduce; TaskTracker; UDC 004.94 платформа больших данных; машинное обучение; Hadoop; документоориентированное хранилище; хранилище типа «ключ-значение»; колоночное хранилище; графовое хранилище; управление данными; распределенное хранение; потоковые вычисления; NoSQL базы данных; расп УДК 004.94 платформа великих даних; машинне навчання; Apache Hadoop; документоорієнтоване сховище; сховище типу «ключ-значення»; стовпчикове сховище; графове сховище; управління даними; розподілене зберігання; потокові обчислення; NoSQL бази даних; розподілена файл УДК 004.94 This paper presents an overview of existing big data platforms. The goal is to identify the main problems and solutions that exist in this area, as well as the properties of the big data platforms that determine their capabilities, advantages or weaknesses in solving these problems. The relevance of the topic is due to the rapid evaluation of mobile devices and application systems, the corresponding increase in the volume of information and the inability of traditional systems to process such amounts of data in a reasonable time. That is, it is an information technology platform enterprise class that provides the properties and functionality of an application in one solution for developing, deploying, processing and managing big data. The goal of creating and using such platforms is to improve the scalability, availability, performance, and security of organizations working with big data. Big data platforms enable to process multi-structured data in real time and allow different users to use them for various tasks related to using big data. The paper discusses frameworks developed for solving big data problems, analyzes their characteristics, operating principles and capabilities in the context of the problems they are able to solve, it also identifies existing “gaps” and directions for further development. Solving the problems of big data, namely ensuring the effective storage, processing and analysis of data, will make information more useful, and companies that work with big data more competitive.Problems in programming 2019; 3: 101-115 Данная работа представляет обзор существующих платформ больших данных. Цель состоит в определении основных проблем и решений, существующих в этой области, а также свойств платформ больших данных, которые определяют их возможности, достоинства или недостатки в решении этих проблем. Актуальность темы обусловлена стремительным развитием мобильных устройств и прикладных систем, соответствующим ростом объемов информации и неспособностью традиционных систем обрабатывать такие объемы данных в приемлемые сроки. То есть, это платформа информационных технологий класса предприятия, которая обеспечивает свойства и функциональность прикладной системы в одном решении для разработки, разворачивания, обработки и управления большими данными. Цель создания и использования таких платформ заключается в улучшении масштабируемости, доступности, производительности и безопасности организаций, работающих з большими данными. Платформы больших данных позволяют обрабатывать объемные многоструктурные данные в режиме реального времени, а также разным пользователям использовать их для выполнения разных задач с использованием больших данных. Рассматриваются фреймворки, разработанные для решения задач больших данных, анализируются их характеристики, принципы работы, возможности в контексте проблем, которые они способны решать, определяются существующие «пробелы» и направления развития. Решение проблем больших данных, а именно обеспечение эффективного хранения, обработки и анализа данных, позволит сделать информацию более полезной, а предприятия, работающие с большими данными, более конкурентноспособными. Problems in programming 2019; 3: 101-115 Дана робота представляє огляд існуючих платформ великих даних. Мета полягає у визначені основних проблем та рішень, які існують в цій сфері, а також властивостей платформ великих даних, що визначають їх можливості, переваги чи недоліки у вирішенні цих проблем. Актуальність теми обумовлена стрімким розвитком мобільних пристроїв і прикладних систем, відповідним ростом обсягів інформації та нездатністю традиційних систем обробляти таки обсяги даних у придатні терміни. Тобто, це платформа інформаційних технологій класу підприємства, яка забезпечує властивості та функціональність прикладної системи в одному рішенні для розробки, розгортання, обробки та управління великими даними. Метою створення та використання таких платформ є покращення масштабованості, доступності, продуктивності та безпеки організацій, які працюють з великими даними. Платформи великих даних надають можливість обробляти об’ємні багатоструктурні дані в режимі реального часу та дозволяють різним користувачам застосовувати її для виконання різних задач, що пов’язані із використання великих даних. В роботі розглядаються фреймворки, що розроблені для вирішення задач великих даних, аналізуються їх характеристики, принципи роботи, переваги у контексті проблем, які вони здатні вирішувати, визначаються існуючі «прогалини» та напрямки подальшого розвитку. Вирішення проблем великих даних, а саме забезпечення ефективного зберігання, обробки та аналізу даних, дозволить зробити інформацію кориснішою, а підприємства, які працюють з великими даними, конкурентноздатнішими. Problems in programming 2019; 3: 101-115 Інститут програмних систем НАН України 2019-08-21 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/369 10.15407/pp2019.03.101 PROBLEMS IN PROGRAMMING; No 3 (2019); 101-115 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 3 (2019); 101-115 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 3 (2019); 101-115 1727-4907 10.15407/pp2019.03 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/369/371 Copyright (c) 2019 PROBLEMS IN PROGRAMMING |
institution |
Problems in programming |
baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
datestamp_date |
2024-04-28T11:05:26Z |
collection |
OJS |
language |
Ukrainian |
topic |
big data platform machine learning Apache Hadoop document-oriented storage «key-value» storage column storage graph storage data management distributed storage stream computing NoSQL data bases distributed file system MapReduce TaskTracker; UDC 004.94 |
spellingShingle |
big data platform machine learning Apache Hadoop document-oriented storage «key-value» storage column storage graph storage data management distributed storage stream computing NoSQL data bases distributed file system MapReduce TaskTracker; UDC 004.94 Zakharova, O.V. Big data platforms. Main objectives, features and advantages |
topic_facet |
big data platform machine learning Apache Hadoop document-oriented storage «key-value» storage column storage graph storage data management distributed storage stream computing NoSQL data bases distributed file system MapReduce TaskTracker; UDC 004.94 платформа больших данных машинное обучение Hadoop документоориентированное хранилище хранилище типа «ключ-значение» колоночное хранилище графовое хранилище управление данными распределенное хранение потоковые вычисления NoSQL базы данных расп УДК 004.94 платформа великих даних машинне навчання Apache Hadoop документоорієнтоване сховище сховище типу «ключ-значення» стовпчикове сховище графове сховище управління даними розподілене зберігання потокові обчислення NoSQL бази даних розподілена файл УДК 004.94 |
format |
Article |
author |
Zakharova, O.V. |
author_facet |
Zakharova, O.V. |
author_sort |
Zakharova, O.V. |
title |
Big data platforms. Main objectives, features and advantages |
title_short |
Big data platforms. Main objectives, features and advantages |
title_full |
Big data platforms. Main objectives, features and advantages |
title_fullStr |
Big data platforms. Main objectives, features and advantages |
title_full_unstemmed |
Big data platforms. Main objectives, features and advantages |
title_sort |
big data platforms. main objectives, features and advantages |
title_alt |
Платформы больших данных. Основные задачи, свойства и достоинства Платформи великих даних. Основні задачі, властивості та переваги |
description |
This paper presents an overview of existing big data platforms. The goal is to identify the main problems and solutions that exist in this area, as well as the properties of the big data platforms that determine their capabilities, advantages or weaknesses in solving these problems. The relevance of the topic is due to the rapid evaluation of mobile devices and application systems, the corresponding increase in the volume of information and the inability of traditional systems to process such amounts of data in a reasonable time. That is, it is an information technology platform enterprise class that provides the properties and functionality of an application in one solution for developing, deploying, processing and managing big data. The goal of creating and using such platforms is to improve the scalability, availability, performance, and security of organizations working with big data. Big data platforms enable to process multi-structured data in real time and allow different users to use them for various tasks related to using big data. The paper discusses frameworks developed for solving big data problems, analyzes their characteristics, operating principles and capabilities in the context of the problems they are able to solve, it also identifies existing “gaps” and directions for further development. Solving the problems of big data, namely ensuring the effective storage, processing and analysis of data, will make information more useful, and companies that work with big data more competitive.Problems in programming 2019; 3: 101-115 |
publisher |
Інститут програмних систем НАН України |
publishDate |
2019 |
url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/369 |
work_keys_str_mv |
AT zakharovaov bigdataplatformsmainobjectivesfeaturesandadvantages AT zakharovaov platformybolʹšihdannyhosnovnyezadačisvojstvaidostoinstva AT zakharovaov platformivelikihdanihosnovnízadačívlastivostítaperevagi |
first_indexed |
2025-07-17T09:45:21Z |
last_indexed |
2025-07-17T09:45:21Z |
_version_ |
1838409646473216000 |
fulltext |
Експертні та інтелектуальні інформаційні системи
© О. Захарова, 2019
ISSN 1727-4907. Проблеми програмування. 2019. № 3 101
УДК 004.94 https://doi.org/10.15407/pp2019.03.101
О. Захарова
ПЛАТФОРМИ ВЕЛИКИХ ДАНИХ.
ОСНОВНІ ЗАДАЧІ, ВЛАСТИВОСТІ ТА ПЕРЕВАГИ
Дана робота представляє огляд існуючих платформ великих даних. Мета полягає у визначені основних
проблем та рішень, які існують в цій сфері, а також властивостей платформ великих даних, що визнача-
ють їх можливості, переваги чи недоліки у вирішенні цих проблем. Актуальність теми обумовлена
стрімким розвитком мобільних пристроїв і прикладних систем, відповідним ростом обсягів інформації
та нездатністю традиційних систем обробляти таки обсяги даних у придатні терміни. Тобто, це плат-
форма інформаційних технологій класу підприємства, яка забезпечує властивості та функціональність
прикладної системи в одному рішенні для розробки, розгортання, обробки та управління великими да-
ними. Метою створення та використання таких платформ є покращення масштабованості, доступності,
продуктивності та безпеки організацій, які працюють з великими даними. Платформи великих даних
надають можливість обробляти об’ємні багатоструктурні дані в режимі реального часу та дозволяють
різним користувачам застосовувати її для виконання різних задач, що пов’язані із використання вели-
ких даних. В роботі розглядаються фреймворки, що розроблені для вирішення задач великих даних,
аналізуються їх характеристики, принципи роботи, переваги у контексті проблем, які вони здатні вирі-
шувати, визначаються існуючі «прогалини» та напрямки подальшого розвитку. Вирішення проблем ве-
ликих даних, а саме забезпечення ефективного зберігання, обробки та аналізу даних, дозволить зро-
бити інформацію кориснішою, а підприємства, які працюють з великими даними, конкурентноздатні-
шими.
Ключові слова: платформа великих даних, машинне навчання, Apache Hadoop, документоорієнтоване
сховище, сховище типу «ключ-значення», стовпчикове сховище, графове сховище, управління даними,
розподілене зберігання, потокові обчислення, NoSQL бази даних, розподілена файлова система,
MapReduce, TaskTracker, JobTracker, Apache Spark, обробка великих даних, аналітика великих даних.
Вступ
Сьогодні, в умовах зростаючої кон-
куренції, успіх будь-якої організації визна-
чається можливістю миттєвого доступу до
операційних даних та аналізу цих даних.
Компанії намагаються своєчасно отриму-
вати необхідну інформацію, щоб оператив-
но реагувати на змінення ринку. Але обсяг
операційних даних може бути настільки
великим, що традиційні системи на базі
жорстких дисків не справляються з їх об-
робкою у необхідні терміни. В результаті
керівники не отримують потрібну інфор-
мацію, а між збором даних та їх аналізом
триває занадто багато часу.
Внаслідок технологічної революції,
протягом останніх років постійно зростає
кількість ядер процесорів та обсяг інтегро-
ваної кеш-пам’яті в обчислювальних сис-
темах. Сьогодні обсяг основної пам’яті є
практично не обмеженим, що дозволяє за-
вантажувати дані будь-якого розміру. З
іншого боку, стрімке розширення ринку
мобільних пристроїв та прикладних систем
призвело до того, що інформація для прий-
няття рішень стала доступною для бізнес-
користувачів саме в той момент, коли вона
необхідна. Індустрія обробки інформації
усвідомила вибухове зростання даних, які
складно укласти в реляційні сховища зав-
дяки їх неструктурованій природі та не
можливо швидко привести до ладу внаслі-
док великої швидкості зростання обсягів.
Це дані від багатьох вимірювальних прила-
дів, з потоків повідомлень у соціальних
мережах, метеорологічна інформація та да-
ні журналів подій. Ще одна причина, з якої
існуючі раніше рішення виявилися не при-
датними, – дуже висока вартість зберіган-
ня дійсно великих обсягів даних в реля-
ційних БД великих виробників [1].
Так виник термін “великі дані”. Він
застосовується до наборів даних, які на-
стільки великі, що з ними не можна пра-
цювати, використовуючи традиційні систе-
ми керування даними. Це набори даних,
розмір яких перевищує можливості загаль-
но використовуваних програмних засобів
та систем зберігання для вирішення задач
витягнення, зберігання, управління та об-
робки у допустимий час.
https://doi.org/10.15407/pp2019.03.101
Експертні та інтелектуальні інформаційні системи
102
У таких умовах, організація, щоб
лишатися конкурентоспроможною, повин-
на мати здатність виявляти змінення ситу-
ації на ринку, нові ризики та можливості у
режимі реального часу. Традиційні методи
управління даними та сховища даних не
дозволяють адекватно обробляти та аналі-
зувати дані великих обсягів. Великі дані
потрібно не лише генерувати та радіти їх
обсягу й різноманітності, інформація, яку
вони містять, повинна бути корисною. А
для цього її необхідно правильно зберіга-
ти, обробляти, аналізувати та синтезувати
нові знання з існуючих – тобто робити ви-
води. Це пояснює стрімкий розвиток плат-
форми великих даних на протязі останніх
років.
Платформа великих даних
Платформа великих даних – це ін-
струмент, розроблений постачальниками
програмного забезпечення (ПЗ) для управ-
ління даними з метою покращення масш-
табованості, доступності, продуктивності
та безпеки організацій, які працюють з
великими даними.
Платформа призначена для обробки
в режимі реального часу об’ємних багато-
структурних даних. Різні користувачі мо-
жуть її використовувати для виконання
різних задач. Так, наприклад, інженери да-
них – для очищення, агрегування та підго-
товки даних для аналізу, бізнес-користува-
чі – для запуску запитів, а вчені вважають
її корисною при аналізі шаблонів з наборів
великих даних за допомогою алгоритмів
машинного навчання.
Це платформа інформаційних тех-
нологій (ІТ) класу підприємства, яка забез-
печує властивості та функціональність
прикладної системи в одному рішенні для
розробки, розгортання, обробки та управ-
ління великими даними. Програмне забез-
печення (ПЗ) аналітики великих даних
допомагає розкрити приховані шаблони,
невідомі кореляції, ринкові тенденції,
вподобання клієнтів та іншу корисну ін-
формацію з широкого різноманіття наборів
даних.
Головне питання організації роботи
з великими даними на корпоративному
рівні: обрати реляційну (SQL) чи нереля-
ційну (NoSQL) базу даних? Головною
причиною відмови від SQL баз даних (БД)
є не правильна робота з самою базою. Бі-
льшість компаній не можуть собі дозво-
лити тримати спеціалістів для постійного
налагодження баз даних, а для того, щоб
розпочати використовувати NoSQL БД не
потрібно додаткових розробок. При роз-
робці NoSQL БД особлива увага приділя-
ється забезпеченню високої масштабова-
ності та гнучкості рішень. NoSQL [2] БД –
це, перш за все, швидкий доступ до даних,
що зберігаються в оперативній пам’яті,
гнучкість використання та можливість
швидкого розподілення даних між вузла-
ми. Однак можливі такі сценарії, коли
дані згодом виходять з-під контроля або
вже просто не вміщуються в оперативній
пам’яті.
Основні властивості та переваги
платформ великих даних
До основних властивостей плат-
форм великих даних можна віднести:
забезпечення ефективного збе-
рігання та обробки даних, а також їх ін-
теграції, управління, витягнення, тран-
сформації, та завантаження (ETL);
використання системи Hadoop:
забезпечують функції для масового збері-
гання даних будь-якого типу, величезну
потужність обробки та можливість оброб-
ляти практично необмежену кількість па-
ралельних задач;
потокові обчислення: забезпе-
чують функції для затягування даних у по-
тік, обробки даних та передачі їх назад
єдиним потоком;
функції розвиненої аналітики
та машинного навчання;
функції управління життєвим
циклом контенту та документів;
функції інтеграції великих да-
них з будь-якого джерела;
управління даними: містять ком-
плексну систему безпеки, рішення для
управління даними та забезпечують дотри-
мання вимог щодо захисту даних.
До головних переваг платформи ве-
ликих даних та ПЗ аналітики великих да-
них можна віднести:
Експертні та інтелектуальні інформаційні системи
103
точні дані. Платформа великих
даних пропонує точні дані, що сприяє
прийняттю правильних рішень. Її ана-
літичні засоби зменшують ризик отриман-
ня недостовірних даних, які виникають
внаслідок використання сирих, не проана-
лізованих даних;
підвищення ефективності пра-
ці. Платформа спрощує отримання дже-
рела необхідної інформації. Пропонує та-
кож інформацію, що може стати у нагоді в
майбутньому, таким чином, зберігаючи час
та підвищуючи ефективність роботи кори-
стувачів;
швидкі відповіді на складні пи-
тання. Ефективне управління бізнесом
вимагає швидких адекватних відповідей на
критичні питання, які впливають на успі-
шність бізнес-операції. Платформа вели-
ких даних дозволяє робити це більш на-
дійно. Деякі критичні питання, відповіді на
які вимагають тижнів або місяців, за наяв-
ності правильного інструменту можуть
вирішуватись лише за кілька годин або
хвилин;
безпека даних. Забезпечує без-
печну інфраструктуру, яка гарантує безпе-
ку даних.
Задачі та ПЗ великих даних
Програмні засоби великих даних
можна класифікувати за задачами, які во-
ни вирішують. У процес створення рі-
шення повинні бути інтегровані різні за-
соби для зберігання, управління та аналізу
великих даних. Інструменти великих да-
них відповідно до їх задач включають
наступні групи:
ПЗ зберігання великих даних;
ПЗ управління великими даними;
ПЗ обробки великих даних;
методи та засоби візуалізації ве-
ликих даних;
методи та засоби аналітики вели-
ких даних.
Таким чином, відповідний фрейм-
ворк [3] повинен відображати інструменти
для зберігання, управління та обробки ве-
ликих даних, інструменти та методи аналі-
тики, візуалізації та оцінювання у різні
етапи процесу побудови рішення. Аналіти-
ка великих даних може застосовуватись до
виявлення знань та обгрунтованого прий-
няття рішень.
Зберігання та управління
великими даними
Традиційні методи структурованого
зберігання та витягування даних, такі як
реляційні БД, вітрини або SQL сховища
даних, мають певні обмеження, які роблять
їх не придатними для роботи з великими
даними, а саме вони:
не дозволяють включати нові
джерела даних без їх попереднього очище-
ння та інтеграції,
не дозволяють швидко виробляти
та адаптувати дані,
не забезпечують можливості син-
хронізації логічного та фізичного вмісту
БД з швидкою еволюцією даних,
не забезпечують поточні потреби
аналізу даних.
Необхідність порівняно недорогого
зберігання та обробки гігантських обсягів
неструктурованої інформації призвела
до створення спеціалізованого ПЗ, яке до-
зволило розподіляти дані за кластерами
з сотень та тисяч вузлів, а також обробля-
ти їх у паралельному режимі. Засоби но-
вого покоління для зберігання та управ-
ління не структурованими (не реляційни-
ми) даними, а саме NoSQL БД, дозволили
використовувати репозиторій даних без
додаткових розробок, підготовки або на-
лагодження, забезпечили високу масшта-
бованість, розподілення даних між вузла-
ми та швидкий доступ до даних, що збері-
гаються в оперативній пам’яті. NoSQL [2]
БД дозволяють записувати задачі управ-
ління даними на прикладному рівні. Кож-
на база, в даному випадку, є колекцією
незалежних документів, де кожний до-
кумент підтримує власні дані та схеми та
може мати метадані – оглядову інформа-
цію про дані документа. Прикладна про-
грама може мати доступ до багатьох БД,
розташованих у різних місцях.
Нові вимоги до зберігання, управ-
ління та обробки даних обумовили виник-
нення Hadoop – фреймворка з відкритим
кодом під крилом Apache Sotware Foundati-
Експертні та інтелектуальні інформаційні системи
104
on, що дозволяє створювати розподілені
системи на базі відносно недорогого об-
ладнання масового попиту. З часом Hadoop
був розширений набором бібліотек та ути-
літ, та сформував навколо себе екосистему
проектів з розподіленої обробки даних.
Розглянемо його більш детально.
Apache Hadoop фреймворк
Apache Hadoop [4] забезпечує роз-
поділене зберігання та обробку дуже вели-
ких наборів даних на комп’ютерних клас-
терах з промислового комп’ютерного об-
ладнання. Тобто, замість того, щоб вико-
ристовувати один великий комп’ютер,
Hadoop дозволяє кластеризувати апаратне
забезпечення для паралельного виконання
аналізу масивних наборів даних. Сервіси
Hadoop забезпечують виконання на-
ступних функцій:
зберігання даних;
обробка даних;
доступ до даних;
управління даними;
безпека та
операції з даними.
Екосистема Hadoop [5, 10] склада-
ється з багатьох модулів (процедур, бібліо-
тек та властивостей), які розглядаються як
частини фреймворка. Кожний модуль ви-
конує певну задачу, необхідну для вико-
нання аналітики великих даних. Ядро
Hadoop складається з двох основних моду-
лів: розподіленої файлової системи Hadoop
Distributed File System (HDFS) та базового
інструменту для обробки даних MapReduce
та підтримується майже всіма відомими
постачальниками систем великих даних.
Також до найбільш використовуваних від-
носять планувальник завдань та управлін-
ня кластерами YARN і множину загальних
утиліт Hadoop Common.
Розподілена файлова система.
HDFS [4] дозволяє зберігати дані у просто-
му доступному форматі. Це досягається
завдяки використанню великої кількості
пов’язаних пристроїв зберігання даних та
механізму MapReduce для їх обробки.
"Файлова система" є методом, що
застосовується комп’ютером для зберіган-
ня даних таким чином, щоб їх можна було
знаходити та використовувати. Зазвичай,
він визначається операційною системою
(ОС) комп’ютера, але система Hadoop ви-
користовує власну файлову систему, яка
надбудовується "над" файловою системою
хост-комп’ютера. Це означає, що доступ
до даних можна отримати з будь-якого
комп’ютера, на якому встановлена будь-
яка підтримувана ОС.
Hadoop розділяє файли на великі
блоки та розподіляє їх між вузлами у кла-
стері. Потім він передає пакетований код
у вузли для обробки даних у паралельно-
му режимі. В даному підході вузли мані-
пулюють даними, до яких вони мають
доступ. Це дозволяє обробляти набір да-
них швидше та ефективніше, ніж в більш
традиційній архітектурі суперкомп’ютера,
яка спирається на паралельну файлову
систему, де обчислення та дані розподі-
ляються у високошвидкісній мережі.
HDFS є розподіленою, масштабова-
ною та портативною файловою системою,
що написана на Java для Hadoop фрейм-
ворк. Вона забезпечує виконання команд
та Java інтерфейсів (API), подібних до ін-
ших файлових систем, для зв'язку вико-
ристовує протокол TCP/IP. Клієнти для
спілкування один з одним використову-
ють виклики віддаленої процедури (RPC).
Надійність зберігання даних досягається
шляхом реплікації між декількома хоста-
ми. Щоб зменшити трафік у мережі, Hado-
op необхідно знати, які сервери є най-
ближчими до даних або інформації, яка
може забезпечити встановлення мостів з
HDFS.
Hadoop може працювати безпосе-
редньо з будь-якою розподіленою файло-
вою системою, яка може бути встановлена
основною операційною системою.
Прикладами файлових систем, що
підтримуються Hadoop (окрім HDFS), є:
FTP (зберігає всі свої дані на від-
далених FTP-серверах);
сховище об’єктів Amazon S3
(Simple Storage Service), орієнтоване на
кластери, які розміщені на інфраструктурі
Amazon Elastic Compute Cloud типу сер-
вер-на-запит;
Windows Azure Storage Blobs
(WASB), розширення HDFS, яке дозволяє
https://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud
http://azure.microsoft.com/en-us/documentation/articles/hdinsight-use-blob-storage
http://azure.microsoft.com/en-us/documentation/articles/hdinsight-use-blob-storage
Експертні та інтелектуальні інформаційні системи
105
розподілення Hadoop для доступу до даних
в Azure блог-сховищах без постійного пе-
реміщення даних у кластер.
Існують також файлові системи, які
не розповсюджуються разом з Hadoop, але
постачаються як альтернативні, що вико-
ристовуються за замовченням, з де-якими
його комерційними рішеннями. Наприк-
лад: IBM General Parallel File System,
Parascale, Appistry (драйвер файлової сис-
теми Hadoop для використання з CloudIQ
Storage), драйвер файлової системи IBRIX
Fusion, альтернативна файлова система
MapR FS, що заміщує HDFS системою
повністю випадкового доступу для читан-
ня/запису файлів.
Модуль MapReduce. MapReduce
названий за двома головними операціями,
які він виконує, а саме: читання даних з
БД і переведення їх у формат, що підхо-
дить для аналізу (map), та виконання ма-
тематичних операцій (reduce).
Функціонування MapReduce [11]
забезпечується двома компонентами:
JobTracker та TaskTracker. Клієнтські при-
кладні програми направляють завдання
MapReduce до JobTracker, JobTracker
працює з доступними у кластері вузлами
TaskTracker, щоб наблизитись до по-
трібних для виконання цих завдань даних.
JobTracker відомо, які вузли містять дані,
та які інші комп’ютери є поруч (рис. 1).
Якщо робота не може бути викона-
на на тому вузлі, де розміщені дані, пере-
вага надається вузлам, що розміщені на
тій самій стойці. Таким чином, скоро-
чується трафік на головній магістральній
мережі. Якщо TaskTracker виходить з ладу
або зазнає затримку, здійснюється пере-
планування частини завдань. TaskTracker
в кожному вузлі породжує окремий про-
цес віртуальної машини Java (JVM). Це
дозволяє запобігти виходу з ладу
TaskTracker, якщо запущене на виконання
завдання зруйнує свою JVM. Кожні кілька
хвилин з TaskTracker до JobTracker над-
силається імпульс, щоб перевірити його
стан. Стани JobTracker і TaskTracker та
інформація про їх роботу відображаються
у контейнері сервлетів Jetty та її можна
також переглядати у веб-браузері [11].
❶ Дуже великий набір даних. HDFS
зберігає репліки даних у вузлах даних.
❷ Клієнт виконує Map та Reduce за-
вдання на конкретному наборі даних та відси-
лає їх JobTracker.
❸ JobTracker розподіляє завдання се-
ред TaskTracker. TaskTracker запускає меха-
нізм відображення (map), результат роботи
якого зберігається у HDFS.
❹ Запускається завдання Reduce на
даних, що вже оброблені завданням Map
Рис. 1. Робота Map Reduce модуля
Слід зазначити, що даний підхід має
певні обмеження:
Алгоритм розподілення роботи
TaskTracker є дуже простим. Кожний
TaskTracker має множину наявних слотів.
Кожна активна задача займає один слот.
JobTracker розподіляє роботу на
TaskTracker з наявним слотом, найближ-
чий до даних. При цьому не приймається
до уваги поточна завантаженість системи
призначеної машини – її реальна доступ-
ність.
Якщо один TaskTracker дуже по-
вільний, це може затримати роботу
MapReduce в цілому. Однак, коли дозволе-
не паралельне виконання, окрема задача
може виконуватися на декількох підпоряд-
кованих вузлах.
В первинному варіанті, для впоряд-
кування завдань з робочої черги, Hadoop
підтримує First-In-First-Out (FIFO) плану-
вання та опціональне планування пріори-
тетів, які використовуються за замовчен-
ням. Згодом до планувальника завдань бу-
https://en.wikipedia.org/wiki/IBM_General_Parallel_File_System
https://en.wikipedia.org/w/index.php?title=Parascale&action=edit&redlink=1
https://en.wikipedia.org/w/index.php?title=Appistry&action=edit&redlink=1
https://en.wikipedia.org/wiki/IBRIX_Fusion
https://en.wikipedia.org/wiki/IBRIX_Fusion
https://en.wikipedia.org/wiki/MapR_FS
https://en.wikipedia.org/wiki/MapReduce
https://en.wikipedia.org/wiki/Java_virtual_machine
https://en.wikipedia.org/wiki/Jetty_(web_server)
https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)
Експертні та інтелектуальні інформаційні системи
106
ла додана можливість використовувати
альтернативні планувальники, такі як Fair
(Facebook AI Research) або Capacity. Пла-
нувальник Fair [16] є розробкою Facebook.
Розробники мали за мету забезпечити
швидку відповідь для невеликих завдань та
якість сервісу для виробничих завдань.
Завдання групуються у пули і ресурси роз-
поділяються між цими пулами. За замов-
ченням для кожного користувача є ок-
ремий пул, так що кожний користувач от-
римує рівну частку кластера. На відміну
від планувальника Hadoop, що використо-
вується за замовченням та формує чергу
завдань, Fair дозволяє коротким завданням
завершуватись у розумний час, не очікую-
чи довго своєї черги. Це також є простим
способом спільного використання кластера
між кількома користувачами, яке також
може працювати з пріоритетами завдань.
Ці пріоритети використовуються як ваги
для визначення частки загального часу
обчислення, яке отримує кожне завдання.
Планувальник Capacity, розробле-
ний Yahoo, підтримує декілька властивос-
тей, подібних властивостям Fair, а саме:
кожній черзі виділяється частка загального
ресурсу, вільні ресурси виділяються чер-
гам за їх потужністю. У черзі завдання з
більшим пріоритетом мають пріорітетні-
ший доступ до її ресурсів.
HDFS не обмежується MapReduce
завданнями. Вона може працювати з інши-
ми прикладними програмами, багато з
яких є розробками Apache, наприклад, база
даних HBase, система машинного навчан-
ня Apache Mahout, система Apache Hive
Data Warehouse. Теоретично, Hadoop може
використовуватися для будь якого типу
завдань, які є швидше пакетно-орієнтова-
ними, ніж тими, що виконуються у реаль-
ному часі, а також для завдань з дуже ін-
тенсивними даними і завдань, для яких ко-
рисна паралельна обробка даних. Hadoop
також може використовуватися для допов-
нення системи реального часу, такої як, на-
приклад, лямбда архітектура, Apache
Storm, Flink або Spark.
Hadoop Common та планувальник
Yarn. Hadoop Common забезпечує інстру-
менти, які дозволяють комп’ютерним сис-
темам користувача читати дані, що зберіга-
ються у файловій системі Hadoop.
YARN керує ресурсами систем, які
зберігають дані та виконують їх аналіз.
Використання Hadoop. Hadoop та-
кож містить безліч інших інструментів з
відкритим кодом, призначених для ство-
рення додаткових функцій на компонентах
ядра Hadoop.
Так, Apache Tez є фреймворком нас-
тупного покоління, який може використо-
вуватися замість Hadoop MapReduce, в яко-
сті двигуна. Amazon EMR включає конек-
тор EMRFS, який дозволяє Hadoop викори-
стовувати для зберігання даних сховище
Amazon S3. Amazon EMR також може ви-
користовуватися для легкого встановлення
та налаштування у кластері таких інстру-
ментів, як Hive, Pig, Hue, Ganglia, Oozie та
HBase. Окрім Hadoop на Amazon EMR мо-
жна запускати інші фреймворки, такі як
Apache Spark для обробки даних у пам'яті
або Presto для виконання інтерактивних
запитів.
Гнучка природа системи Hadoop до-
зволяє компаніям, коли вони потребують
змін, додавати або змінювати власну сис-
тему даних, використовуючи дешеві та
легко-доступні частини від будь-яких пос-
тачальників інформаційних систем. Сьо-
годні Hadoop є найбільш використову-
ваною системою для зберігання та обробки
даних на виробничому апаратному забез-
печенні. Hadoop використовують майже
всі великі постачальники он-лайн продук-
тів, та кожний має можливість його вільно
модифікувати відповідно до своїх цілей. Ці
зміни, які вносять до ПЗ експерти, наприк-
лад, Amazon чи Google, відсилаються до
спільноти розробників, де вони часто вико-
ристовуються в подальшому для вдоскона-
лення "офіційного" продукту. Така форма
колаборативної розробки є ключовою вла-
стивістю ПЗ з відкритим кодом.
Слід зазначити, що використання
базових модулів Hadoop Apache є склад-
ним навіть для фахівця галузі інформацій-
них технологій, тому були розроблені ко-
мерційні версії продукту такі, як наприк-
лад, Cloudera, що спрощують задачу інста-
ляції та запуску Hadoop, а також пропону-
ють послуги навчання та підтримки. Завдя-
https://en.wikipedia.org/wiki/HBase
https://en.wikipedia.org/wiki/Apache_Mahout
https://en.wikipedia.org/wiki/Apache_Hive
https://en.wikipedia.org/wiki/Data_Warehouse
https://tez.apache.org/
Експертні та інтелектуальні інформаційні системи
107
ки гнучкій природі Hadoop, компанії при
розширенні бізнесу мають можливість ко-
регувати та розширювати операції аналізу
даних. Підтримка спільноти відкритого ко-
ду робить аналіз великих даних доступним
для кожного.
Apache Spark
Apache Spark – фреймворк (містить
більш ніж 80 операторів для роботи з да-
ними) з відкрититм кодом, який був ство-
рений для розподіленої обробки великих
даних. На відміну від класичного об-
робника з ядра Hadoop, що реалізує дво-
рівневу концепцію MapReduce з дисковим
сховищем, він використовує спеціалізо-
вані примитиви для рекурентної обробки
в оперативній пам’яті, завдяки чому доз-
воляє отримувати значне прискорення
роботи для деяких класів задач. Зокрема,
можливість багатократного доступу до
даних користувача, що завантажені в опе-
ративну пам’ять, робить бібліотеку дуже
привабливою для алгоритмів машинного
навчання. Фактично, Spark є переос-
мисленим MapReduce, але працює у 10-
100 разів швидше, залежно від того,
працює він в пам’яті або на диску. Spark
підтримує мови програмування Scala,
Python, Java, R.
Головним поняттям у Spark є Resili-
ent Distributed Dataset (RDD) [14] – це роз-
поділена структура даних, яка розміщуєть-
ся в оперативній пам’яті (рис. 2). Кожний
RDD є фрагментом даних, що розподілені
по вузлах кластера. RDD є незмінними
структурами, тому після виконання перет-
ворень створюються нові RDD. RDD об-
робляються паралельно за допомогою тра-
нсформацій/дій, які виконуються одночас-
но во всіх розділах (partition). RDD є від-
мовостійкими: якщо розділ втрачається в
результаті відмови вузла, він може бути
відновлений з вихідних джерел.
Рис. 2. Розподілення RDD
Фактично RDD являє собою набір
даних, над яким можна виконувати пере-
творення двох типів: трансформації та дії.
Відповідно, вся робота з цими структурами
полягає у послідовності цих перетворень.
Трансформація. Як правило, перет-
ворює якимось чином елементи даного на-
бору даних. Результатом застосування її до
RDD є новий RDD. Далі наведений непов-
ний перелік найрозповсюдженіших транс-
формацій, кожна з яких повертає новий
RDD (рис. 3):
map(f) – застосовує функцію f до
кожного елемента набора даних;
filter(f) – повертає всі елементи
набору даних, на яких функція f повернула
істинне значення;
distinct([numTasks]) – повертає
набір даних, який містить унікальні еле-
менти вихідного набору даних;
Також підтримуються наступні опе-
рації над множинами:
union(Dataset) – об’єднання з на-
бором даних Dataset,
intersection(Dataset) – перетин з
набором даних Dataset,
cartesian(Dataset) – результатом
операції є новий набір даних, який містить
пари (A,B), де А належить вихідному на-
бору даних, а В – набору даних Dataset.
Рис. 3. Робота з RDD
https://ru.bmstu.wiki/index.php?title=Hadoop&action=edit&redlink=1
https://ru.bmstu.wiki/MapReduce
Експертні та інтелектуальні інформаційні системи
108
Дії. Застосовуються, коли необхід-
но матеріалізувати результат – як прави-
ло, зберегти дані на диску, або вивести
частину даних у консоль. Найбільш роз-
повсюдженими діями, які можна застосу-
вати до RDD, є:
saveAsTextFile(path) – зберігає
дані у текстовому файлі (hdfs) на локальну
машину або у будь-яку іншу файлову сис-
тему, яка підтримується, path визначає
шлях для збереження файлу;
collect() – повертає елементи на-
бора даних у вигляді масива. Як правило,
використовується після застосування до
набору даних фільтрів та перетворень для
візуалізації або додаткового аналізу ре-
зультату;
take(n) – повертає у вигляді маси-
ва перші n елементів набору даних;
count() – повертає кількість еле-
ментів у наборі даних;
reduce(f). Функція f (приймає на
вхід 2 аргументи, повертає одне значення)
повинна обов’язково бути комутативною
та асоціативною.
Spark не змушує думати в парадигмі
MapReduce, а дозволяє створювати зрозу-
мілий код, який спрямований саме на вико-
нання поставленої бізнес-задачі. Фрейм-
ворк бере на себе розподілення та фраг-
ментацію кода та даних, які автоматично
передаються на кластер.
Spark має також колекцію бібліотек
(набір готових алгоритмів, підходів та
практик), що дозволяють комбінувати іс-
нуючі рішення в межах одного програмно-
го кода для досягнення поставленої мети.
На цей час Spark містить наступні біблі-
отеки:
Spark SQL;
Spark Streaming (аналіз у реаль-
ному часі);
MLib (машинне навчання);
GraphX (робота з графами).
Spark SQL. Це модуль Apache
Spark, який є частиною ядра Spark та інте-
грує реляційну обробку даних та проце-
дурний API Spark. Він може працювати ра-
зом з Hive (HiveQL/ SQL) або його заміщу-
вати. Окрім цього, модуль здатний взаємо-
діяти з інструментами бізнес-аналітики.
Spark SQL підтримує реляційну об-
робку даних як в межах програм Spark (че-
рез RDD), так і з зовнішніх джерел даних.
Він може взаємодіяти з новими джерелами
даних, включаючи слабоструктуровані да-
ні та зовнішні бази даних, що підтримують
федеративні запити.
Spark SQL реалізує та оптимізує ре-
ляційну обробку, підтримуючи наступні
підходи:
перетворення даних у більш ефе-
ктивні формати (з точки зору сховища,
мережі та операцій введення/ виведення),
зокрема, в різні формати, що орієнтовані
на стовбці (columnar format);
розбиття даних на секції;
зменшення кількості операцій
читання на основі статистики;
оптимізація операцій над дани-
ми;
виконання оптимізації наскільки
можливо пізніше, коли доступна вся інфо-
рмація по конвейєрах даних.
Spark SQL використовує оптиміза-
тор запитів Catalyst для інтелектуального
планування запитів.
Spark SQL може підтримувати па-
кетний та потоковий SQL. Ядро Spark за-
безпечує обробку пакетних навантажень
через RDD. RDD можуть посилатися на
статичні набори даних, а за допомогою
розвиненого API Spark можна маніпулю-
вати RDD в оперативній пам’яті із засто-
суванням «ледачих» обчислень.
Spark Streaming. Реалізує абстрак-
цію DStream (discretized stream, дискрети-
зований потік), що являє собою безперер-
вний потік даних. DStream може бути
створений з потоку вихідних даних; на
основі таких джерел, як Kafka або Flume,
або за допомогою виконання операцій з
іншими DStream. По суті, DStream є по-
слідовністю RDD (рис. 4).
Рис. 4. Структура DStream
Експертні та інтелектуальні інформаційні системи
109
RDD, що створений за допомогою
DStream, можна перетворювати у Data-
Frame та виконувати SQL запити до нього.
Доступ до потоку може надаватися для
будь-якої зовнішньої прикладної програ-
ми, що підтримує SQL, за допомогою
JDBC-драйвера. Пакети потокових даних
зберігаються у пам’яті вузла. До цих даних
можна будувати інтерактивні запити, вико-
ристовуючи SQL або API Spark. Для вико-
нання SQL-запитів до Dstream використо-
вується StreamSQL, що поєднує Spark
Streaming з Catalyst. StreamSQL є розши-
ренням SQL, яке додатково забезпечує під-
тримку наступних потокових операцій:
виборка (SELECT) з потоку для
обчислення функцій або фільтрації даних
(за допомогою умови WHERE);
з’єднання (JOIN) потоку з одним
або декількома наборами даних для ство-
рення нового потоку;
застосування віконних функцій
та виконання агрегацій. Потік можна на-
лаштувати таким чином, щоб він ство-
рював набори даних обмеженого розміру.
За допомогою віконних функцій можна
виконувати складний відбір повідомлень
на основі значень полей. Після створення
обмеженого пакета можна виконувати ана-
літику на ньому.
В основу підходу для реалізації
аналітики реального часу покладено лямб-
да-архітектуру, що застосовується для
створення аналітичних систем реального
часу в контексті великих потокових даних
(рис. 5).
Рис. 5. Логічна схема реалізації
аналітики великих даних в реальному часі
за допомогою Spark SQL
MLib. Бібліотека для машинного
навчання. Її метою є зробити машинне нав-
чання масштабованим та простим. Вона
містить розповсюджені алгоритми і утіліти
машинного навчання, та дозволяє розпара-
лелювати на кластері алгоритми машинно-
го навчання (класифікація, регресія, клас-
теризація і т. і.) лише за пару строк коду.
Окрім цього, SparkMLib якісно працює з
локальними даними, використовуючи па-
кет лінійної алгебри Breeze. MLib має доб-
ре продуманий API, працює з даними у
будь-якому форматі на базі Hadoop та не
потребує попереднього встановлення.
GraphX. Розподілений фреймворк
обробки графів на основі Apache Spark.
Графи є наявною та простою для розумін-
ня моделлю даних. Розподілені обчислення
кардинально спростили зберігання та об-
робку графів.
Головним механізмом ітерації графа
в GraphX є розроблений Google алгоритм
Pregel. Головною ідеєю цього алгоритму є
передача повідомлень між вузлами у графі,
які називають супер кроками завдяки пос-
лідовності ітерацій. Ітерація часто форму-
ється як ”think like a vertex”, тобто стан по-
точного вузла залежить лише від стану
його сусідів. Використання Pregel є особ-
ливо доцільним, коли задачу складно вирі-
шити за допомогою звичайного
MapReduce.
Головним примитивом для обходу
графа у GraphX є триплет: поточний вузол,
вузол, до якого здійснюється перехід, та
ребро між ними. Pregel вимагає визначення
відстані між вузлами за замовченням, як
правило, це PositiveInfinity – UDF (user
defined function) функція для кожного вуз-
ла, що дозволяє обробити вхідне повідом-
лення та порахувати наступний вузол, а та-
кож UDF функції для злиття двох вхідних
повідомлень. Ці функції повинні бути ко-
мутативними та асоціативними [15].
GraphX містить статичну та дина-
мічну версії реалізації алгоритму
PageRank, який для кожного вузла графа
призначає вагу серед решти вузлів. На-
приклад, якщо користувач Твітера має ве-
лику кількість підписок від інших користу-
вачів, то він буде мати високий рейтинг,
тобто, його можна буде легко знайти у по-
шуковій системі. Статична версія має фік-
совану кількість ітерацій, тоді як динаміч-
https://uk.wikipedia.org/w/index.php?title=%D0%93%D1%80%D0%B0%D1%84_(%D0%B0%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%82%D0%BD%D0%B8%D0%B9_%D1%82%D0%B8%D0%BF_%D0%B4%D0%B0%D0%BD%D0%B8%D1%85)&action=edit&redlink=1
https://stanford.edu/~rezab/classes/cme323/S15/notes/lec8.pdf
Експертні та інтелектуальні інформаційні системи
110
на версія буде працювати доки рейтинг не
почне зходитися до заданого значення.
Через те що GraphX побудований на
основі незмінних RDD, графи теж незмін-
ні, тому GraphX непридатний для роботи з
графами, які оновлюються, тим більше
транзакціями, як у графових БД.
GraphX надає два окремі API для
реалізації масово паралельних алгоритмів
(таких як PageRank): Pregel-подібний та
більш загальний — MapReduce API.
Основні типи NoSQL сховищ
На сьогодні виділяють чотири ос-
новних типи NoSQL сховищ [12]:
сховище «ключ-значення». В
ньому є велика хеш-таблиця, що містить
ключі та значення. (Приклади: Riak,
Amazon DynamoDB);
документоорієнтоване сховище.
Зберігає документи, які складаються з те-
гованих елементів. (Приклад: CouchDB);
стовпчикове сховище. У кожно-
му блоці зберігаються дані лише з однієї
колонки. (Приклади: HBase, Cassandra);
сховище на основі графів. Мере-
жеве сховище, яке використовує вузли та
ребра для відображення та зберігання да-
них. (Приклад: Neo4J).
Сховище типу «ключ-значення».
Відсутність схеми у сховищах типу «ключ-
значення» є важливою перевагою для збе-
рігання великих даних. Ключ може бути
синтетичним або автосгенерованим, а зна-
чення може бути представлено строкою,
JSON, блобом (BLOB, Binary Large Object)
тощо. Такі сховища, як правило, викорис-
товують хеш-таблицю, яка містить уні-
кальний ключ та посилання на певний
об’єкт даних. Існує поняття блока – логіч-
ної групи ключів, що фізично не поєдну-
ють дані у групи. У різних блоках можуть
бути ідентичні ключи.
Продуктивність обробки даних
значно збільшується за рахунок механиз-
мів хешування, що працюють на основі
маппінгів. Щоб прочитати значення, необ-
хідно знати ключ та блок, оскільки на-
справді ключ є хешем (блок + ключ).
Модель «ключ-значення» проста в
реалізації. Такі сховища є доступними та
толерантними до розділення, але явно про-
грають у питаннях погодженості даних. В
якості недоліків сховищ типу «ключ-зна-
чення» можна зазначити:
модель не надає стандартних
можливостей баз даних таких, як атомар-
ність транзакцій або погодженість даних
при одночасному виконанні декількох тра-
нзакцій. Такі можливості повинні надава-
тися самою прикладною програмою.
при збільшенні об’ємів даних,
підтримка унікальних ключей може стати
проблемою. Для її вирішення необхідно
якось ускладнити процес генерації строк,
щоб вони залишалися унікальними серед
дуже великої множини ключей.
Документоорієнтоване сховище.
Дані, які представлені парами ключ-зна-
чення, стискаються як сховище докумен-
тів, що є схожим зі сховищем «ключ-зна-
чення». Але на відміну від сховища
«ключ-значення», документи, які зберіга-
ються, мають визначену структуру та ко-
дування даних. Деякі зі стандартних роз-
повсюджених кодировок, що ви-
користовуються – це XML, JSON та
BSON.
Однією з ключових відмінностей
між сховищами «ключ-значення» та доку-
ментоорієнтованим є те, що останнє
включає метадані, які пов’язані зі вміс-
том, що зберігається. Це надає можли-
вість робити запити на основі цього вміс-
ту. Найпопулярнішими прикладами доку-
ментоорієнтованих сховищ є CouchDB та
MongoDB. CouchDB використовує JSON
для зберігання даних, JavaScript в якості
мови запитів з використанням MapReduce
та HTTP для API. Дані та відношення не
зберігаються в таблицях так, як це відбу-
вається у традиційних реляційних БД, а за
сутністю є набором незалежних докумен-
тів. Той факт, що такі сховища працюють
без схеми, спрощує задачу додавання по-
лів до JSON-документа без необхідності
попереднього заявлення про зміни.
Стовпчикове сховище. У стовпчи-
кових NoSQL сховищах дані зберігаються
у комірках, що сгруповані у стовпчики, а
не строки даних. Стовпчики логічно гру-
пуються у стовпчикові сімейства. Стовп-
https://uk.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84%D0%BE%D0%B2%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%B8%D1%85
https://uk.wikipedia.org/wiki/%D0%9C%D0%B0%D1%81%D0%BE%D0%B2%D0%BE-%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0_%D0%B0%D1%80%D1%85%D1%96%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0
https://uk.wikipedia.org/wiki/PageRank
Експертні та інтелектуальні інформаційні системи
111
чикові сімейства можуть складатися з
практично необмеженої кількості стовп-
чиків, які можуть створюватися під час
роботи програми або під час визначення
схеми. Читання та запис відбувається із
використанням стовпчиків, а не строк.
Порівняно зі зберіганням даних у
строках, як у більшості реляційних БД,
переваги зберігання у стовпчиках полягає
у швидкому пошуці/доступі та агрегації
даних. Реляційні БД зберігають кожну
строку як безперервний запис на диску.
Різні строки зберігаються у різних місцях
на диску, в той час як стовпчикові схови-
ща зберігають всі комірки, що відносяться
до стовпчика, як безперервний запис, що
прискорює пошук/доступ.
Стовпчикові сховища використову-
ють наступну модель даних:
стовпчикове сімейство – структу-
ра, яка може легко групувати колонки та
суперколонки;
ключ – постійне ім’я запису. У
ключів може бути різна кількість стовп-
чиків, тому сховище може розширюватися
нерівномірно;
простір ключів – визначає зов-
нішній рівень організації, як правило, ім’я
прикладної програми/БД.
стовпчик – має впорядкований
список елементів – кортежів з іменами та
значеннями.
Найвідомішими представниками
стовпчикових сховищ є Google BigTable та
HBase з Cassandra.
BigTable є високопродуктивним,
стислим та пропрієтарним сховищем даних
від Google. Воно має наступні атрибути:
розрідженість – деякі комірки
можуть бути порожніми;
розподіленість – дані розділені
між багатьма вузлами;
постійність – дані зберігаються
на диску;
багатомірність – більш ніж одне
вимірювання;
співставлення – ключ та значен-
ня;
відсортованість.
На стовпчики можна посилатися за
допомогою стовпчикового сімейства.
Графове сховище. У графовому
сховищі немає строгого формату SQL або
представлення таблиць та стовпчиків, за-
мість цього використовується гнучке гра-
фічне представлення, яке ідеально підхо-
дить для вирішення проблем масштабова-
ності. Графові структури використовують-
ся разом із ребрами, вузлами та властиво-
стями, що забезпечує безіндексну суміж-
ність. При використанні графового схови-
ща дані можуть бути легко перетворені з
однієї моделі в іншу (рис. 6).
Рис. 6. Принципи використання графової
моделі
Такі сховища використовують
ребра та вузли для представлення даних.
Вузли пов’язані між собою пев-
ними відношеннями, які представлені реб-
рами між ними.
Вузли та відношення мають деякі
властивості.
Розмічений, спрямований, атрибу-
тований мультиграф (рис. 7) – це граф,
який містить вузли, які помічені певними
властивостями та які мають зв’язки один з
одним, що представлені спрямованими
ребрами. Наприклад, зв’язок «Аліса знає
Боба» виражена ребром з відповідними
властивостями. Будь-який рейтинг «вам
рекомендовано», представлений на різних
сайтах, часто вираховується виходячи з то-
го, як інші користувачі оцінили продукт.
Графові БД відмінно підходять для вирі-
шення такого типу задач.
Граф
Відношення Вузли
Властивості
записи записи
мають мають
Експертні та інтелектуальні інформаційні системи
112
Рис. 7. Приклад атрибутованого
мультиграфу
Прикладами найпопулярніших гра-
фових сховищ є InfoGrid та Infinite Graph.
InfoGrid дозволяє з’єднувати множини ре-
бер та вузлів, що спрощує представлення
набора інформації зі складними взаємними
посиланнями. InfoGrid пропонує два типи
сховищ:
MeshBase — підходить для авто-
номного розгортання;
NetMeshBase — підійде для ве-
ликих розподілених графів та має додатко-
ві можливості для взаємодії з іншими по-
дібними сховищами.
Постачальники та ПЗ
великих даних
В області розробки підходів до ро-
боти з пам’яттю найбільшим чемпіоном є
SAP зі своєю Hana платформою, але, слід
зазначити, що зараз Microsoft та Oracle
також вводять спеціальні опції для роботи
з пам’яттю для своїх провідних баз даних.
Постачальники ПЗ, що фокусуються на
використанні аналітичних БД, включаючи
Actian, HP Vertica та Teradata ввели спеці-
альні опції для співвідношення високих-
ОЗУ-дисків, а також пропонують інстру-
менти для розміщення конкретних даних
у пам’яті для виконання ультра-швидкого
аналізу. Прогрес, що має місце у зростан-
ні пропускної здатності та обчислюваль-
ної потужності, вдосконалив й можли-
вості потокової обробки та проведення
аналізу в реальному часі.
До великих постачальників сервісів
обробки даних [13] можна віднести IBM,
Microsoft, Oracle, SAP, які пропонують
все від ПЗ інтеграції даних та систем ке-
рування базами даних (DBMS) до ПЗ для
бізнес-аналізу та аналітичної обробки, а
також Hadoop опцій для роботи з
пам’яттю та потокової обробки. Teradata
більш вузько зосереджений на керуванні
даними, та подібно Pivotal, він має тісні
зв’язки з лідером аналітичного ринку
SAS.
Багато постачальників пропонують
реалізовані окремі опції хмарних техноло-
гій, але такі розробники, як 1010data та
Amazon Web Services (AWS) використову-
ють хмарну модель у повному обсязі в
своєму ПЗ. З них двох Amazon має най-
ширшу вибірку продуктів і є очевидним
вибором для тих, хто працює з великими
навантаженнями та зберігає велику кіль-
кість даних на AWS платформі. 1010data
має високо масштабований сервіс БД та
підтримує можливості управління інфор-
мацією, бізнес-аналіз та аналітику, що об-
слуговуються в стилі приватної хмари.
Hadoop довів свою користь та пере-
ваги у вартості там, де є екстремальними
об’єм та різноманітність даних. На сього-
дні це найбільш відомий та поширений
програмно-апаратний комплекс для робо-
ти з великими даними. Він виявився на-
стільки гарним, що став фундаментом
декількох комерційних реалізацій на його
основі, а саме: Cloudera, MapR та Horton-
works, кожна з яких пропонує власний
дистрибутив. На сьогодні всі постачаль-
ники традиційних BI-систем, як Micro-
Strategy або SAS, забезпечують інтерфейс
з Hadoop. Виробники MPP-систем (масо-
во-паралельних архітектур) у свою чергу
забезпечують суттєво більш міцну інтег-
рацію з Hadoop, коли дані, що зберігають-
ся і в Hadoop, і в реляційній СКБД, мо-
жуть оброблятися в одному SQL-запиті.
Oracle, IBM, Teradata. Cloudera,
Hortonworks та MapR, що також включили
Hadoop до своїх продуктових лінійок, ро-
блять все можливе, щоб перемістити
Hadoop з високо-масштабованого збері-
гання даних та Map Reduce обробки у світ
аналітики.
Менші постачальники такі як Ac-
tian, InfiniDB/Calpont, HP Vertica, Info-
http://infogrid.org/trac/wiki/MeshBase
http://infogrid.org/trac/wiki/NetMeshBase
Експертні та інтелектуальні інформаційні системи
113
bright та Kognitio, навпаки фокусуються
загалом скоріше на аналітиці, ніж на об-
робці транзакцій.
Такі постачальники аналітики, як
Alpine Data Labs, Revolution Analytics та
SAS, працюють з платформами, які забез-
печуються сторонніми постачальниками
СКБД та дистриб’ютерами Hadoop, хоча,
зокрема, SAS розмиває це розмежування
зі зростаючою підтримкою для середовищ
SAS-керованих рядів даних «у-пам’яті» та
Hadoop. NoSQL та NewSQL СКБД фоку-
суються на високо-масштабованій обробці
транзакцій, а не на аналітиці.
Взагалі програмні засоби для робо-
ти з великими даними не заміщують реш-
ту інструментів обробки, бізнес-аналі-
тики, візуалізації та прогнозування, а ли-
ше допомагають підтримати терабайти
нових даних та спрямовують їх у потрібне
русло.
Так, відповідно до аналітичних
платформ для великих даних, деякі ек-
сперти вважають найбільш універсальною
платформу Pentaho, а для вирішення задач
машинного самонавчання, таких як, на-
приклад, кластеризація, класифікація, ре-
гресія та інші, краще підходять Mahout та
Spark. Серед найбільш технологічних
MPP – платформ спеціалісти виділяють
Vertica та Teradata Aster. Останнім часом
з’явилася множина платформ, які підтри-
мують швидку аналітику для великих да-
них, наприклад, MemSQL або Splice
Machine.
Окремої уваги заслуговує Intel пла-
тформа з відкритим кодом для Hadoop.
Привабливість рішення Intel для Hadoop
обумовлює також й фактор "апаратного
забезпечення", а саме – оптимізація, що
виконана Intel з урахуванням архітектури
процесорів Xeon та специфіки роботи
твердотільних накопичувачів з контроле-
рами Intel, дозволяє досягти значного при-
росту продуктивності. Процесори Xeon
прискорюють операції шифрування або
дешифрування за алгоритмом AES
(Advanced Encryption Standard), що реалі-
зується за допомогою додаткового набору
команд AES-NI (New Instruction). Окрім
цього, платформа Intel для Hadoop також
пропонує розширені можливості у галузі
обробки потокових даних.
Різноманіття платформ для роботи
з великими даних доповнюється величез-
ною кількістю прикладних програмних
продуктів, комерційних чи безкоштовних,
для аналітичної обробки таких даних.
Нижче наведений невеликий перелік най-
поширеніших прикладів такого ПЗ:
Cluvio – сучасна платформа ана-
літики даних, що дозволяє виконувати
SQL запити, обробляти дані, візуалізувати
результати та створювати гарні, інтеракти-
вні дашборди за лічені хвилини. Підтримує
потужне вбудовування, що дозволяє дода-
вати аналітичні властивості до будь-якого
веб-сайту або веб-застосунку.
IBM SPSS Statistics дозволяє ви-
являти нові зв’язки між даними та будува-
ти прогнози. Він дозволяє отримувати лег-
кий доступ до даних, управляти та ана-
лізувати набори даних, не маючи поперед-
нього статистичного досвіду. Це дозволяє
практично виключити довготривалу підго-
товку даних та швидко створювати, ма-
ніпулювати та розповсюджувати ін-
формацію для прийняття рішень.
Qlik Sense Desktop – безкоштов-
ний продукт, що надає можливість інте-
рактивного створення звітів та дашбордів з
діаграмами та графіками. Програма візуа-
лізації спрощує аналіз даних та допомагає
створювати інформовані бізнес-рішення
швидше, ніж будь-коли раніше. Перет-
ворення електронних таблиць у більш чіткі
візуалізації робить процес аналізу прості-
шим та швидшим для перегляду всіх кори-
стувачів.
Elasticsearch – розповсюджений
пошуковий та аналітичний движок на базі
Apache Logstash, Kibana та Beats склада-
ють "Elastic Stack", розроблений фірмою
Elastic. Також Elasticsearch забезпечується
хостінг Elastic Cloud.
Cyfe – бізнес-панель для управ-
ління даними компанії за допомогою звітів,
попередньо побудованих віджитів тощо.
Forestpin Analytics – платформа
аналізу даних для знаходження нерівно-
стей, кореляцій та дублювань за до-
помогою простого дашборда.
Експертні та інтелектуальні інформаційні системи
114
Висновки
Кількість підприємств, що викорис-
товують великі дані, безперервно зростає.
Практика останніх років продемонструва-
ла, що застосування результатів аналізу ве-
ликих масивів даних може принести реаль-
ний ефект. Але, окрім переваг існує велика
кількість проблем, вирішення яких вимагає
застосування досить значних ресурсів.
Для систем, що отримують аналі-
тичні дані в масштабі, близькому до реаль-
ного часу, ключовими є вимоги не лише
до продуктивності, але й до часу відгуку
(наприклад, IBM каже про час відгуку,
менший за мілісекунди). Це дуже обмежує
вибір аналітичних платформ. Неможливо
використовувати колосальні обчислюваль-
ні можливості Hadoop, якщо накладні ви-
трати на ініціювання та завершення триві-
альної MapReduce-програми складають
десятки секунд. Забезпечити прийнятний
час відгуку можуть або досить недешеві
MPP-платформи (такі як Netezza, Teradata,
Greenplum), або розподілені системи з
розвиненою індексацією або високим рів-
нем резидентності даних в оперативній
пам’яті.
Багато аналітичних систем все ще
використовують реляційну модель даних,
внаслідок чого вибір платформ обмежуєть-
ся такими рішеннями, як GridGain або
Gigaspaces XAP. Для роботи з потоковими
даними в режимі он-лайн були створені
технології Storm, Spark Streaming та Akka.
Але аналіз даних за допомогою SQL на
Hadoop не дозволяє досягти того максиму-
му, який пропонує платформа.
Компанії обирають Hadoop, щоб
збирати складні та різноманітні дані: істо-
рія відвідувань веб-сайтів, логи, дані про
використання мобільних пристроїв й ін-
формації з соцмереж та багато іншого. Ци-
ми даними складно оперувати у СКБД.
Можна витягувати структуровані дані з
Hadoop для SQL-аналізу, але більш пер-
спективними є такі підходи як машинне са-
монавчання та інші, що дозволяють спів-
віднести нові дані зі вже накопиченою,
проаналізованою та структурованою ін-
формацією. BI та SQL системи досить доб-
ре себе проявили, але постійно виникають
нові потреби та нові питання, що виходять
за межі поточних можливостей. Уже не
достатньо просто управляти даними. Ок-
рім цього, компанії не можуть покладатися
лише на аналітику, вони потребують також
рішень зі сфери BI, системи збору та пе-
редачі оперативної інформації та інше. Ме-
жа між цими поняттями почала стиратися,
а SAS, Alpine Data Labs та інші стали під-
тримувати кластеризовані серверні сере-
довища, вимогливі до пам’яті та Hadoop.
Література
1. Великі дані: великі проблеми. Є.Є. Чеха-
рин. Міжнародний електронний науковий
журнал.
2. https://proglib.io/p/nosql-db-part-1/
3. Big Data: Survey, Technologies, Opportuni-
ties, and Challenges. Nawsher Khan, Ibrar
Yaqoob, Ibrahim Abaker Targio Hashem, Za-
kiraInayat, Waleed Kamaleldin Mahmoud Ali,
Muhammad Alam, Muhammad Shiraz and
Abdullah Gani. The Scientific World Journal.
January 2014.
4. Sagiroglu S. and Sinanc D. Big data: are view.
Proceedings of the International Conference
on Collaboration Technologies and Systems
(CTS’13), P. 42–47, IEEE, SanDiego, Calif,
USA, May 2013.
5. Wang D. An efficient cloud storage model for
heterogeneous cloud infrastructures. Procedia
Engineering. 2011. Vol. 23. P. 510–515.
6. Bakshi K. Considerations for big data: archi-
tecture and approach. Proceedings of the
IEEE Aerospace Conference. P. 1–7, BigSky,
Mont, USA, March 2012.
7. Aho A.V. Computation and computational
thinking. The Computer Journal. 2012.
Vol. 55, N 7. P. 833–835.
8. Bhatnagar S.S.V. and Srinivasa S. Big Data
Analytics, 2012.
9. Pastorelli M., Barbuzzi A., Carra D.,
Dell’Amico M. and Michiardi P. HFSP: size-
based scheduling for Hadoop. Proceedings of
the IEEE International Congress on Big Data
(BigData '13), 2013. P. 51–59.
10. Katal A., Wazid M., and Goudar R.H. Big
data: issues, challenges, tools and good prac-
tices. Proceedings of the 6th International
Conference on Contemporary Computing
(IC3'13). 2013. P. 404–409.
11. Big Data Analytics: A Literature Review Pa-
per. Nada Elgendy and Ahmed Elragal. Con-
https://proglib.io/p/nosql-db-part-1/
Експертні та інтелектуальні інформаційні системи
115
ference Paper in Lecture Notes in Computer
Science · August 2014.
12. https://tproger.ru/translations/types-of-nosql-
db/
13. https://www.forbes.com/sites/bernardmarr/20
16/02/09/how-to-find-the-best-big-data-
product-or-service-vendors/
14. http://datareview.info/article/analitika-v-
rezhime-realnogo-vremeni-s-pomoshhyu-
spark-sql/
15. https://habr.com/post/415939/
16. https://hadoop.apache.org/docs/r1.2.1/
fair_scheduler.html
References
1. Big data: big problems. E. E. Chеhаrin. Inter-
national Electronic Scientific Journal, ISSN
2307-2334.
2. https://proglib.io/p/nosql-db-part-1/
3. Big Data: Survey, Technologies, Opportuni-
ties, and Challenges. Nawsher Khan, Ibrar
Yaqoob, Ibrahim Abaker Targio Hashem, Za-
kiraInayat, Waleed Kamaleldin Mahmoud Ali,
Muhammad Alam, Muhammad Shiraz and
Abdullah Gani. The Scientific World Journal ·
January 2014.
4. Sagiroglu S. and Sinanc D. “Big data: are
view,” in Proceedings of the International
Conference on Collaboration Technologies
and Systems (CTS’13), P. 42–47, IEEE,
SanDiego, Calif, USA, May 2013.
5. Wang D. “An efficient cloud storage model
for heterogeneous cloud infrastructures,” Pro-
cedia Engineering. 2011. Vol. 23. P. 510–515.
6. K. Bakshi, “Considerations for big data: ar-
chitecture and approach, ”in Proceedings of
the IEEE Aerospace Conference. P. 1–7. Big-
Sky, Mont, USA, March 2012.
7. Aho A.V. “Computation and computational
thinking,” The Computer Journal. 2012.
Vol. 55, N 7. P. 833–835.
8. Bhatnagar S.S.V. and Srinivasa S. Big Data
Analytics, 2012.
9. Pastorelli M., Barbuzzi A., Carra D.,
Dell’Amico M. and Michiardi P. “HFSP: size-
based scheduling for Hadoop,” in Proceedings
of the IEEE International Congress on Big
Data (BigData '13), 2013. P. 51–59.
10. Katal A., Wazid M., and Goudar R.H. “Big
data: issues, challenges, tools and good prac-
tices,” in Proceedings of the 6th International
Conference on Contemporary Computing
(IC3'13). 2013. P. 404–409.
11. Big Data Analytics: A Literature Review Pa-
per. Nada Elgendy and Ahmed Elragal. Con-
ference Paper in Lecture Notes in Computer
Science · August 2014.
12. https://tproger.ru/translations/types-of-nosql-
db/
13. https://www.forbes.com/sites/bernardmarr/20
16/02/09/how-to-find-the-best-big-data-
product-or-service-vendors/
14. http://datareview.info/article/analitika-v-
rezhime-realnogo-vremeni-s-pomoshhyu-
spark-sql/
15. https://habr.com/post/415939/
16. https://hadoop.apache.org/docs/r1.2.1/
fair_scheduler.html
Одержано 28.02.2019
Про автора:
Захарова Ольга Вікторівна,
кандидат технічних наук,
старший науковий співробітник.
Кількість наукових публікацій в
українських виданнях – 28.
http://orcid.org/0000-0002-9579-2973.
Місце роботи автора:
Інститут програмних систем
НАН України,
проспект Академіка Глушкова, 40.
Тел.: 526 5139.
E-mail: ozakharova68@gmail.com
https://tproger.ru/translations/types-of-nosql-db/
https://tproger.ru/translations/types-of-nosql-db/
https://www.forbes.com/sites/bernardmarr/2016/02/09/how-to-find-the-best-big-data-product-or-service-vendors/
https://www.forbes.com/sites/bernardmarr/2016/02/09/how-to-find-the-best-big-data-product-or-service-vendors/
https://www.forbes.com/sites/bernardmarr/2016/02/09/how-to-find-the-best-big-data-product-or-service-vendors/
http://datareview.info/article/analitika-v-rezhime-realnogo-vremeni-s-pomoshhyu-spark-sql/
http://datareview.info/article/analitika-v-rezhime-realnogo-vremeni-s-pomoshhyu-spark-sql/
http://datareview.info/article/analitika-v-rezhime-realnogo-vremeni-s-pomoshhyu-spark-sql/
https://habr.com/post/415939/
https://hadoop.apache.org/docs/r1.2.1/%20fair_scheduler.html
https://hadoop.apache.org/docs/r1.2.1/%20fair_scheduler.html
https://proglib.io/p/nosql-db-part-1/
https://tproger.ru/translations/types-of-nosql-db/
https://tproger.ru/translations/types-of-nosql-db/
https://www.forbes.com/sites/bernardmarr/2016/02/09/how-to-find-the-best-big-data-product-or-service-vendors/
https://www.forbes.com/sites/bernardmarr/2016/02/09/how-to-find-the-best-big-data-product-or-service-vendors/
https://www.forbes.com/sites/bernardmarr/2016/02/09/how-to-find-the-best-big-data-product-or-service-vendors/
http://datareview.info/article/analitika-v-rezhime-realnogo-vremeni-s-pomoshhyu-spark-sql/
http://datareview.info/article/analitika-v-rezhime-realnogo-vremeni-s-pomoshhyu-spark-sql/
http://datareview.info/article/analitika-v-rezhime-realnogo-vremeni-s-pomoshhyu-spark-sql/
https://habr.com/post/415939/
https://hadoop.apache.org/docs/r1.2.1/%20fair_scheduler.html
https://hadoop.apache.org/docs/r1.2.1/%20fair_scheduler.html
|