Hurtownia danych w chmurze – czemu nie!

Start / Blog / Hurtownia danych w chmurze – czemu nie!

Hurtownie danych jako źródła dla raportów i analiz są powszechnie stosowane w celu zwiększenia mocy obliczeniowych zarówno dla odbiorców raportów oraz analiz jak i dla korzystających z systemu transakcyjnego.

Wyobraźmy sobie sytuację, że dane źródłowe systemu transakcyjnego przechowujemy w relacyjnej bazie danych. Następnie raz na dzień są one przenoszone przez procesy ETL do hurtowni danych na której realizowane jest raportowanie i analiza danych, z dziennym opóźnieniem. Większość osób związanych z IT zna lub miała styczność z takim rozwiązaniem. Takie rozwiązanie można zrealizować korzystając ze swojej infrastruktury. Wymaga to zakupu dodatkowych serwerów, instalacji ich w serwerowni, konfiguracji a następnie utrzymania całego rozwiązania zarówno od strony sprzętu jak i oprogramowania. Jednak czy zawsze wartość dodana takiego rozwiązania jest większa niż poniesione koszty? Czasem warto rozważyć możliwość skorzystania z usług dostawców rozwiązań chmurowych i po prostu przenieść dane do chmury obliczeniowej?

Dostawcy chmury tacy jak Amazon, Google czy Microsoft oferują dedykowane rozwiązania i usługi umożliwiające optymalizację zarówno procesu przenoszenia jak i samego korzystania z hurtowni danych. Dobranie właściwych usług w chmurze w połączeniu z analizą potrzeb użytkowników końcowych umożliwia stworzenie rozwiązania optymalnego nie tylko kosztowo i wydajnościowo ale także łatwego w utrzymaniu i w rozbudowie.

Szczególnie warto powierzyć swoją hurtownie danych dostawcy usług chmurowych gdy:

  • Spodziewamy się dużego obciążenia tylko w ciągu kilku dni w miesiącu podczas których realizowana jest sprawozdawczość. Dzięki funkcjonalności autoscalling w rozwiązaniach chmurowych możemy na newralgiczne dni zwiększyć moc obliczeniową a w pozostałych dniach ograniczać zasoby dzięki czemu zmniejszymy koszty infrastruktury.
  • Nie mamy możliwości poniesienia dużych wydatków jednorazowo na zakup infrastruktury.
  • Zasoby ludzkie nie umożliwiają nam utrzymanie infrastruktury sprzętowej na poziomie zapewniającym oczekiwania użytkowników końcowych.
  • Posiadana infrastruktura sprzętowa jest lub za chwilę będzie przestarzała i będzie wymagała modernizacji lub wymiany na nową.

 

Wybrane usługi platformy Amazon Web Service do stworzenia hurtowni danych

Amazon S3 – Simple Storage Service
  • Usługa do przechowywanie plików płaskich
  • Umożliwia przechowywanie dowolnych rodzajów plików
  • Pliki można dzielić w ramach S3 na buckety i katalogi
  • Umożliwia nadawanie uprawnień do poszczególnych elementów
  • Różne rodzaje S3: Standard, Intelligent-Tiering, Standard AI i One Zone AI - infrequent access, Glacier i Glacier Deep Archive

 

Amazon Athena
  • Usługa do przeszukiwania plików z danymi przechowywanymi na S3
  • Umożliwia używanie języka SQL
  • Usługa typu serverless
  • Bardzo prosta w użyciu
  • Pobieranie danych ze zdefiniowanych obiektów opartych na plikach w S3

 

Amazon Redshift/ Redshift Spectrum
  • Hurtowni danych w chmurze AWS
  • Oparta na MPP (Massive Parallel Processing)
  • Bardzo łatwo skalowalna
  • Zbudowana na silniku PostgreSQL
  • Schemat umożliwiający tworzenie tabel External do plików w Amazon S3

 

Amazon Glue Data Catalog
  • Umożliwia tworzenie obiektów w usługach AWS
  • Repozytorium definicji dla obiektów
  • Stworzone w jednym miejscu obiekty dostępne będą w wielu usługach, np. Redshift, Athena, S3, RDS, DynamoDB

 

Apache Airflow
  • Open Source
  • Zarządzanie procesami/zadaniami
  • Harmonogramowanie procesów/zadań
  • Alternatywa do narzędzi ETL
  • Umożliwia tworzenie transformacji w języku Python

 

Wizualizacja danych dla użytkowników końcowych może być realizowana przez większość popularnych narzędzi klasy BI my rekomendujemy Tableau BI.

 

Architektura procesu przenoszenia i udostępniania danych w chmurze AWS

Architektura w chmurze

Surowe dane źródłowe przetrzymywane są jako pliki płaskie w Amazon S3. Za konwersję danych z systemów źródłowych do plików płaskich odpowiadają skrypty Python uruchamiane w Apache Airflow. Dane potrzebne na potrzeby raportowania przechowywane jako pliki parquet utworzone przez skrypty SQL uruchomione na Amazon Athena lub jako tabele bazodanowe hurtowni Amazon Redshift. Dzięki Glue model danych i dane dostępne są zarówno w Amazon Athena jak i Amazon Redshift a dzięki Spectrum mogą to być tabele external.

 

Wykorzystanie chmury obliczeniowej - korzyści

Wdrożenie chmury w organizacji przynosi korzyści:

  • Zmniejszenie kosztów infrastruktury
  • Zmniejszenie kosztów utrzymania systemów
  • Zwiększenie możliwości skalowalności systemów
  • Skrócenie czasu tworzenia nowych aplikacji poprzez stosowanie gotowych komponentów
  • Łatwość integracji komponentów i usług chmury
  • Bezpieczeństwo przetwarzania danych
  • Możliwość udostępnienia komponentów poszczególnym działom oraz partnerom
  • Możliwość przeprowadzenia migracji typu Lift and Shift
  • Możliwość używania tylko potrzebnych w danej chwili zasobów

Podsumowując, rynek usług chmurowych rozbudowuje się bardzo dynamicznie dzięki czemu wiele funkcjonalności może być realizowany bez tworzenia dodatkowego oprogramowania a wdrożenie opiera się na dobraniu usług, ich integracji, konfiguracji, tworzeniu modelu danych i procesów ładujących oczekiwane dane.