Wzorce przetwarzania danych to dziś jeden z kluczowych tematów w inżynierii oprogramowania. W obliczu rosnącej złożoności środowisk danych, potrzeby analizy w czasie rzeczywistym oraz nacisku na automatyzację, umiejętne projektowanie i implementacja systemów przetwarzania danych stają się niezbędne.
Jak pokazuje raport 2024 State of Analytics Engineering opublikowany przez dbt Labs, ponad 57% specjalistów ds. danych wskazuje na niską jakość danych jako główną przeszkodę w efektywnym wykorzystaniu danych w organizacjach.
Odpowiednia architektura oraz zastosowanie właściwych wzorców przetwarzania danych nie tylko wspierają efektywne procesy ETL/ELT, ale także umożliwiają integrację z narzędziami powszechnie wykorzystywanymi w środowiskach korporacyjnych, takimi jak Microsoft Excel.
W tym artykule przyjrzymy się ewolucji wzorców architektonicznych w kontekście przetwarzania danych oraz pokażemy na praktycznym przykładzie, jak integracja z Excelem może usprawnić dostęp i analizę danych w czasie rzeczywistym – bez konieczności budowania odrębnych paneli frontendowych.
Czym jest ETL, a czym ELT?
Podstawą architektury przetwarzania danych są procesy ETL (Extract, Transform, Load) oraz ELT (Extract, Load, Transform). W przypadku ETL dane są:
- Ekstrahowane z różnych źródeł,
- Transformowane (np. oczyszczane, normalizowane),
- Ładowane do docelowej bazy danych lub hurtowni.
Z kolei w ELT dane najpierw trafiają w surowej postaci do magazynów danych (np. Data Lake), a transformacja następuje dopiero, gdy potrzebujemy je wykorzystać. ELT to podejście bardziej elastyczne, pozwalające operować na pełnych, niefiltrowanych danych.
Ewolucja rozwiązań do przetwarzania danych
- Bazy danych (lata 60.) – Pionier: Charles Bachman.
- Data Warehouse (lata 80.) – Twórcy: Barry Devlin i Paul Murphy (IBM).
- Centralizacja danych.
- Historyczne analizy.
- Wysokie koszty utrzymania.
- Data Mart – Popularne dzięki Ralphowi Kimballowi.
- Skupienie na konkretnym obszarze biznesowym.
- Redundancja i ograniczona perspektywa.
- Data Lake – James Dixon (Pentaho).
- Przechowywanie surowych, różnorodnych danych.
- Ryzyko powstania „data swamp”.
- Data Fabric – Promowane przez IBM i Oracle.
- Łączy dane z wielu źródeł w jednorodną tkaninę logiczną.
- Szybki dostęp i zarządzanie w czasie rzeczywistym.
- Data Mesh – Twórczyni: Zhamak Dehghani (NextData, ex-ThoughtWorks).
- Decentralizacja i odpowiedzialność domenowa.
- Interfejsy API jako sposób udostępniania danych.
- Data Lakehouse (od 2020) – Firma: Databricks (twórcy Apache Spark).
- Połączenie zalet Data Lake i Data Warehouse.
- Obsługa zarówno danych strukturalnych, jak i niestrukturalnych.
Inne popularne wzorce przetwarzania danych
- CDC (Change Data Capture) – zestaw wzorców projektowych oprogramowania używanych do określania i śledzenia danych, które uległy zmianie, tak aby można było podjąć działania na podstawie zmienionych danych.
- Lambda Architecture – przetwarzanie wsadowe + strumieniowe.
- Kappa Architecture – koncentruje się na przetwarzaniu danych wyłącznie w trybie strumieniowym.
- Data Vault – technika modelowania danych zaprojektowana tak, aby zapewnić przechowywanie danych historycznych z wielorakich systemów operacyjnych
Integracja z Microsoft Excel w przetwarzaniu danych – przykładowe zastosowanie
Microsoft Excel, choć często postrzegany jako narzędzie biurowe, może stać się potężnym narzędziem do interakcji z danymi przetwarzanymi w systemach backendowych. Przykład zrealizowany w projekcie FireUp.pro pokazał, że:
- Użytkownik otrzymuje wtyczkę do Excela (tzw. Office Add-in), która umożliwia:
- Wywoływanie funkcji zdefiniowanych w projekcie (w JavaScript).
- Pobieranie danych przez WebSocket z backendu aplikacji.
- Konfiguracja oparta jest na pliku manifest.xml, definiującym m.in. linki do skryptów JS (hostowanych np. na Amazon S3).
- Wtyczka:
- Jest przypisywana użytkownikom przez administratora konta Office 365.
- Może zawierać widoki, logo firmy i funkcje, które działają jak zwykłe formuły Excela (np. =getCustomerData(„ID123”)).
- Dane aktualizowane są dynamicznie w arkuszu, np. przy użyciu eventów wysyłanych przez backend (wsparcie WebSocket).
- Komunikację i debugowanie umożliwia narzędzie „Developer Tools” w Excelu.
Technologie i narzędzia używane w projekcie:
- JavaScript + Yeoman Generator for Office Add-ins
GitHub: https://github.com/OfficeDev/generator-office - WebSocket API do komunikacji z backendem
- Office Add-in Manifest Reference: https://learn.microsoft.com/en-us/office/dev/add-ins/develop/add-in-manifests
Podsumowanie
Zrozumienie wzorców projektowych i architektur danych pozwala nie tylko lepiej projektować systemy przetwarzania danych, ale również skuteczniej integrować je z narzędziami, które są już dobrze znane i powszechnie stosowane przez użytkowników biznesowych, takimi jak Excel.
fireup.pro wspiera takie wdrożenia, łącząc nowoczesną architekturę danych z praktyczną automatyzacją procesów.
Chcesz wdrożyć nowoczesne wzorce przetwarzania danych w swojej firmie i zintegrować je z narzędziami, z których korzysta Twój zespół na co dzień, jak Excel? Skontaktuj się z nami – zbudujemy dla Ciebie wydajne rozwiązanie. Dowiedz się więcej: https://fireup.pro/uslugi/przetwarzanie-danych