# Wyświetlanie i przekształcanie modelu danych

Przeglądarka modelu danych przedstawia przegląd struktury danych aplikacji. Można przeglądać szczegółowe metadane na temat tabel i pól. Dodatkowo można tworzyć nowe wymiary i miary z pól danych.

Kliknij Przeglądarka modelu danych w menu nawigacyjnym aplikacji, aby otworzyć przeglądarkę modelu danych.

Każda tabela danych jest reprezentowana przez pole zawierające nazwę tabeli jako tytuł i listę wszystkich pól z tabeli. Asocjacje w tabeli są przedstawione za pomocą linii, a linia kropkowana oznacza odwołanie cykliczne. W przypadku wyboru tabeli lub pola podświetlenie asocjacji natychmiast przedstawia obraz powiązań pól i tabel. Konkretne tabele i pola można wyszukiwać, klikając pozycję the Wyszukaj model danych icon.

Model danych wyświetla strukturę danych aplikacji.

Model danych wyświetla strukturę danych aplikacji.

Model danych wyświetla strukturę danych aplikacji. ![Przeglądarka modelu danych](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_data_model_viewer.png)

Poziom powiększenia można zmienić, klikając the powiększ icon, the pomniejsz icon albo używając suwaka. Aby przywrócić poziom powiększenia do 1:1, kliknij the Strona główna icon.

Panel podglądu umożliwia zapoznanie się z zawartością tabeli lub pola. Po wybraniu pola możesz również dodawać wymiary i miary do aplikacji. Więcej informacji zawiera temat [Podgląd tabel i pól w przeglądarce modelu danych](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataModeling/preview-tables-fields-data-model-viewer.htm).

## Przenoszenie tabel

Tabele można przenosić, przeciągając je po kanwie. Pozycje tabel zostaną zapisane po zapisaniu aplikacji.

Układ tabel, czyli ich pozycje i rozmiary, można zablokować, klikając przycisk the Zablokowane icon w prawej części kanwy. Aby odblokować układ tabel, kliknij przycisk the Odblokowano icon.

Opcje menu the Widok siatki icon na pasku narzędzi umożliwiają automatyczne dobranie układu:

Opcje przeznaczone do przenoszenia tabel

| Element interfejsu użytkownika | Nazwa | Opis |
| --- | --- | --- |
| the Widok siatki icon | Układ siatki | Rozmieszcza tabele na siatce. |
| the Automatyczny icon | Automatyczny układ | Dopasowuje rozmieszczenie tabel do rozmiaru okna. |
| the Godzina icon | Przywróć układ | Przywraca stan układu z chwili ostatniego otwarcia przeglądarki modelu danych. |

## Zmiana rozmiaru tabel

Ikona strzałki w prawym dolnym rogu tabeli umożliwia zmianę rozmiaru ekranowego tabeli. Rozmiar ekranowy nie zostanie zapisany po zapisaniu aplikacji.

Na pasku narzędzi są też dostępne opcje automatycznego rozmiaru ekranowego:

Opcje przeznaczone do zmiany rozmiaru tabeli

| Element interfejsu użytkownika | Nazwa | Opis |
| --- | --- | --- |
| the Zwiń icon | Zwiń wszystko | Minimalizuje wszystkie tabele, aby były widoczne tylko ich nazwy. |
| the Zredukuj icon | Pokaż połączone pola | Zmniejsza obszar zajmowany przez tabele, wyświetlając jedynie nazwę tabeli i pola skojarzone z innymi tabelami. |
| the Rozwiń icon | Rozwiń wszystkie | Maksymalizuje wszystkie tabele, aby były widoczne wszystkie ich pola. |

## Wydajność modelu danych

Są to wskaźniki, które mogą mieć wpływ na wydajność modelu danych. Każdy z nich stanowi najlepszą praktykę, która poprawi użyteczność aplikacji.

Najlepsze praktyki w zakresie wydajności modelu danych

| Działanie | Opis |
| --- | --- |
| Usunięcie kluczy syntetycznych | Qlik Sense tworzy klucze syntetyczne, gdy co najmniej dwie tabele danych mają dwa lub więcej wspólnych pól. Może to oznaczać, że w skrypcie lub modelu danych występuje błąd. Diagnostyka kluczy syntetycznych, patrz [Klucze syntetyczne](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/synthetic-keys.htm). |
| Usunięcie odwołań cyklicznych z modelu danych | Odwołania cykliczne występują, gdy dwa pola mają więcej niż jedną asocjację. Qlik Sense spróbuje je rozwiązać poprzez zmianę połączenia z jedną z tabel. Jednakże wszystkie ostrzeżenia o odwołaniach cyklicznych powinny zostać rozwiązane, zobacz [Rozpoznawanie i naprawianie odwołań cyklicznych](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/understand-circular-references.htm). |
| Odpowiednia szczegółowość danych | Należy ładować tylko te dane, które są niezbędne. Na przykład: grupa użytkowników potrzebuje tylko danych podzielonych według tygodnia, miesiąca i roku. W celu oszczędzenia w pamięci można załadować dane zagregowane lub zagregować dane w skrypcie ładowania. Jeśli użytkownik potrzebuje wizualizacji danych na niższym poziomie szczegółowość, można użyć ODAG lub powiązać łańcuchowego łączenia dokumentów. |
| Stosowanie plików QVDs tam, gdzie jest to możliwe | QVD to plik zawierający tabelę danych wyeksportowanych z programu Qlik Sense. Ten format pliku jest zoptymalizowany pod kątem szybkości podczas odczytywania danych ze skryptu, ale nadal jest bardzo kompaktowy. Format pliku jest zoptymalizowany w celu uzyskania maksymalnej szybkości odczytu danych przez skrypty przy zachowaniu niewielkich rozmiarów. Odczyt danych z pliku QVD jest zazwyczaj 10–100 razy szybszy niż odczyt z innych źródeł danych. Więcej informacji zawiera temat: [Praca z plikami QVD](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-QVD-files.htm). |
| Optymalizacja plików QVD podczas ładowania | Dostępne są dwa tryby odczytu plików QVD: standardowy (szybki) i zoptymalizowany (szybszy). Wybrany tryb jest automatycznie określany przez silnik obsługi skryptów.<br><br>Istnieją pewne ograniczenia dotyczące ładowania zoptymalizowanego. Istnieje możliwość zmiany nazw pól, ale każda z tych operacji spowoduje standardowe ładowanie:<br><br><ul><li>Jakiekolwiek transformacje pól, które są ładowane. </li><li>Użycie klauzuli <span>where</span>, co spowoduje, że program <span>Qlik Sense</span> rozpakuje rekordy. </li><li>Użycie polecenia <span>Map</span> względem ładowanego pola.</li></ul> |
| Wykorzystanie ładowania przyrostowego | Jeśli Twoja aplikacja łączy się z dużą ilością danych z baz danych, które są stale aktualizowane, ponowne załadowanie całego zestawu danych może być czasochłonne. Zamiast tego do pobierania nowych lub zmienionych rekordów z bazy danych należy używać ładowania przyrostowego. Więcej informacji można znaleźć w temacie [Ładowanie nowych i zaktualizowanych rekordów za pomocą funkcji ładowania przyrostowego](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/use-QVD-files-incremental-load.htm). |
| Konsolidacja modelu Snowflake | W przypadku modelu danych Snowflake można zmniejszyć liczbę tabel danych, łącząc niektóre z nich przy użyciu prefiksu Join lub innego mapowania. Jest to szczególnie ważne w przypadku dużych tabel faktów. Dobrą zasadą ogólną jest stosowanie tylko jednej dużej tabeli. Więcej informacji w temacie [Łączyć, czy nie łączyć](https://community.qlik.com/t5/Qlik-Design-Blog/To-Join-or-not-to-Join/ba-p/1463102). |
| Tabele z małą ilością pól są zdenormalizowane | W przypadku dwóch tabel z kilkoma polami połączenie ich może poprawić wydajność. Więcej informacji zawiera temat [Łączenie tabel operatorami Join i Keep](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-with-join-keep.htm). |
| Zdenormalizowane tabele wyszukiwania (liść) z mapowaniem ładowania | Nie należy używać prefiksu Join , jeśli chce się tylko dodać jedno pole z jednej tabeli do drugiej. Należy użyć funkcji wyszukiwania ApplyMap , patrz [Nie łącz – używaj funkcji ApplyMap](https://community.qlik.com/t5/Qlik-Design-Blog/Don-t-join-use-Applymap-instead/ba-p/1467592). |
| Usunięcie lub odłączenie znaczników czasu od pola daty | Pola dat mogą wypełniać przestrzeń, gdy obecny jest znacznik czasu, ponieważ reprezentacja w postaci ciągu i liczba odrębnych wartości są większe. Jeśli precyzja nie jest konieczna do analizy, możesz zaokrąglić znacznik czasu do np. najbliższej godziny za pomocą funkcji Timestamp(Floor(YourTimestamp,1/24)) lub całkowicie usunąć składnik czasu za pomocą funkcji Date(Floor(YourTimestamp)).<br><br>Jeśli znacznik czasu ma być obecny, można go odłączyć od samej daty. Możesz użyć tej samej funkcji Floor(), a następnie utworzyć nowe pole z wyodrębnionym czasem, używając czegoś w rodzaju: Time(Frac(YourTimestamp)). |
| Usunięcie niepotrzebnych pól z modelu danych | Do modelu danych należy ładować tylko niezbędne pola. Należy unikać Load \* i SELECT. Pamiętaj, aby zachować:<br><br><ul> <li>Pola, które są niezbędne do analizy.</li> <li>Pola, które są faktycznie używane w aplikacji. </li> </ul> |
| Unikanie tabel łączy w przypadku dużych ilości danych | W miarę możliwości należy korzystać z tabel łączy. Jednakże w przypadku dużych ilości danych skonkatenowane tabele mogą zapewniać wyższą wydajność niż tabele łączy. |
| Rozdzielanie skonkatenowanych wymiarów na nowe pola | Skonkatenowane wymiary należy rozdzielać na osobne pola. Zmniejsza to liczbę unikatowych wystąpień wartości w polach. Jest to podobne do optymalizacji znaczników czasu. |
| Używanie funkcji AutoNumber, gdy jest to możliwe | Ładowanie zoptymalizowane można utworzyć, najpierw ładując dane z pliku QVD, a następnie używając instrukcji AutoNumber celem przekształcenia wartości na klucze symboli.Więcej informacji zawiera temat [AutoNumber](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Autonumber.htm). |
| Unikanie wysp danych | Wyspy danych mogą być użyteczne, ale zazwyczaj wpływają na wydajność. W przypadku tworzenia wysp dla wartości wyboru należy używać zmiennych. |
| Przechowywanie plików QVD w oparciu o przyrostowe przedziały czasu | Pliki QVD należy przechowywać w segmentach, np. miesięcznych. Te mniejsze miesięczne QVD mogą następnie obsługiwać wiele różnych aplikacji, które niekoniecznie będą potrzebować wszystkich danych. |

Więcej informacji dotyczących najlepszych praktyk zawiera temat [Najlepsze praktyki w zakresie modelowania danych](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataModeling/best-practices-data-modeling.htm).

Powiązane materiały edukacyjne:

* [Wprowadzenie do przeglądarki modeli danych](https://help.qlik.com/lnk/Intro_Data_Model_Viewer_QS)
* [Ładowanie danych z bazy danych](https://help.qlik.com/lnk/Loading_data_from_database_QS)

## Dowiedz się więcej

* [Wprowadzenie do przeglądarki modeli danych](https://help.qlik.com/lnk/Intro_Data_Model_Viewer_QS)
* [Ładowanie danych z bazy danych](https://help.qlik.com/lnk/Loading_data_from_database_QS)