Інтернет-конференції НУБіП України, ТЕОРЕТИЧНІ ТА ПРИКЛАДНІ АСПЕКТИ РОЗРОБКИ КОМП’ЮТЕРНИХ СИСТЕМ '2023

Розмір шрифту: 
РОЗРОБКА СИСТЕМИ УПРАВЛІННЯ ЗАСОБАМИ ЗАВАНТАЖЕННЯ ДАНИХ У SNOWFLAKE
Олександр Сергійович Гутаревич

Остання редакція: 23-04-2023

Тези доповіді


УДК 004.42

РОЗРОБКА СИСТЕМИ УПРАВЛІННЯ ЗАСОБАМИ ЗАВАНТАЖЕННЯ ДАНИХ У SNOWFLAKE

Гутаревич О.С., науковий керівник Ткаченко О.М.

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

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

Крім того, бази даних використовують технологію обробки даних OLTP (Online transaction processing), яка забезпечує швидку обробку великої кількості коротких онлайн-транзакцій, натомість сховища даних використовують технологію обробки даних OLAP (Online analytical processing) для швидкого аналізу величезних обсягів даних.

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

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

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

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

Наразі ринок хмарних сховищ даних росте з кожним роком, адже все більше компаній відмовляються від високовартісного обладнання на користь хмарних рішень. Прогнозується, що до 2028 року ринок сховищ даних зросте до 50 млрд. доларів США.[1]

На сьогодні на ринку існує декілька рішень хмарних сховищ даних: Snowflake, Google BigQuery, Amazon Redshift, Azure Synapse. Кожне з них має свої особливості, переваги та недоліки.

Нині лідером на ринку є Snowflake – перше хмарне сховище даних, розроблене з врахуванням всіх аспектів та особливостей хмарних обчислень. Він постачається як SaaS (Software-as-a-Service - програмне забезпечення як послуга), хоча самі творці Snowflake виділяють окрему концепцію для свого продукту – Datawarehouse-as-a-Service (сховище даних як послуга). Snowflake можна розгорнути на найпопулярніших хмарних провайдерах, таких як Amazon Web Services, Microsoft Azure та Google Cloud Platform.

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

Однією з ключових задач при використанні  Snowflake є завантаження в нього даних, для чого рекомендується використовувати специфічні об’єкти завантаження даних сервісу Snowpipe. [2]

Хоч і Snowflake є лідером ринку хмарних сховищ, існуючі інструменти для управління засобами завантаження даних в Snowflake містять ряд недоліків, які погіршують досвід користувача та можуть призвести до проблем в процесі підтримки хмарного сховища даних: історія використання об’єктів завантаження даних зберігається лише протягом 14 днів і видаляється разом з самими об’єктами; відсутній графічний інтерфейс користувача для керування, використання та перегляду історії об’єктів завантаження даних.

Для вирішення визначених проблем управління об’єктами Snowpipe, в дипломній роботі була спроектована та реалізована окрема система. Розроблена система складається з двох частин: серверний застосунок ASP.NET Core Web API та клієнтський SPA з використанням технології Blazor WASM.

Обидва застосунки реалізовані на платформі .NET 6, мова програмування – C#. Для збереження даних використовується база даних Microsoft SQL Server, взаємодія з якою відбувається за допомогою Entity Framework Core. Для створення зручної та красивої розмітки клієнтського застосунку використовувався фреймворк Bootstrap.

Розроблена  система дозволяє користувачам автоматично зберігати історію існування і використання об’єктів завантаження даних у Snowflake та надає зручний графічний інтерфейс для керування ними.

 

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

  1. Data Warehousing Market Insights [Електронний ресурс] – Режим доступу до ресурсу: https://www.alliedmarketresearch.com/data-warehousing-market (дата звернення: 20.03.2023)
  2. “Jumpstart Snowflake. A Step-by-Step Guide to Modern Cloud Analytics” Dmitry Anoshin, Dmitry Shirokov, Donna Strok [Книга] – Режим доступу до ресурсу: https://books.google.com.ua/books?id=5BHGDwAAQBAJ