# 01 :: Wizualizacja danych - interaktywne dashboardy z danymi
###### tags: `Wizualizacja danych + dashboardy` `Tableau`
[TOC]
# Business Intelligence
Business Intelligence (BI, analiza biznesowa) to proces polegający na przetwarzaniu dostępnych danych w informacje, anastępnie w wiedzę. BI pozwala na przyspieszenie procesu decyzyjnego w firmie, zwiększenie efektywności pracy oraz zysków.
Co odróżnia Business Intelligence od tradycyjnego gromadzenia danych? Najważeniajsza jest **kompleksowość** - głównym zadaniem BI jest zbieranie informacji z różnych źródeł (np. systemów ERP, CRM, marketingowych), co umożliwia przeprowadzanie przekrojowych analiz. Nie mniej ważna są **wysoka jakość danych** i **ciągły proces ich przetwarzania** (nieustanny monitoring oraz automatyczne przygotowywanie raportów w czasie rzeczywistym).
Dzięki BI zyskujemy dostęp do większej ilości danych, których interpretacja jest realtywnie łatwa i szybka - pozwala to na zdobycie dokładnego rozeznania w **ad hoc** sytuacji organizacji w skali makro i mikro.
# 1. Informacje podstawowe - wybrane platformy BI
* Tableau
* Microsoft Power BI
* Google Data Studio

<center><small> Rys.-1 Magic Quadrant dla platform analitycznych i Business Intelligence</small></center>
## 1.1 Platforma Tableau
[Rys.0](#rys0) pokazuje komponenty platformy Tableau oraz ich przeznaczenie.
<a id="rys0"></a>
<center><small>Rys.0 Proces przygotowania wizualizacji BI.</small></center>
## 1.2 Proces przygotowania wizualizacji - Tableau
[Rys.1](#rys1) prezentuje główne czynności składające się na proces przygotowania prezentacji w Tableau.
<a id="rys1"></a>
<center><small>Rys.1 Proces przygotowania wizualizacji BI.</small></center>
## 1.3 Organizacja plików projektu wizualizacji
Typowy projekt wizualizacji realizowany w ramach BI wymaga budowy repozytorium składającego z co najmniej kilku rodzajów plików:
1. Pliki związane z *Data source* - są to pliki przechowujące dane, np: ***csv, xls, txt, ...***
1. Pliki przechowujące skoroszyt *Tableau* - pliki z rozszerzeniem ***twb***.
1. Pliki tzw. *extract* źródła danych Tableau - pliki przechowujące podzbiory danych wyodrębnione ze źródła danych w celu optymalizacji dostępu do danych i zapewnienia funkcjonalności nie wspieranych przez oryginalne źródłó danych . [Szczegółowe informacje ze strony producenta.](https://https://help.tableau.com/current/pro/desktop/en-us/extracting_data.htm) Rozszerzenie plików *extract* - **hyper**.
1. Pliki, tzw. spakowany skoroszyt (*packaged workbook*) - plik, któy łączy skoroszyt Tableau z *extract* źródła danych w jedną całość - rozszerzenie **twbx**.
:::warning
**Uwaga** :warning:
Zalecane jest utworzenie hierarchicznej, dedykowanej struktury plików, w celu przechowywania danych związanych z wszystkimi projektami realizowanymi na zajęciach. Obowiązuje zasada: wszystkie pliki związane z jednym projektem zapisujemy w jednym folderze.
Poniżej proponowana przykładowa struktura organizacji plików.
```graphviz
digraph hierarchy {
node [color=Red,fontname=Courier,shape=box]
edge [color=Grey, style=dashed]
NazwiskoImię->{"01 zajęcia" "02 zajęcia"".."}
"01 zajęcia"->{"01 ćwiczenie" "02 ćwiczenie" "03 ćwiczenie"}
"01 ćwiczenie"->{"data source \nxls,csv,.." "Tableau workbook\n*.twb" "Tableau extract \n *.hyper" "Tableau packaged \nworkbook *.twbx"}
}
```
:::
## 1.3. Tableau Public - założenie konta na serwerze
W celu publikacji przygotowanych wizualizacji należy posiadać konto na serwerze Tableau. Tableau oferuje dwa rodzaje serwerów:
1. serwery komercyjne - wymagana licencja; oferuje rozbudowane metody zarządzania uprawnieniami i organizowania opublikowanych wizualizacji;
1. serwer darmowy udostępniany przez Tableau, tzw. [*Tableau Public*](https://public.tableau.com/) - serwer niekomercyjny; ograniczone możliwości zarządzania opublikowanymi wizualizacjami.
# 2. Przygotowanie wizualizacji w Tableau
## 2.1 Przygotowanie źródła danych
:::info
:information_source: **Ważne**
Tableau przetwarza dane zgromadzone w płaskiej tabeli, składającej się z nazwanych kolumn (serii danych) i kolejnych wierszy reprezentujących kolejne rekordy danych.
Tableau nie akceptuje formatowania w poszczególnych komórkach ani **scalonych komórek**.
:::
Po uruchomieniu Tableau należy zdefiniować *Data source*, z którego będziemy korzystać przygotowując wizualizację. W naszym wypadku wskazujemy na przygotowany plik *xls* i wybieramy do analizy arkusz *Orders* - Rys.4.

<center><small>Rys.4 Data source w Tableau</small></center>
### 2.2.1 Uzgodnienie typów serii danych
Po definicji *data source* należy sprawdzić, czy typy poszczególnych serii danych (kolumn) domyślnie przyjęte przez system zgadzają się z oczekiwanym przez nas typem. Rys. 5 prezentuje interfejs typu danych w kontekście wybranej kolumny.

<center><small>Rys.5 Okno dialogowe wyboru typu danych dla kolumny.</small></center>.
### 2.2.2 Geokodowanie
W przypadku serii danych (kolumn), które mają kontekst geograficzny można spróbować automatycznego geokodowania oferowanego przez Tableau. W tym celu dla wybranej kolumny nalezy przyporządkować *Geographic role* - **w analizowanym przykładzie należy dla kolumn *city, state, country* wybrać: *geographic role*$\rightarrow$*City, State/province, Country/Region**.
W wyniku geokodowania system przyporządkuje do rekordów w wybranej kolumnie automatycznie wygenerowane współrzędne geograficzne: szerokość geograficzna (*latitude*) i długość geograficzna (*longitude*).
<iframe src="https://pl.wikipedia.org/wiki/Wsp%C3%B3%C5%82rz%C4%99dne_geograficzne" width=100% height=400></iframe>
## 2.3 Przygotowanie składowych wizualizacji
W celu opracowania [**finalnego kokpitu**](https://public.tableau.com/shared/HC78M9XM3?:display_count=n&:origin=viz_share_link) kolejno przygotowujemy poszczególne wizualizacje.

### 2.3.1 Wykres słupkowy (*horizontal bars*)
Wykres słupkowy pownien pokazywać liczbę zamówień (*Count Distinct(Order ID)*), które zostały wysłane różnymi rodzajami przesyłek (*Ship mode*). Atrybut koloru w całym kokpicie został połączony z atrybutem *Market* ze źródła danych.

### 2.3.2 Tabela tekstowa (*text table*)
Tabela pokazuje wartość sprzedaży lub zysku (*Sales, Profit*) vs data zamówienia (*Order Date*).

W celu uzyskania efektu drążenia danych w kategoriach geograficznych została skonstruowana hierarchia danych: Market $\rightarrow$ Region $\rightarrow$ Country $\rightarrow$ City.

W celu umożliwienia dynamicznego przełączania danych: Sales --- Profit:
* zdefininowano parametr

* zdefiniowano pole obliczeniowe

a następnie wykorzystano jako miarę wyśietlaną w tabeli wartość pola obliczeniowego *ParamSalesProfit*.
### 2.3.3 Mapa
W celu przygotowania prezentacji mapowej należy wykorzystać automatycznie wygenerowane podczas geokodowania współrzędne geograficzne: *latitiude* i *longitude*. Współrzędne te należy przeciągnąć odpowiednio:
* *latitude* $\rightarrow$ Rows,
* *longitutde* $\rightarrow$ Columns.
Na atrybut szczegóły (*Details*) w kokpicie *Marks* należy przeciągnąć serię danych, którą chcemy pokazać na mapie - w naszym przypadku *City*.

W kolejnym kroku należy:
* wybrać typ wizualizacji - *mapa*,
* pokolorować mapę po wybranym atrybucie - proponuję serię **Sales**,
* skonfigurować etykiety danych.
### 2.3.3 Wykres kołowy/pierścieniowy (pie/donut chart)

## 2.4 Przygotowanie kokpitu managerskiego (*dashboard*)
W celu przygotowania kokpitu wybieramy opcję *New dashboard* z dolnego menu zakładek wizualizacji.

Metodą *drag and drop* układamy na pustym obszarze roboczym poszczególne wizualizacje w odpowiednim porządku.

Pozostaje do skonfiurowania:
* tytuły poszczególnych wizualziacji - menu kontekstowe, opcja *Edit title*,
* poukładanie komponentów sterujących w odpowiednim miejscu kokpitu.
## 2.5 Publikacja na serwerze *Tableau Public*
Ostatnim etap jest publikacja wizualziacji na serwerze *Tableau Public*. W tym celu:
* na zakładce *Data source* zamieniamy typ połączenia z *Live* na *Extract*,
* menu górne: Server $\rightarrow$ Tableau Public $\rightarrow$ Save to Tableau Public; po podaniu danych logowania wybieramy nazwę dla wizualziacji na serwerze i publikujemy wizualizację.
---
*[BDL]: Bank Danych Lokalnych
*[BI]: Business Intelligence