Ловчинський С. Б. Аналіз підходів до зберігання великих даних // Міжнародний науковий журнал "Інтернаука". — 2017. — №11.
Технічні науки
УДК 004.852
Ловчинський Сергій Броніславович
студент
Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Ловчинский Сергей Брониславович
студент
Национальный технический университет Украины
«Киевский политехнический институт имени Игоря Сикорского»
Lovchinsky S.
student
National Technical University of Ukraine
“Igor Sikorsky Kyiv Polytechnic Institute”
АНАЛІЗ ПІДХОДІВ ДО ЗБЕРІГАННЯ ВЕЛИКИХ ДАНИХ
АНАЛИЗ ПОДХОДОВ К ХРАНЕНИЮ БОЛЬШИХ ДАННЫХ
ANALYSIS OF APPROACHES TO STORING BIG DATA
Анотація: Технології великих даних відкривають принципово нові підходи до вирішення багатьох задач для підвищення ефективності різних процесів. Однак, для того щоб скористатися перевагами великих даних, крім аналітичного програмного забезпечення необхідна відповідна інфраструктура для зберігання, обробки і передачі даних.
У даній статті проводиться аналіз можливих способів збереження великих даних, досліджуються обмеження, які не дозволяють зробити це ефективно, а також наводиться огляд сучасного підходу до збереження великих даних.
Ключові слова: Великі дані, реляційні бази даних, СУБД, NoSQL.
Аннотация: Технологии больших данных открывают принципиально новые подходы к решению многих задач с целью увеличения производительности разных действий. Однако, для того чтобы использовать достоинства больших данных, помимо аналитического программного обеспечения нужна надлежащая инфраструктура с целью хранения, обрабатывания и передачи данных.
В этой статье проводится исследование возможных методов хранения больших данных, исследуются ограничения, которые не дают возможность сделать это продуктивно, а кроме того приводится обзор современного подхода к хранению больших данных.
Ключевые слова: Большие данные, реляционные базы данных, СУБД, NoSQL.
Abstract: The technology of big data reveals fundamentally new approaches to solving many problems for increasing the efficiency of various processes. However, in order to take advantage of the great data, in addition to analytical software, an appropriate infrastructure for storage, processing and data transmission is required.
This article analyzes possible methods for storing big data, examines limitations that do not allow it to be efficiently performed, and provides an overview of the modern approach to storing big data.
Keywords: Big data, relational databases, DBMS, NoSQL.
Постановка проблеми. Стрімко зростаючі обсяги інформації в умовах високонавантаженого режиму роботи сучасних інтернет-сервісів породжують нові складні завдання по організації її зберігання і обробки. Реляційні системи управління даними на сьогоднішній день є одним з найпоширеніших засобів представлення та маніпулювання інформацією в комп'ютерних системах. Однак реляційна модель не забезпечує обробку великої кількості неструктурованою інформації.
Виклад основного матеріалу дослідження. Великі дані —характеризуються обсягом, різноманітністю і швидкістю, з якою структуровані і неструктуровані дані надходять по мережах передачі в процесори і сховища, поряд з процесами перетворення цих даних в цінну для бізнесу інформацію. [1]
Як видно з цього визначення, великі дані мають чотири основні характеристики: обсяг, різноманітність, швидкість і цінність. Розглянемо їх докладніше:
До певного моменту, практично єдиним способом для збереження та обробки даних була реляційна СУБД. Але зі збільшенням обсягів інформації з'явилися проблеми, з якими класична реляційна архітектура не справлялася. Якщо СУБД припиняє справлятися з об'ємом виконуваних операцій, можна застосувати наступні дії:
Підводячи підсумки, можна зробити висновок, що спроби пристосувати реляційну СУБД до роботи з великими даними призводять до наступного:
Для вирішення проблем, які виникають під час збереження та читання великих даних було спроектовано архітектуру, здатну адаптуватися до зростаючих обсягів даних і ефективно їх обробляти. Така архітектура називається NoSQL. Цей термін позначає ряд підходів, спрямованих на реалізацію сховищ баз даних, які мають суттєві відмінності від моделей, що використовуються в традиційних реляційних СУБД з доступом до даних засобами мови SQL. Застосовується до баз даних, в яких робиться спроба вирішити проблеми масштабованості і доступності за рахунок атомарності та узгодженості даних. [3] Розглянемо основні особливості NoSQL підходу:
Виключення зайвого ускладнення. Реляційні бази даних виконують величезну кількість різних функцій і забезпечують сувору консистентність даних. Однак для багатьох додатків подібний набір функцій, а також задоволення вимог ACID є зайвими.
Висока пропускна здатність. Багато NoSQL рішень забезпечують набагато більш високу пропускну здатність даних ніж традиційні СУБД.
Необмежене горизонтальне масштабування. На противагу реляційним СУБД, NoSQL рішення проектуються для необмеженого горизонтального масштабування. При цьому додавання і видалення вузлів в кластері ніяк не позначається на працездатності системи. Додатковою перевагою подібної архітектури є те, що NoSQL кластер може бути розгорнутий на звичайному апаратному забезпеченні, істотно знижуючи вартість всієї системи.
Продуктивність в обмін на консистентність. При описі підходу NoSQL не можна не згадати теорему CAP. Дотримуючись цієї теореми, багато NoSQL бази даних реалізують доступність даних і стійкість до поділу, жертвуючи консистентністю в перевагу високої продуктивності. І дійсно, для багатьох класів додатків сувора консистентність даних – це те, від чого цілком можна відмовитися. [4]
На сьогоднішній день створено велику кількість NoSQL рішень, які можна класифікувати наступним чином:
Сховище ключ-значення. Відмінною особливістю є проста модель даних – асоціативний масив або словник, що дозволяє працювати з даними по ключу. Приклади використання:
Основні представники цього типу моделі збереження даних:
Графічне представлення вище описаного сховища показано на рисунку 1.
Рисунок 1 – Сховище ключ-значення
Документне сховище. Модель даних подібних сховищ дозволяє об'єднувати безліч пар ключ-значення в абстракцію, звану «документ». Документи можуть мати вкладену структуру і об'єднуватися в колекції. Приклади використання:
Представниками такого сховища являються:
На рисунку 2 продемонстровано графічне представлення документного сховища.
Рисунок 2 – Документне сховище
Колонкове сховище. Цей тип здається найбільш схожим з традиційними реляційними СУБД. Модель даних сховищ подібного типу має на увазі зберігання значень як неінтерпретованих байтових масивів, адресованих кортежами. Приклади застосування:
Представники цього типу сховища:
На рисунку 3 показується графічне представлення колонкового сховища.
Рисунок 3 – Колонкове сховище
Сховища на графах. Подібні сховища застосовуються для роботи з даними, які природним чином представляються графами (наприклад, соціальна мережа). Модель даних складається з вершин, ребер і властивостей. [7] Основні представники графового сховища:
Графічне представлення графового сховища показано на рисунку 4.
Рисунок 4 – Графове сховище
Наведені схеми даних в разі використання NoSQL-рішень може здійснюватися через використання різних структур даних: хеш-таблиць, дерев та інших. Оцінка продуктивності таких рішень наведена в таблиці 1.
Таблиця 1 – Порівняльна таблиця сховищ за моделями даних
Модель даних |
Продуктивність |
Масштабованість |
Гнучкість |
Функціональність |
---|---|---|---|---|
Key–Value Store |
high |
high |
high |
variable (none) |
Column-Oriented Store |
high |
high |
moderate |
minimal |
Document-Oriented Store |
high |
variable (high) |
high |
variable (low) |
Graph Database |
variable |
variable |
high |
graph theory |
Relational Database |
variable |
variable |
low |
relational algebra |
Висновки. В даній статті були розглянуті проблеми, які поставили перед реляційними СУБД великі дані. Проаналізувавши можливі шляхи вирішення цих проблем, було вказано на ті концептуальні обмеження, які не дозволяють класичної реляційної архітектурі справлятися зі стрімко зростаючим обсягом інформації. Далі були розглянуті основні рішення NoSQL. Проаналізовані архітектурні особливості, які дозволяють кожному з них ефективно вирішувати поставлену задачу. Важливо відзначити, що жоден з представлених підходів не пропонує рішення всіх можливих завдань, які виникли в контексті великих даних. Кожен з них ефективно вирішує свій клас завдань, дозволяючи користувачеві вибрати найбільш підходящий для нього інструмент.
Література