# 01 Lab - Business Intelligence
###### tags: `Business Intelligence` `Tableau`
[TOC]
# Wprowadzenie - cel ćwiczenia
Podczas zajęć należy przygotować kokpit managerski *(dashboard)* złożony z trzech arkuszy - wizualizacji *(sheets)* przygotowanych w Tableau.
[Prezentacja ma zawierać ilustrację długości dróg ekspresowych i autostrad w Polsce na przestrzeni ostatnich 5 lat z podziałem na województwa](https://public.tableau.com/shared/85CH2W6Q6?:display_count=n&:origin=viz_share_link).
# 1. Informacje podstawowe
## 1.1. 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.2 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. Dane źródłowe
Dane źródłowe do prezentacji należy pobrać z portalu udostępnianego przez GUS - [**Bank danych lokalnych**, tzw. **BDL**](https://bdl.stat.gov.pl/BDL/).
* nazwa zbioru danych: *Drogi ekspresowe i autostrady*,
* gałąź w BDL: *Dane wg dziedzin $\rightarrow$ Transport i łączność $\rightarrow$ Drogi publiczne*,
<iframe src="https://bdl.stat.gov.pl/BDL/start" width=100% height="400" frameborder=0></iframe>
* należy wyświetlić dane dla wszystkich województw, **bez danych sumarycznych dla cełego kraju**
* należy pobrać i zapisać dane w formacie tablica relacyjna CSV lub ZIP.
#### Co to jest format CSV?
<iframe src="https://pl.wikipedia.org/wiki/CSV_(format_pliku)" width=100% height=300 frame=0></iframe>
## 1.4. 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
Jako źródło danych można wykorzystać jeden z plików pobranych z BDL.
:::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**.
:::
W bieżącym ćwiczeniu proponuję wykorzystać pobrany plik w formacie *csv*.
## 2.2 Definicja *Data Source* w Tableau
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 *drogi ekspresowe* - 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 wyboru 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 kolumny *województwo* wybrać: *geographic role*$\rightarrow$*State/province***.
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
### 2.3.1 Wykres słupkowy (*horizontal bars*)
W pierwszej kolejności przygotowujemy wykres słupkowy z Rys.0.
Tableau wspiera technikę pracy *drag and drop* - wykonywanie poszczególnych czynności często sprowadza się do przeciągania odpowiednich elementów na wybrany kontekst.
W celu przygotowania wizualizacji:
1. wybieramy serie danych do wizualizacji na poszczególnych osiach wykresu - przeciągamy odpowiednie serie z kokpitu *Data* na pola *Columns* oraz *Rows*;

1. z okna *Show Me* wybieramy docelowy typ wizualizacji;

1. formatujemy wizualizację za pomocą kokpitu *Marks*.

Należy przyporządkować odpowiednie formatowanie dla atrybutów:
1. Colors - metodą *drag and drop* przeciągmy na przycisk serię danych, która ma być wykorzystana do pokorlowania wykresu,
2. Size,
3. Label - formatujemy etykiety danych,
4. Tooltip - formatujemy tutaj automatycznie pokazujące się podczas przesuwania wskaźnikiem nad seriami danych dymki podpowiedzi.
Formatowanie można przeprowadzić w kontekście wybranej serii danych lub wszystkich serii prezentowanych na wizualizacji (zakładka *All*).
### 2.3.2 Tabela tekstowa (*text table*)
Postępujemy jak w przypadku wykresu słupkowego, zmieniamy jedynie typ wizualizacji na *text table* w okienku *Show Me*.
### 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 *województwo*.

W kolejnym kroku należy:
* wybrać typ wizualizacji - *mapa*,
* pokolorować mapę po wybranym atrybucie - proponuję serię danych odpowiadającą 2018r,
* skonfigurować etykiety danych.
## 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 - jak na [Rys.0](#rys0).
## 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ę.
# Ćwiczenie do samodzielnej realizacji
W ramach ćwiczenia należy przygotować i opublikować na swoim profilu *Tableau Public* analogiczną prezentację ilustrującą długość autostrad w poszczególnych województwach w ostatnich 5 latach. :smile:
---
*[BDL]: Bank Danych Lokalnych
*[BI]: Business Intelligence