Розробка та розгортання застосунку обробки потокових даних в режимі реального часу на основі технології Apache Flink

Автор: Марко Назар Зіновійович
Кваліфікаційний рівень: магістр (ОНП)
Спеціальність: Телекомунікації та радіотехніка (освітньо-наукова програма)
Інститут: Інститут телекомунікацій, радіоелектроніки та електронної техніки
Форма навчання: денна
Навчальний рік: 2021-2022 н.р.
Мова захисту: українська
Анотація: Потоки є природним середовищем існування даних. Будь то події з веб-серверів, торги на фондовій біржі або показання датчиків із машини на заводі, дані створюються як частина потоку [1]. Пакетна обробка — це парадигма, яка працює, коли потрібно обробити обмежений потік даних. У цьому режимі роботи можна прийняти весь набір даних перед отриманням будь-яких результатів, що означає, що можна, наприклад, відсортувати дані, обчислити глобальну статистику або створити остаточний звіт, який підсумовує всі введені дані. Обробка потоку, з іншого боку, передбачає необмежені потоки даних. Принаймні концептуально введення може ніколи не закінчитися, і тому виникає потреба постійно обробляти дані в міру їх надходження. В наші дні обробка в реальному часі широко використовується в кожній організації. Варіанти використання, такі як виявлення шахрайства, оповіщення у реальному часі у сфері охорони здоров’я та оповіщення про мережеві атаки, вимагають обробки миттєвих даних у режимі реального часу; затримка в кілька мілісекунд може вплинути на якість надання послуг чи безпеку користувацьких даних. Ідеальним інструментом для таких випадків використання в реальному часі є такий, який може вводити дані як потік, а не як пакет [2]. В магістерській роботі представлено алгоритми розробки та розгортання застосунку обробки потокових даних в режимі реального часу на основі технології Apache Flink. Точний контроль часу та стану дає змогу середовищу виконання Flink запускати будь-які програми на необмежених потоках. Зважаючи на це на основі Flink розроблено унікальний підхід обробки потоків даних [3]. Об’єктом дослідження є механізми розподіленої обробки потокових даних, дослідження функціоналу технології Apache Flink для забезпечення обробки потокових даних в режимі реального часу і відновлення після збоїв. Предметом досліджень є розробка та розгортання застосуноку для виявлення шахрайських облікових записів в режимі реального часу на основі Apache Flink, аналіз доцільність застосування такого застосунку. Метою роботи є дослідження основних аспектів роботи Apache Flink, які забезпечують швидкодію і надійність обробки потокових даних. І застосування цих інструментів у сукупності з іншими платформами для розроблення застосунку для виявлення несанкіцонованого доступу в режимі реального часу. У першому розділі досліджено механізми розподіленої обробки потокових даних та проаналізовано принципи функціонування Apache Flink для забезпечення оперативної обробки потокових даних. Apache Flink відмінно обробляє необмежені та обмежені набори даних. У другому розділі досліджено механізми кластеризації в Apache Flink та розглянуто реалізацію механізму обробки потокових даних в реальному часі. Для розподіленого виконання Flink об’єднує підзадачі оператора разом у завдання. Кожне завдання виконується одним потоком. Об’єднання операторів разом у завдання — це корисна оптимізація: вона зменшує витрати на передачу і буферизацію від потоку до потоку, а також збільшує загальну пропускну здатність, зменшуючи затримку [4]. У третьому розділі розглянуто принципи конфігурації проекту розробки додатків на основі Apache Flink. Варто зазначити що під час розгортання програми за допомогою Flink автоматично визначаються необхідні ресурси на основі налаштованої паралельності програми та запитує їх у менеджера ресурсів. Ця функція забезпечує раціональне використання ресурсів в поєднанні з високою продуктивністю. Застосування Flink для розроблення застосунків також дозволяє запуск потокових програм із збереженням стану в будь-якому масштабі. В четвертому розділі розроблено та розгорнуто застосунок для виявлення шахрайських облікових записів в режимі реального часу. Для забезпечення якості і своєчасності обробки даних в проекті використовуються такі технології як Apache Flink та Apache Spark. Для цього кожна подія пов’язана з міткою часу, яка зазвичай вказує, коли подія дійсно відбулася. Потоки подій у часі також містять водяні знаки, з яких оператори роблять висновок про поточний час події. Також Apache Flink має багато функцій, які значно полегшують обслуговування потокових програм. Більшість із цих функцій засновані на точках збереження. На основі цього передбачено застосування таких інтерфейсів для моніторингу та керування робочими процесами [5]. Варто зауважити що при розроблені застосунку передбачено можливість його розгортання як на локальній машині за допомогою Docker, так і в кластері використовуючи Kubernetes У п’ятому розділі проведено техніко-економічне обґрунтування розробленого застосунку для виявлення шахрайських облікових записів в режимі реального часу на основі Apache Flink. В результаті цього отримано дані про очікуваний дохід від провадження такого застосунку, проведено аналіз результатів та визначення економічного ефекту та період окупності даного проекту. Ключовими перевагами Apache Flink можна назвати: високу продуктивність – програми можуть розпаралелюватися в тисячі завдань, які розподіляються та виконуються в кластері одночасно, використовуючи практично необмежену кількість процесорів, основної пам’яті, дискового та мережевого введення-виводу; відмово стійкість – Flink гарантує узгодженість стану додатків у разі збоїв, періодично та асинхронно перевіряючи локальний стан на необхідність переміщення у довготривале сховище; гнучка робота з потоковими даними – підтримка тимчасових та несправних подій, безперервна потокова модель передачі зі зворотнім звя?зком, реалізація концепції «вікон» для виборчої обробки даних у певному часовому проміжку. Ключові слова: пакетна обробка даних, Apache Flink, обробка даних в реальному часі, Kubernetes, Docker.