СИСТЕМИ ЗБЕРІГАННЯ ВЕЛИКИХ ДАНИХ



Робота присвячена створення нового методу зберігання та підготовки до аналізу великих даних. Метод використовує різні типи баз даних, потокову обробку й передачу даних, визначення дельти (різниці) невпорядкованих даних, мікропакетну обробку даних й маскування критично важливих даних. Розроблено робочий прототип системи, на якому проведено експеримент, що демонструє переваги методу.

Ключові слова--Data Warehouse (DWH), BigData, BigQuery, ETL.

Вступ

Системи зберігання великих даних, які ще називають Data Warehouse (DWH), наразі є необхідними для кожної компанії, що має ПЗ.

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

Для подібних систем є кілька ключових вимог: швидкий запис, висока доступність, Prevention Data Loose, Governance/Law control for PII data, наявність інтеграцій із засобами BI для візуалізації даних та інші.

Через постійні атаки хакерів, зловживання приватними даними великими корпораціями, державний контроль, вимоги до DWH, в тому числі на рівні законодавства, стають дедалі суворішими, що робить цю галузь важкою, але й привабливою, адже потрібно вирішувати абсолютно нові задачі. Разом зі зміною сховищ, змінюються й створювачі (продьюсери) даних – смарт холодильник, годинник, смартфон, система керувати доставкою цих подій, їх обробкою, збереженням, тощо.

Створений метод під час роботи має значну практичну й наукову цінність, адже він дозволяє безпечно зберігати, швидко передавати й аналізувати приватні (PII) та лікарські (PHI) дані [1]. Це дозволяє робити трансформації у сфері охорони здоров’я, наприклад, дає можливість кожному наступному лікарю пацієнта знати всі його попередні прийоми й хвороби, при цьому не порушуючи особисті права пацієнта, що значно підвищує якість діагностування й лікування хвороби людини.

Реалізація методу

Незалежно від конкретної реалізації (як то BigQuery) суть (алгоритм) подібних рішень полягає у тому, щоб не працювати з усіма даними в DWH, а лише з інкрементальними (новими даними за певний проміжок часу, або у певному вимірі) – такий підхід робить одночасно можливим збереження великої кількості даних та швидку обробку найбільш свіжих даних для аналітики.

Метод передбачає декілька основних дій з обробки та збереженню даних, а саме: прийняття повідомлень за моделлю Pub/Sub (це дозволяє організувати чергу повідомлень й гарантувати доставку кожного повідомлення, як мінімум один раз), потокова обробка прийнятих подій із window-size function, підготовка даних для збереження (первинне сортування), збереження даних у рівень початкових незмінних даних, подальша обробка й перевірка якості даних й їх переміщення на рівень чистих даних, з’єднання окремих подій у плоскі таблиці бізнес-моделі, підготовка даних плоских моделей для використання кінцевими користувачами на рівні view, архівування історичних даних на терміни, визначені вимогами законодавства до DWH.

Для збереження конфіденційності приватних даних використовується технологія Data Masking, усі поля, що мають PII дані, помічені окремою міткою Label у GCP, а Google забезпечує захист цих даних, навіть від розробників системи.

Захист PHI даних реалізовано за визнаним стандартом FHIR Data, за допомогою GCP FHIR DATA API.

Передача даних між рівнями системи реалізована за допомогою Dataflow, Airflow, що дозволяє передавати 100 тис повідомлень за хвилину на 2 робочих віртуальних машинах.

За допомогою розгортання інфраструктури на хмарних ресурсах досягається широке масштабування системи. Масштабування відбувається повністю автоматично (розробник вказує межі масштабування, тобто мінімальне, початкове і максимальне значення перед запуском системи й провайдер хмарних послуг масштабує систему в цих межах) і, що важливо, система може масштабуватися до 0, тобто, коли вона не обробляє нові дані й не зберігає даних більше ніж tier, то вона є безкоштовною – це є дуже важливо на стадії розробки для комерційних компаній, а також для наукових робітників та студентів – вони можуть спробувати модель не витрачаючи значні кошти на інфраструктуру.

Технології реалізації моделі

Для реалізації моделі використано наступні технології.

Pub/Sub – це ресурс для прийняття повідомлень для їх подальшої потокової обробки та передачі у сховище чи іншу систему.

BigQuery – це безсерверне, масштабоване і ефективне рішення для сховища даних, що знаходиться в кількох хмарах [2].

Dataflow – це середовище виконання потокових та пакетних задач по обробці й передачі даних засноване на основі Apache Beam SDK. Це безсерверне середовище, що забезпечує швидку обробку великих масивів даних за помірну ціну [3].

Apache Airflow – це набір бібліотек для моніторингу, запуску, організації, CI/CD інтеграції ETL/ELT задач. Широко використовується для контролю потокової передачі даних між різними середовищами, організаціями, сховищами, і т.п. [4].

DAG – смислове об’єднання задач, яке можна виконати в строгій послідовності у певний час. Зазвичай DAG включає в себе більш ніж один оператор, а основні види операторів включають: BashOperator (для запуску скрипта на Bash), PythonOperator (для виконання скрипта на мові Python), EmailOperator (для відправки листа – зазвичай використовується для внутрішніх нотифікацій), HttpOperator (для обробки Http запитів), SQLOperator (для виконання SQL запитів), Sensor ( оператор очікування події – наступу певного часу, відповіді від БД, тощо) [5].

Composer – це система, що відповідальна за планування виконання DAG-ів та розподілення задач по виконавчим процесам.

Моніторинг системи

У системах зберігання великих даних дуже важливими складовими є моніторинг даних та узгодженість даних [6]. В даній роботі для забезпечення узгодженості й контролю за тим, що дані не втрачаються при передачі, використовувались як існуючі методи, що пропонуються хмарним провайдером, наприклад Cloud Monitoring, Cloud Logging та інші, так і власну систему й алгоритм контролю узгодженості даних – він передбачає створення окремого рівня бази даних, що контролює переміщення даних, шляхом запису усіх транзакцій, й основних ідентифікаторів транзакції й часу виконання. Таким чином завжди можна проконтролювати переміщення даних за певний проміжок часу, їх початковий та кінцевий рівень, успішність перенесення, тощо. Системи, що працюють з BigData завжди мають мати систему автоматизованого моніторингу реального часу, адже людина не може опрацювати такі об'єми даних і виявляти нестачу незначної кількості елементів.

Висновки

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

У результаті тестування було продемонстровано, що розроблений метод дозволяє обробляти сотні тисячі запитів за хвилину на обмежених (безкоштовних) обчислювальних потужностях.

Було продемонстровано шляхи, як система може масштабуватись від безкоштовного прототипу до системи реального розміру.

Було продемонстровано модель різних рівнів та їх призначення у DWH.

Було продемонстровано спосіб обробки й передачі даних між рівнями DWH.

Було описано способи захисту інформації у системах зберігання даних та спосіб маскування приватних даних.

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

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

Використання правильних інструментів для побудови DWH допомогло: реалізувати задачі швидше, зекономити ресурси, підвищити якість, інтегруватись з іншими системами швидко, захистити приватні дані, відобразити дані, використати дані для побудови систем прийняття рішень, в тому числі на основі машинного навчання.

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

Література

{1} https://www.hhs.gov/hipaa/index.html (дата звернення 18.11.2021).

{2} https://cloud.google.com/bigquery (дата звернення 18.11.2021).

{3} https://cloud.google.com/dataflow (дата звернення 18.11.2021).

{4} https://airflow.apache.org (дата звернення 18.11.2021).

{5} https://habr.com/ru/company/vk/blog/339392/ (дата звернення 18.11.2021).

{6} https://aws.amazon.com/data\-warehouse/ (дата звернення 18.11.2021).

Dec 2, 2021