Niedawno miałem okazję napisać parę słów na temat tego czy hurtownie danych są jeszcze potrzebne w erze samoobsługowych narzędzi Business Intelligence takich jak Power BI czy QlikView. Artykuł został opublikowany w ramach serii JPro firmy JCommerce – zapraszam do lektury!
http://www.jcommerce.pl/jpro/article/hurtownie-danych-a-narzedzia-self-service-business-intelligence
Latest posts by Adrian Chodkowski (see all)
- Avoiding Issues: Monitoring Query Pushdowns in Databricks Federated Queries - October 27, 2024
- Microsoft Fabric: Using Workspace Identity for Authentication - September 25, 2024
- Executing SQL queries from Azure DevOps using Service Connection credentials - August 28, 2024
Nie jestem specjalistą od BI, więc jeżeli mylę się w moim poniższym komentarzu, to bardzo proszę o poprawienie mnie. Może niektórzy klienci wykorzystujący systemy BI obawiają się posługiwania tylko “jedną wersją prawdy”? I chcą mieć możliwość otrzymywania danych pochodzących z różnych źródeł, tak aby mogli je porównywać między sobą. To tak jak w przypadku firm zajmujących się badaniem opinii społecznej czy popularności jakiś produktów (np. porównajmy bardzo duże różnice przy szacowaniu popularności języków programowania). Jedna wersja prawdy zawęża ogląd, i może dlatego popularnością cieszą się systemy self-service BI? Drugą sprawą jest uniknięcie przywiązania (czy skazania się) na jeden system hurtowni danych, i wynikający stąd jeden system algorytmów analitycznych. Może klienci BI wolą nie przywiązywać się do tego, również finansowo, lecz chcą zapewnić sobie możliwość łatwego “przełączania się” pomiędzy różnymi dostawcami danych, algorytmów, itd. Domyślam się że w takim przypadku spadnie jakość danych i pojawią się problemy z ich ujednolicaniem przy ładowaniu do jakiegoś oprogramowania BI, ale jak to zwykle bywa, coś za coś.
Natomiast mam pytanie o sposób fizycznego przechowywania danych używanych do analiz BI. W przypadku klasycznych hurtowni danych jest to jasne. Hurtownia przechowuje te dane w sposób fizyczny, trwały, gdzieś na nośnikach. Część tych danych jest pewnie surowa, część pewnie jakoś przygotowana (kostki analityczne), nie wiem tego na 100%, ale domyślam się. W przypadku zmian modelu danych czy algorytmów analitycznych, konieczne prace przeprowadza się “na miejscu”, w tej hurtowni, na danych i algorytmach w niej przechowywanych. A jak sprawa wygląda w przypadku narzędzi self-service BI? Bo jeżeli jest to tylko końcowa aplikacja kliencka, to będzie operować zwizualizowanymi danymi (wykresy, dashboardy), a jeżeli tabelami, to pewnie tak przerobionymi analitycznie, że nie będzie możliwości sięgnięcia do niższego poziomu, gdzieś do kostek czy zbioru danych surowych. Zatem po zapisaniu na dysku np. laptopa końcowego pliku z raportem BI, zapiszemy jedynie obrobione dane wraz z ich wizualizacją. A co gdy trzeba będzie coś zmienić w danych źródłowych, modelu danych czy algorytmach? Czy wtedy zapisany plik BI stanie się bezużyteczny, i czy trzeba będzie od początku “ciągnąć” dane z różnych baz transakcyjnych?
Napisałeś tak: “Tworząc wewnętrzne struktury danych dla narzędzia self-service BI, często nazywane modelem danych, tworzymy tak naprawdę hurtownię danych. Wszelkie modele, których rolą jest zastąpienie hurtowni danych, w rzeczywistości są hurtowniami danych”. A może to nie jest utworzenie hurtowni, bo jej właściwie nie ma(?). Z jednej strony mamy systemy transakcyjne, a z drugiej oprogramowanie s-s Bi. A warstwa pośrednia o której piszesz, czyli te modele danych, pełnią rolę “filtru” poprzez który dane są zasysane z baz transakcyjnych do softu BI. Ale to jest model “zhurtowienia” albo “hurtowizacji” danych, a nie fizyczna hurtownia ze zbiorami danych. Tak to widzę, ale może błędnie, wiec nie obstaję przy swoim.
Czy wiadomo jak statystycznie wygląda udział hurtowni danych oraz rozwiązań s-s BI w przypadku małych/średnich firm oraz tych bardzo dużych?
Oczywiście to co napisałem to nie jest próba usprawiedliwienia narzędzi self-service BI, lecz takie po prostu moje przemyślenia, nie fachowca lecz hobbysty. Zresztą to co napisałeś w akapitach o konsekwencjach i bezpieczeństwie użytkowania oprogramowania s-s BI wskazuje wyraźnie na to, że nie warto rezygnować z klasycznej hurtowni danych.
Jeśli chodzi o jedną wersję prawdy nie chodzi tutaj o to aby na siłę ujednolicać dane ale o to aby dane były spójne i wiarygodne. Weźmy na przykład dane finansowe czy też sprzedażowe – tutaj jedna wersja prawdy jest nie tyle mile widziana co wymagana. Brak hurtowni danych nie jest gwarantem niepowodzenia jednakże może poważnie zagrozić wiarygodności np. jeżeli raportujemy np. sprzedaż za ostatni kwartał i w jednym raporcie mamy wynik sprzedażowy X, a w drugim raporcie wynik sprzedażowy Y. Tutaj nie chodzi nawet o konkretne narzędzie tylko o to, że ładując coś kilkukrotnie do osobnych jednostek raportowych musimy przygotować dwa razy proces ładujący i model analityczny. Patrząc na to z tej strony można powiedzieć, że technologia zatoczyła koło – hurtownie danych miały uporządkować i zestandaryzować procesy, a teraz chcemy ją ominąć i znów rozbić logikę na kilka części. Nie mówię oczywiście, że self-service BI jest złe (jest wręcz odwrotnie) jednakże bardzo często jest traktowane jako lek na całe zło i oszczędność (którą w gruncie rzeczy nie jest).
Popularność narzędzi Self-Service wynika przede wszystkim z efektywnych i efektownych wizualizacji ( w pełni zasłużenie). Jednakże warto też pomyśleć jak wygląda kwestia utrzymania takiego rozwiązania.
Jeśli chodzi o możliwość przełączania się miedzy technologiami – mimo wszystko narzędzia self-service to też poważna inwestycja i samo przełączanie między technologiami jest wręcz niemożliwe. Np. modele zrobione w Power BI można jedynie przepisać od początku na QlikView czy Tableau i na odwrót. W hurtowniach również trzeba przepisać proces ETL jednakże struktura itp jest uniwersalna i może być w większości przypadków w mniejszym lub większym stopniu przenoszona pomiędzy różne systemy bazodanowe (w końcu to tylko baza danych).
Co do drugiej części twojego komentarza – w przypadku zmian w systemie źródłowym trzeba zmienić proces ładujący do hurtowni i każdy pojedynczy proces ładujący w narzędziu Self-Service BI. Jeżeli dystrybucja raportów Self-Service BI odbywa się w taki sposób, że każdy ma swoją kopię raportu to niestety każdy z nich staje się bezużyteczny i wymaga zmiany (na szczęście można stworzyć jeden raport tego typu i umieścić na np. jakimś portalu intranetowym).
Jeśli chodzi o tym czy modele w narzędziach są podobne do hurtowni czy też nie – moim zdaniem ich funkcja jest bardzo podobna. Hurtownia ma swój model w postaci gwiazdy lub płatka śniegu – narzędzia self service mają dokładnie takie samo podejście (lub bardzo podobne z małymi modyfikacjami). Dlatego też jeśli istnieje N modeli self-service to każdy z nich ma swój proces ładujący (ETL) i swój model (ten model może nie przechowywać danych tylko pobierać je na bieżąco ale równie dobrze takie dane mogą się w nim znajdować) co przy większych rozwiązaniach może powodować bardzo duże koszty utrzymaniowe.
Statystyki tego typu niestety nie są mi znane 🙂 Jednakże można się spodziewać, że duże firmy praktycznie zawsze mają hurtownie danych i jeżeli używają narzędzi Self-Service to jedynie pod kątem wizualizacji danych ale bez ich przekształcania. W małych przedsiębiorstwach jest wręcz odwrotnie – tam coś takiego jak hurtownia danych bardzo rzadko występuje.
Twój komentarz daje do myślenia i podoba mi się, że ktoś ma swoją opinię i wnioski. Chciałbym tylko podkreślić, że nie jestem przeciwnikiem Self-Service (wręcz przeciwnie! Jestem jej zagorzałym fanem:)) a podejścia ich wykorzystywania we wszystkich możliwych scenariuszach – do czego zachęcają dostawcy i sprzedawcy dla których liczy się przede wszystkim zysk.
Dzięki za wyjaśnienia. To co napisałem w moim pierwszym komentarzu, to są wnioski wyciągnięte na podstawie tego co przeczytałem o Self-Service BI w różnych źródłach, lub tego co usłyszałem na różnych spotkaniach poświęconych BI. Ale na takich spotkaniach zwykle nie mówiono o modelach stosowanych do obróbki danych. Głównie skupiano się na możliwościach wizualizacji danych, nad tworzeniem raportów na urządzenia mobilne, itp.