Тема 2
Технології NoSQL, MapReduce, Hadoop. Взаємозв’язок між технологіями розподіленої книги (DLT) та штучним інтелектом

 

Питання, що розглядаються: технології NoSQL, MapReduce, Hadoop, технологія розподіленої книги (DLT)

Бази даних NoSQL спеціально створені для конкретних моделей даних та зберігають інформацію у гнучких схемах, які легко масштабуються для сучасних програм. Бази даних NoSQL набули широкого поширення у зв'язку з простотою розробки, функціональністю та продуктивністю за будь-яких масштабів. На цій сторінці зібрані ресурси, які допоможуть вам краще зрозуміти бази даних NoSQL та розпочати роботу [11-13].

У чому переваги бази даних NoSQL?

Сучасні програми стикаються з низкою проблем, які можуть бути вирішені за допомогою баз даних NoSQL. Наприклад, програми обробляють великий обсяг даних із різних джерел, таких як соціальні мережі, інтелектуальні датчики та сторонні бази даних. Всі ці розрізнені дані не зовсім вписуються у реляційну модель. Застосування табличних структур може призвести до надмірності, дублювання даних та проблем з продуктивністю при масштабуванні.

Бази даних NoSQL спеціально створені для нереляційних моделей даних і мають гнучкі схеми, що дозволяє розробляти сучасні програми. Вони набули широкого поширення у зв'язку з простотою розробки, функціональності та продуктивності за будь-яких масштабів. Нижче наведено переваги баз даних NoSQL.

Гнучкість

Як правило, бази даних NoSQL пропонують гнучкі схеми, що дозволяє здійснювати розробку швидше та забезпечує можливість поетапної реалізації. Бази даних NoSQL добре підходять для частково структурованих та неструктурованих даних завдяки використанню гнучких моделей даних.

Можливості масштабування

Бази даних NoSQL зазвичай розраховані масштабування з використанням розподілених кластерів апаратного забезпечення, а чи не шляхом додавання дорогих надійних серверів. Деякі постачальники хмарних послуг проводять ці операції у фоновому режимі, забезпечуючи повністю керований сервіс.

Висока продуктивність

Бази даних NoSQL оптимізовано для конкретних моделей даних та шаблонів доступу. Вони забезпечують вищу продуктивність, ніж ви намагалися реалізувати аналогічну функціональність з реляційними базами даних.

Широкі функціональні можливості

Бази даних NoSQL надають API та типи даних із широкою функціональністю, які спеціально розроблені для відповідних моделей даних.

Якими є варіанти використання баз даних NoSQL?

Ви можете використовувати бази даних NoSQL для створення широкого спектру високопродуктивних мобільних додатків, програм Інтернету речей (IoT), ігор та веб-додатків, які забезпечують відмінну взаємодію з користувачем у будь-якому масштабі. Діапазон баз даних NoSQL та варіанти їх використання дуже різноманітні. Хоча уявити репрезентативний набір варіантів використання складно, нижче ми наведемо кілька наочних прикладів, які змусять вас замислитись. Ми закликаємо вас дізнатися більше про кожну базу даних NoSQL та відповідні варіанти використання.

Управління даними у реальному часі

За допомогою баз даних NoSQL можна надавати рекомендації в реальному часі, персоналізувати та покращувати взаємодію з користувачем. Наприклад, Disney+ надає свою велику бібліотеку цифрового контенту понад 150 мільйонам передплатників, використовуючи технологію баз даних NoSQL. Завдяки Amazon DynamoDB цей сервіс може масштабувати та підтримувати популярні можливості, такі як "Продовжити перегляд", "Список на перегляд" та "Персоналізовані рекомендації".

Безпека хмари

Графові бази даних можна використовувати для швидкого виявлення складних взаємозв'язків даних. Наприклад, компанія Wiz переосмислила безхмарну безпеку у вигляді графів бази даних за допомогою Amazon Neptune . Wiz допомагає своїм клієнтам підвищити рівень безпеки, швидко виявляючи найбільш критичні ризики та усуваючи їх. Вони використовують модель графової бази даних Amazon Neptune, щоб виявити небезпечні поєднання факторів ризику, які є критичними. Механізми управління ризиками Wiz переміщаються по графах і протягом кількох секунд поєднують низку взаємопов'язаних факторів ризиків у графі безпеки.

Програми з високою доступністю

Розподілені бази даних NoSQL відмінно підходять для створення програм з високою доступністю та низькою затримкою для обміну повідомленнями та файлами, соціальних мереж, а також багато іншого. Наприклад, понад 290 мільйонів користувачів Snapchat щодня надсилають мільярди фотографій та відеоповідомлень. У цьому додатку використовуються системи баз даних NoSQL для зниження середньої затримки надсилання повідомлень на 20%.

Як працюють бази даних NoSQL?

Бази даних NoSQL використовують різноманітні моделі даних для доступу до інформації та управління нею. Бази даних таких типів оптимізовані спеціально для додатків, що потребують гнучких моделей даних, великих обсягів та низьких затримок. Усе це досягається шляхом пом'якшення жорстких вимог до узгодженості даних, притаманних реляційних типів баз даних. Залежно від моделі даних, реалізація може відрізнятися. Однак у багатьох базах даних NoSQL використовується текстовий формат обміну даними, заснований на мові Javascript (JSON) , – відкритий формат обміну даними, що представляє дані у вигляді набору пар «ім'я-значення».

Приклад бази даних NoSQL

Розглянемо приклад моделювання схеми простої бази даних книг.

У реляційній базі даних запис про книгу часто поділяється на кілька частин (або «нормалізується») і зберігається в окремих таблицях, відносини між якими визначаються обмеженнями первинних та зовнішніх ключів. У цьому прикладі в таблиці « Книги » є стовпці « ISBN », «Назва книги» та « Номер видання », в таблиці «Автори» – стовпці « ІД автора » та «Ім'я автора», а в таблиці «Автор-ISBN» – стовпці «Автор» та «ISBN». Реляційна модель створена таким чином, щоб забезпечити цілісність даних посилань між таблицями в базі даних. Інформація нормалізована для зниження надмірності та в цілому оптимізована для зберігання.

У базі даних NoSQL запис про книгу зазвичай зберігається як документ. Для кожної книги (або елемента) значення «ISBN», «Назва книги», «Номер видання», «Ім'я автора» та «ІД автора» зберігаються як атрибути в єдиному документі. У такій моделі дані оптимізовані для інтуїтивно зрозумілої розробки та горизонтальної масштабованості.

Які типи баз даних NoSQL?

Існує кілька різних систем баз даних NoSQL у зв'язку з відмінностями у способах роботи та зберігання даних без схем. Нижче наводиться пояснення деяких поширених типів.

Бази даних «ключ-значення»

Бази даних «ключ-значення» підтримують високу роздільність і допускають горизонтальне масштабування лише на рівні, недоступному інших типів баз даних NoSQL. База даних «ключ-значення» зберігає дані як сукупність пар «ключ-значення», в яких ключ служить унікальним ідентифікатором. Ключі і значення можуть бути будь-що: від простих до складних складових об'єктів. Хорошими прикладами використання сховищ даних «ключ-значення» є ігрові, рекламні програми та програми IoT. Amazon DynamoDB забезпечує стабільну продуктивність із затримкою в кілька мілісекунд для робочих навантажень будь-якого масштабу.

Бази даних документів

У баз даних документів той самий формат моделі документа, який розробники використовують у коді своїх додатків. Такі бази даних зберігають інформацію у вигляді гнучких, напівструктурованих та ієрархічних за своєю природою об'єктів JSON . Гнучкий, напівструктурований, ієрархічний характер документів та документних баз даних дозволяє їм розвиватися відповідно до потреб додатків. Модель бази даних документів добре працює в каталогах, профілях і системах управління контентом, де кожен документ унікальний і змінюється з часом. Amazon DocumentDB (сумісна з MongoDB) та MongoDB – поширені документні бази даних, які надають функціональні та інтуїтивно зрозумілі API для гнучкої розробки.

Графові бази даних

Графові бази даних призначені для спрощення розробки та запуску додатків, що працюють із наборами тісно пов'язаних даних. У таких базах даних використовуються вузли для зберігання сутностей інформації та ребра для зберігання взаємозв'язків між цими сутностями. Ребро завжди має початковий і кінцевий вузол, тип та напрямок. Ребра можуть описувати взаємозв'язки типу «предок-нащадок», дії, права володіння тощо. Кількість та типи взаємозв'язків, які може мати вузол, необмежені. Графові бази даних можна використовувати для розробки та запуску програм, що працюють з наборами тісно пов'язаних даних. Серед стандартних прикладів використання графової бази даних – соціальні мережі, послуги рекомендацій, системи виявлення шахрайства та графи знань. Amazon Neptune – це повністю керований сервіс графових баз даних, що підтримує обидві моделі Property Graph та Resource Description Framework (RDF) з можливістю вибору двох графічних API (TinkerPop та RDF/SPARQL).

Бази даних у пам'яті

У той час як інші нереляційні бази даних зберігають дані на дисках або SSD, сховища даних у пам'яті призначені для усунення необхідності доступу до дисків. Вони ідеально підходять для програм, що потребують мікросекундного часу відгуку або мають великі піки трафіку. Ви можете використовувати їх в ігрових та рекламних програмах для таблиць результатів, сховищ сесій та аналітики в реальному часі. Amazon MemoryDB для Redis – це сумісний з Redis надійний сервіс бази даних у пам'яті, який зменшує затримку читання до мілісекунд та забезпечує надійність у кількох зонах доступності. Amazon ElastiCache – це повністю керований сервіс кешування в пам'яті, сумісний з Redis та Memcached для обслуговування робочих навантажень із низькою затримкою та високою пропускною здатністю. Прискорювач Amazon DynamoDB (DAX) – це ще один приклад спеціалізованого сховища даних, що прискорює читання DynamoDB.

Пошукові бази даних

База даних пошукової системи – це тип нереляційної бази даних, призначеної для пошуку вмісту інформації, наприклад журналів вихідних даних додатків, які використовуються розробниками для усунення несправностей. У таких базах застосовуються індекси для класифікації подібних параметрів даних і полегшення пошуку. Двигун пошукових баз даних оптимізовано для сортування неструктурованих даних, таких як зображення та відео. Сервіс Amazon OpenSearch – це спеціально розроблений сервіс для візуалізації та аналітики потоків даних, що автоматично генеруються в режимі, близькому до реального часу, шляхом індексування, агрегації частково структурованих журналів і метрик, а також пошуку по них.

У чому різниця між базами даних NoSQL та SQL?

Протягом десятиліть домінуючою моделлю даних розробки додатків була реляційна модель даних, у якій інформація зберігається у таблицях, що з рядків і стовпців. Для створення та редагування цих реляційних таблиць використовувалася структурована мова запитів (Structured Query Language, SQL). Бази даних SQL моделюють відносини між даними як таблиць. Кожен рядок таблиці є набір пов'язаних значень, які стосуються одного об'єкта чи сутності. Кожен стовпець таблиці є атрибутом даних, а в полі (або комірці таблиці) зберігається фактичне значення атрибута. Можна використовувати систему керування реляційними базами даних (Relational Database Management System, RDBMS) для доступу до інформації у різний спосіб без реорганізації самих таблиць бази даних.

MapReduce. Hadoop

На сьогоднішній день обсяг даних стає занадто великим для того, щоб була можлива їх обробка традиційними алгоритмами. Сучасні програми інтелектуального аналізу даних, які часто називають великими даними, вимагають від нас швидкого керування величезними обсягами даних. Однією із технологій для вирішення задач обробки великих даних є MapReduce Історія Великих даних починається набагато раніше. За версією одного з авторів Forbes, відправною точкою можна вважати 1944 р., коли американський бібліотекар Фремонт Райдер опублікував роботу The Scholar and the Future of the Research Library. Там він зазначив, що фонди університетських бібліотек в Америці збільшуються у два рази кожні 16 років і до 2040 р. бібліотека Єльського університету буде містити близько 200 млн. книг, для зберігання яких знадобиться майже 10 км полиць. Технологія MapReduce була створена для Google для сканування та обробки великої кількості сторінок з Інтернету, і застосовується для вирішення різних завдань в рамках самої компанії. Ідея технології проста: ви визначаєте функцію карти, яка обробляє пари ключ/значення, генерує проміжні пари ключ/значення, які далі агрегуються і обробляються в функції reduce. Як виявилося, крім сканування та обробки сторінок з Інтернету, парадигма MapReduce дуже добре підходить для інших поширених задач - зокрема, це розподілений «grep», класифікація книг, листів, файлів, різних алгоритмів інтелектуального аналізу даних (data mining). Після того, як Google опублікувала опис технології MapReduce, стали з'являтися її реалізації в таких проектах, як GridGain, GreenPlum, Twister. Але найбільшу популярність з них придбав проект Hadoop. Технологія MapReduce націлена на обробку петабайт (10^15) даних. Обробляються дані на кластері. Даними є таблиці, що містять список записів виду (KEY, VALUE). Користувачеві досить задати функції обробки Map і Reduce, і платформа сама подбає про сортування даних, запуск функцій обробки, повторному виконанні впали транзакцій і багато чим ще. Дві функції, які пропонується реалізувати користувачеві, такі: Map - функція, що приймає на вхід один запис виду (KEY, VALUE), і повертає по ньому будь-яку кількість нових записів (KEY1, VALUE1), (KEY2, VALUE2), ... Reduce - функція, що приймає на вхід всі записи з даним ключем. Проходячи по ним, вона так само може повертати будь-яку кількість нових записів. Програми, що використовують MapReduce, не завжди будуть працювати швидко. Головною перевагою цієї моделі є оптимізований розподіл даних між вузлами і невелика кількість коду, яку потрібно написати програмісту. Однак на практиці користувач програми повинен прийняти до уваги етап розподілу даних, зокрема, функція поділу даних і кількість даних на виході функції Map можуть дуже сильно впливати на продуктивність. Не всі реалізації MapReduce обов'язково мають високу надійність. Наприклад, в ранніх версіях Hadoop примітив майстер-вузла NameNode був єдиною точкою відмови розподіленої файлової системи. Пізніші версії Hadoop стали володіти більшою активною і пасивною відмовостійкістю. Інфраструктура Apache Hadoop з MapReduce є рушійною силою розподіленої обробки даних, завдяки унікальній архітектурі масштабування фізичного кластера і інфраструктурі обробки. Hadoop також створила багату і різноманітну екосистему додатків, включаючи Apache Pig (потужна мова сценаріїв) і Apache Hive (сховище даних з SQL-подібним інтерфейсом). Кластери Hadoop можуть масштабуватися від одиничних вузлів, в яких всі об'єкти Hadoop працюють на одному і тому ж вузлі, до тисяч вузлів, де функціональність розподіляється між вузлами для збільшення числа процесів паралельної обробки. Щоб поліпшити спільне використання, масштабованість і надійність кластера Hadoop, був обраний ієрархічний підхід до інфраструктури кластера. Підхід з використанням JobTracker і TaskTracker був головним недоліком MRv1 через обмеження масштабування і наявності режимів відмов, викликаних мережевими витратами. Хоча зростання частки Hadoop на ринку великих даних триває, сьогодні почалася його еволюція в напрямку великомасштабних робочих навантажень більш загального характеру. Інфраструктура YARN знаходиться в стадії активної розробки, вона має значні переваги в порівнянні з традиційною MapReduce.

Взаємозв’язок між технологіями розподіленої книги (DLT) та штучним інтелектом

Поєднання технологій розподіленої книги (DLT) і штучного інтелекту (ШІ) є захоплюючим розробкою з потенційним застосуванням у багатьох різних галузях. DLT — це цифрові системи, які використовуються для безпечного зберігання й обміну даними, тоді як AI — це форма технології, яка використовує алгоритми для аналізу даних і прийняття рішень. Разом ці технології мають потенціал революціонізувати спосіб управління даними та прийняття рішень у багатьох різних контекстах.

У фінансовому секторі DLT та AI можна використовувати для створення безпечної та автоматизованої системи обробки транзакцій. DLT можуть забезпечити безпечне зберігання та обмін даними, а алгоритми AI можна використовувати для аналізу фінансових даних і прийняття рішень щодо транзакцій. Це потенційно може призвести до швидших, ефективних і безпечних фінансових систем.

У сфері охорони здоров’я DLT та штучний інтелект можна використовувати для безпечного зберігання та обміну медичними записами, а також для їх аналізу для отримання інформації про здоров’я пацієнтів. Це може допомогти постачальникам медичних послуг надавати більш ефективну та персоналізовану допомогу пацієнтам.

У юридичному секторі DLT та штучний інтелект можна використовувати для безпечного зберігання та обміну юридичними документами, а також для їх аналізу для отримання інформації про юридичні справи. Це може допомогти юристам краще зрозуміти справу та приймати більш обґрунтовані рішення.

У секторі логістики DLT і штучний інтелект можна використовувати для безпечного зберігання та обміну даними про відправлення та доставку. Алгоритми штучного інтелекту можна використовувати для аналізу цих даних і прийняття рішень про те, як оптимізувати відправлення та доставку. Це потенційно може призвести до швидшої, ефективнішої та рентабельної логістики.

Загалом, потенційне поєднання DLT та ШІ є захоплюючою подією, яка може мати далекосяжні наслідки для багатьох різних галузей. Завдяки безпечному зберіганню й обміну даними, а також використанню алгоритмів штучного інтелекту для їх аналізу ці технології можуть революціонізувати спосіб керування даними та прийняття рішень. Оскільки технологія продовжує розвиватися, можливості для використання DLT та ШІ в різних контекстах здаються практично безмежними.

Вивчення переваг інтеграції технологій розподіленої книги зі штучним інтелектом

Інтеграція технологій розподіленої книги (DLT) і штучного інтелекту (AI) набирає обертів у світі технологій, пропонуючи підприємствам нові можливості для оптимізації та автоматизації операцій. Поєднуючи DLT і штучний інтелект, організації можуть використовувати потужність обох технологій для створення більш ефективних і надійних рішень для своїх клієнтів.

DLT, такі як блокчейн, забезпечують безпечний і незмінний запис транзакцій, тоді як штучний інтелект може надати аналітичні можливості, щоб допомогти визначити закономірності та тенденції. Поєднуючи ці дві технології, підприємства можуть створювати системи, які є більш безпечними, ефективними та надійними, ніж будь-коли раніше.

Інтеграція DLT і штучного інтелекту може надати численні переваги, зокрема покращену безпеку даних, підвищену автоматизацію процесів і покращений досвід роботи з клієнтами. Наприклад, DLT можна використовувати для захисту даних клієнтів і транзакцій, тоді як AI можна використовувати для аналізу даних користувачів і рекомендації персоналізованих послуг. Це може дозволити підприємствам надавати більш індивідуальні послуги своїм клієнтам, а також зменшити потребу в фізичній праці в багатьох сферах.

Крім того, DLT та штучний інтелект також можна використовувати для створення нових інноваційних рішень для бізнесу. Наприклад, DLT можна використовувати для створення ненадійних систем, тоді як ШІ можна використовувати для автоматизації рутинних завдань і покращення процесу прийняття рішень. Це може дозволити підприємствам зменшити витрати та підвищити ефективність, а також підвищити задоволеність клієнтів.

Загалом, інтеграція DLT та штучного інтелекту виявилася потужною комбінацією, яка пропонує підприємствам потенціал для покращення своєї діяльності та обслуговування клієнтів. Оскільки технологія продовжує розвиватися, можливості, створені цією інтеграцією, лише зростатимуть.