Загальні відомості про обробку пакетів і потоків
Обробка даних – це просто перетворення необроблених даних на змістовну інформацію в процесі. Існує два загальні способи обробки даних:
- Пакетна обробка, у якій збираються та зберігаються кілька записів даних, перш ніж оброблятися разом в одній операції.
- Обробка потоку, у якій джерело даних постійно контролюється та обробляється в режимі реального часу, коли відбуваються нові події даних.
Загальні відомості про обробку пакета
У пакетній обробці нові елементи даних збираються та зберігаються, а вся група обробляється разом як пакет. Саме тоді, коли обробляється кожна група, можна визначити кількома способами. Наприклад, можна обробляти дані на основі запланованого проміжку часу (наприклад, кожної години) або спрацьовувати, коли надійшов певний обсяг даних або в результаті іншої події.
Припустімо, наприклад, що потрібно проаналізувати дорожній рух, підрахувавши кількість автомобілів на ділянці дороги. Пакетний підхід обробки для цього вимагатиме, щоб ви збирали автомобілі на парковці, а потім рахували їх за одну операцію, поки вони відпочивають.
Якщо дорога зайнята, з великою кількістю автомобілів, що їздять з частими інтервалами, такий підхід може бути непрактичним; і зверніть увагу, що ви не отримуєте жодних результатів, доки не припаркуєте партію автомобілів і не порахували їх.
Реальний світовий приклад обробки пакетів – це спосіб обробки рахунків компаніями кредитних карток. Клієнт отримує не рахунок за кожну окрему покупку кредитної картки, а один щомісячний рахунок за всі покупки цього місяця.
| Аспект | Переваги пакетної обробки | Недоліки пакетної обробки |
|---|---|---|
| Обчислювальна потужність | Великі обсяги даних можна ефективно обробляти у зручний час. | Усі вхідні дані мають бути повністю підготовлені перед початком обробки. |
| Використання системи | Завдання можна планувати під час простою або непікових часів (наприклад, вночі), що покращує використання ресурсів. | Часто виникає затримка між введенням даних і отриманням результатів. |
| Надійність та обробка помилок | — | Помилки в даних, збої або збої програм можуть зупинити весь пакетний процес. |
| Валідація даних | — | Вхідні дані потрібно ретельно перевірити перед повторним запуском пакетної роботи. |
| Вплив незначних помилок | — | Навіть невеликі помилки в даних можуть завадити успішному виконанню всієї пакетної роботи. |
Загальні відомості про обробку потоку
У потоковій обробці кожен новий фрагмент даних обробляється у момент надходження. На відміну від пакетної обробки, тут немає очікування наступного інтервалу пакетної обробки — дані обробляються окремими одиницями в реальному часі , а не обробляються окремо. Обробка даних потоку корисна в сценаріях, коли постійно створюються нові динамічні дані.
Наприклад, кращим підходом до нашої гіпотетичної проблеми підрахунку автомобілів може бути застосування потокового підходу, підраховуючи автомобілі в режимі реального часу, коли вони проходять:
У такому підході вам не потрібно чекати, поки всі автомобілі припаркуються, щоб почати їх обробку, і ви можете агрегувати дані з інтервалами часу; наприклад, підрахувавши кількість автомобілів, які проходять кожну хвилину.
Приклади потокового передавання даних у реальному світі:
- Фінансова установа відстежує зміни на фондовому ринку в режимі реального часу, обчислює вартість під загрозою, а також автоматично перебалансує портфелі на основі руху цін на акції.
- Онлайн-ігрова компанія збирає дані в реальному часі про взаємодію з гравцями та подає дані на свою ігрову платформу. Потім він аналізує дані в режимі реального часу, пропонує стимули та динамічні можливості для залучення своїх гравців.
- Веб-сайт нерухомості, який відстежує підмножину даних із мобільних пристроїв і надає в реальному часі рекомендації щодо властивостей для відвідування на основі їх географічного розташування.
Потокова обробка ідеально підходить для критично важливих за часом операцій , які потребують миттєвої реакції в реальному часі. Наприклад, система, яка стежить за будівлею для диму і тепла, повинна викликати будильники і розблокувати двері, щоб дозволити жителям негайно втекти в разі пожежі.
Розуміння відмінностей між пакетами та потоковими даними
Окрім способу обробки пакетних даних і обробки потокового передавання даних, існують інші відмінності:
Область даних. Пакетна обробка може обробляти всі дані в наборі даних. Зазвичай обробка потокового передавання має доступ лише до останніх отриманих даних або в межах рухомого проміжку часу (наприклад, останні 30 секунд).
Розмір даних. Пакетна обробка підходить для ефективної обробки великих наборів даних. Обробка потоку призначена для окремих записів або мікросфакти , що складаються з кількох записів.
Продуктивність. Затримка – це час, витрачений на отримання та обробку даних. Затримка обробки пакета зазвичай триває кілька годин. Зазвичай обробка потоку відбувається відразу з затримкою в порядку секунд або мілісекунд.
Аналіз. Зазвичай пакетна обробка використовується для виконання складної аналітики. Обробка потоку використовується для простих функцій відповіді, агрегатів або обчислень, наприклад середніх показників.
Об'єднання пакетної та потокової обробки
Багато великомасштабних аналітичних рішень включають поєднання пакетної та потокової обробки, що забезпечує як історичний, так і реальний аналіз даних. Рішення обробки потоку часто фіксують дані в реальному часі, обробляють їх, фільтрують або об'єднують їх, а також презентують їх за допомогою приладних дощок і візуалізацій у реальному часі (наприклад, відображає загальну кількість автомобілів, які пройшли по дорозі протягом поточної години), а також зберігають оброблені результати в сховищі даних для історичного аналізу разом із пакетними обробленими даними (наприклад, для забезпечення аналізу обсягів трафіку за останній рік).
Навіть коли аналіз у реальному часі або візуалізація даних не потрібні, потокові технології часто використовуються для захоплення даних у реальному часі та зберігання їх у сховищі даних для подальшої пакетної обробки (це еквівалентно перенаправленню всіх автомобілів, що рухаються дорогою, на парковку перед їх підрахунком).
Наступна діаграма показує лямбда-архітектуру — поширену схему для поєднання пакетної та потокової обробки у великомасштабному аналітичному решенині.
- Події даних із джерела даних потокового передавання записуються в режимі реального часу.
- Дані з інших джерел потрапляють у сховище даних (часто це озеро даних) для пакетної обробки.
- Якщо аналітика в реальному часі не потрібна, захоплені потокові дані записуються у сховище даних для подальшої пакетної обробки.
- Коли потрібна аналітика в реальному часі, технологія обробки потоку використовується для підготовки потокових даних до аналізу або візуалізації в реальному часі; часто фільтруючи або об'єднуючи дані через скроневі вікна.
- Непотокові дані періодично обробляються пакетно для підготовки до аналізу, а результати зберігаються в аналітичному сховищі даних (часто званому сховищем даних) для історичного аналізу.
- Результати обробки потоку також можуть зберігатися в аналітичному сховищі даних для підтримки історичного аналізу.
- Аналітичні засоби та засоби візуалізації використовуються для представлення та вивчення даних у реальному часі та в реальному часі.
Примітка
Часто використовувані архітектури рішень для комбінованої обробки пакетних і потокових даних включають архітектури лямбди та дельти . Архітектура kappa — це простіша альтернатива, яка повністю усуває окремий пакетний шар — розглядаючи всі дані як безперервний потік і відтворюючи їх повторно, коли потрібна історична повторна обробка. Сучасні платформи, такі як Microsoft Fabric і Apache Kafka, роблять рішення у стилі каппа дедалі практичнішими. Деталі цих архітектур виходять за межі цього курсу.