Pracujesz z licencją Explorera i chcesz połączyć dane? A może masz licencję Creatora, a twoje możliwości łączenia ograniczone są przez kwestie związane z bezpieczeństwem danych? Jeśli tak, to zdecydowanie powinieneś poczytać o Data Blending.
Jak łączymy dane w Tableau?
Każdy, kto pracuje w Tableau świetnie wie, że czasem jedna tabela z danymi nie wystarcza. Konieczne jest „dobranie” dodatkowych informacji z innej. Na takie sytuacje mamy kilka różnych rozwiązań. Można poprosić inżyniera danych, żeby zrobił to w SQL-u. Przeważnie jednak samodzielność jest lepsza. Osoby pracujące z licencją Creatora mają do dyspozycji trzy rozwiązania: joiny, relacje i blending. Te pierwsze pozwalają połączyć dane na trwałe w jedną dużą tabelę. Relacje z kolei pozostawiają tabele osobno, ale definiują sposób szybkiego połączenia danych, gdyby tylko było ono potrzebne. Wtedy Tableau automatycznie tworzy odpowiednie joiny. I jest jeszcze blending. Najłatwiej zdefiniować go, jako zagregowany left join „w locie”. Tylko co to właściwie znaczy i kiedy się przydaje?
Kiedy blending, czyli garść historii
Historycznie blendowanie danych w Tableau miało spore znaczenie. Służyło łączeniu danych pochodzących z różnych baz danych. Potem pojawił się cross database join, czyli możliwość łączenia takich danych joinem. I z tego zastosowania blending został niemal wyparty. Wciąż jednak blending pozwala na łączenie danych na różnych poziomach szczegółowości. Dziś jednak wypierają go relacje. Kiedy zatem może się przydać?
Po pierwsze dla osoby z licencją Explorera. Może ona tworzyć raporty wyłącznie na podstawie gotowych źródeł danych, zapisanych na Tableau Online (Cloud) lub Tableau Server. Co za tym idzie nie ma dostępu do joinów i relacji. Ma jednak dostęp do blendowania.
Z kolei jeśli masz licencję Creatora, wciąż możesz pracować na źródle zabezpieczanym w ramach Row Level Security. Dołączanie do źródła tabeli pozwalającej ustawić bezpieczeństwo na poziomie wiersza niemal uniemożliwia korzystanie z relacji. Z joinami nie ma wprawdzie problemu, ale one nie sprawdzają się przy źródłach o różnym poziomie szczegółowości. Wtedy warto pomyśleć o blendowaniu.
Jak działa blending ?
Cytowałam tu już moją ulubioną definicję. Mówi ona, że „blending to zagregowany left join w locie”. Jak to wyjaśnić? Najlepiej oczywiście krok po kroku. Zacznijmy od left joina. Co to jest? To jedna z metod łączenia dwóch tabel w jedną dużą zbiorczą. Łącząc zaczynamy od zidentyfikowania pola klucza. To kolumna z wymiarem, który jest wspólny dla obu tabel. W przykładzie poniżej to „Segment”. Czasem takich wspólnych pól, po których łączymy może być kilka. Left join polega na tym, że do wszystkich wierszy z pierwszej tabeli, „lewej”, dołączamy te z drugiej, które mają wartości pola klucza występujące w tabeli pierwszej. Tam, gdzie niema danych do dołączenia, pozostawiane są puste komórki (null-e). Dokładnie ilustruje to rysunek poniżej.

W blendowaniu left join jest dodatkowo zagregowany. Oznacza to odmienne podejście do sytuacji, gdy w tabeli po prawej stronie mamy kilka wierszy odpowiadających wierszowi po stronie lewej. W przypadku joina do tabeli zbiorczej zostaną dodane wszystkie te wiersze, każdy z osobna. Przy blendingu wartości z tabeli prawej zostaną zagregowane i w zagregowanej postaci wykorzystane dalej. Taka agregacja to najczęściej suma i to ilustruje obrazek poniżej.

To właśnie to agregowanie powoduje, że blending jest przydatny przy różnych poziomach danych. Dzięki niemu nie następuje niepotrzebne duplikowane wierszy.
No i zostaje kwestia hasła „w locie”. Blending działa jak left join z tym tylko zastrzeżeniem, że left join jest stałym połączeniem tabel. Integrakną częścią przygotowania źródła danych. Blendowanie jest budowane na poziomie jednej konkretnej wizualizacji i tylko w niej działa.
Ograniczenia blendingu
Nie bez przyczyny blending był stopniowo wypierany przez inne rozwiązania. Nie bez przyczyny również spora część użytkowników Tableau podchodzi do niego jak do jeża. Ma pewne wady. Najpoważniejsza to fakt, że nie działa w przypadku agregacji nieaddytywnych. Możemy zatem sumować, czy wyliczyć średnią. Nie możemy jednak skorzystać ze zliczania pozycji unikalnych – COUNTD, czy mediany. Problemem mogą być też wszystkie funkcje liczbowe (Number Functions) za wyjątkiem MIN() i MAX(). Nie wyliczymy zatem na zblendowanych danych pierwiastka, kosinusa, czy zaokrąglenia. No i wreszcie sporo kłopotów nastręcza wyliczenie jakkolwiek kalkulacji LOD w oparciu o blending. To zatem rozwiązania raczej do prostszych zadań. Ale czasem nie ma wyboru.
Agata Mężyńska
Tableau Desktop Certified Professional