
Blendowanie w Tableau to taka dziwna funkcjonalność, której większość osób używała tylko, gdy było to konieczne. Najlepiej nigdy. Co ciekawe liczba jej zastosowań z roku na rok topnieje. Czy jest taka straszna? I kiedy w ogóle można się na blendowanie natknąć?
Krótka historia o blendowaniu w Tableau
Dawno, dawno temu, gdzieś za wielkim oceanem dobrzy czarodzieje zapragnęli złączyć dane z dwóch tabel. Niestety na danych ciążyła klątwa. Nie dość, że były z dwóch różnych baz danych, to jeszcze różnił je poziom agregacji. Zasmuceni kręcili różdżkami przeszukując księgi zaklęć. Niestety zaklęcie join, którym dysponowali w tamtych czasach, klątwy nie mogło nawet naruszyć.
Aż pewnego pochmurnego dnia, w zaciszu pracowni na szczycie samotnej wieży jeden z nich odkrył eliksir blendowania. Eliksir, który zdołał złączyć przeklęte dane. Nie rozwiązywał wszelkich problemów. Nie łączył danych trwale, a jedynie do tych z pierwszej tabeli dołączał te z drugiej. Przed aplikacją wymagał odnalezienia wymiarów, po których dane z drugiej tabeli miały złączyć się z tymi z pierwszej. Często ograniczał działanie innych magicznych formuł. Nad krainą zagościł jednak spokój. Niektórzy młodzi adepci niemal zachłystywali się eliksirem, zapominając, że gdy zbiory danych są duże, a połączenie po wielu wymiarach, pojawia się ryzyko spadku wydajności magii.
Mijały lata, a czarodzieje dokonywali kolejnych odkryć, które powoli zmniejszały znaczenie eliksiru blendowania. Zaczęło się, gdy ktoś po raz pierwszy rzucił zaklęcie Cross Database Join. Za dotknięciem magicznej różdżki złączyły się dane z dwóch baz. Eliksir wciąż pomagał na różne poziomy agregacji, ale powoli zaczął znikać z codziennego użytku. Stopniowo gościł już tylko na półkach tych bardziej obeznanych z magią. Wciąż jednak krążyły mroczne opowieści o spadku performance’u, blokowaniu formuł i nieprzewidywalności. Z czasem wielu zaczęło się go obawiać, a nawet bać.
Magia nie cierpi jednak pustki, a czarodzieje wciąż poszukują idealnych sposobów na poskromienie danych. Pewnej morowej wiosny zdarzyło się im wyczarować relacje. Te tworząc przyjacielskie powiązania między tabelami pozwoliły niemal zapomnieć o eliksirze z zamierzchłych czasów. Mięciutkie, delikatne relacje nazywały tylko pola powiązań. Nie wiązały tabel ostrymi trwałymi więzami. Zamiast tego wytryskiwały zaklęciami joina, w chwili gdy dane przemieniały się w obraz. Co najważniejsze nie tylko łączyły dane z różnych baz, ale i pozwalały radzić sobie z problemem agregacji.
Uradowani ludzie wiwatowali. Choć zaraza powstrzymała ich przed ruszeniem radosnym orszakiem, słali czarodziejom dziękczynne podarki. Tylko gdzieś z odmętach Teamsa dwie dociekliwe wróżki uparcie mieszały w saganku, by upewnić się czy klątwa rzeczywiście odeszła w niepamięć. I wówczas w oparach nad paleniskiem zobaczyły straszny extract…
Blendowanie w Tableau
Prace Tableau nad relacjami trwały przez wiele miesięcy i mówiło się, że ich zastosowanie pozwoli zrezygnować z blendowania. Rzeczywiście dziś znalezienie sytuacji, gdzie blend jest potrzebny, jest trudne. Ale takie sytuacje wciąż istnieją. Nie zawsze bowiem można zastosować relacje. Relacje nie mogą być stosowane do dołączania tabel RLS i gdy korzystamy ze spacial join lub spacial union.
Przykładowo do tabeli z listą i położeniem warszawskich szpitali dołączamy dane przestrzenne określające granice dzielnic, a następnie jeszcze informacje o budżetach dzielnic na ochronę zdrowia. Pierwsze połączenie wymaga spacial join. Łączy ono tabele płaską z namiarami placówek ochrony zdrowia z shape’ami dzielnic. Ta porcja danych ma szczegółowość na poziomie szpitala. Dane budżetowe są ogólniejsze, na poziomie dzielnicy. Możemy dane połączyć joinem, ale dla każdej dzielnicy wartość budżetu zostanie powtórzona tyle razy, ile jest w niej szpitali. Można to rozwiązanie zaakceptować i radzić sobie dalej wyborem odpowiedniej agregacji lub kalkulacją LOD.
Drugie rozwiązanie w tej sytuacji to dołączyć budżety do tabeli fizycznej zawierającej spacial joina relacją. Niestety rozwiązanie jest ułomne, bo wówczas Tableau blokuje możliwość utworzenia ekstraktów. Trzeba pracować w trybie live.
Trzecia możliwość to dołączenie danych budżetowych starym poczciwym blendingiem. I o dziwo, gdyby danych w zbiorze było bardzo dużo, byłoby to rozwiązanie optymalne. Połączenie joinem w tej sytuacji mogłoby okazać się wolniejsze.
Wróżka Tableau