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 pozycję 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ę .
Poziom powiększenia można zmienić, klikając , albo używając suwaka. Aby przywrócić poziom powiększenia do 1:1, kliknij .
Panel podglądu umożliwia zapoznanie się z zawartością tabeli lub pola. Po wybraniu pola można też dodawać do aplikacji wymiary i miary. Więcej informacji zawiera temat Podgląd tabel i pól w przeglądarce modelu danych.
Przenoszenie tabel
Tabele można przenosić, przeciągając je po kanwie. Pozycje tabel są zapisywane w chwili zapisania aplikacji.
Układ tabel, czyli ich pozycje i rozmiary, można zablokować, klikając przycisk w prawej części kanwy. Aby odblokować układ tabel, kliknij przycisk .
Opcje menu na pasku narzędzi umożliwiają automatyczne dobranie układu:
Element interfejsu użytkownika | Nazwy | Opis |
---|---|---|
Układ siatki | Rozmieszcza tabele na siatce. | |
Automatyczny układ | Dopasowuje rozmieszczenie tabel do rozmiaru okna. | |
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 jest zapisywany w chwili zapisania aplikacji.
Na pasku narzędzi są też dostępne opcje automatycznego rozmiaru ekranowego:
Element interfejsu użytkownika | Nazwy | Opis |
---|---|---|
Zwiń wszystko | Minimalizuje wszystkie tabele, aby były widoczne tylko ich nazwy. | |
Pokaż połączone pola | Zmniejsza obszar zajmowany przez tabele, wyświetlając jedynie nazwę tabeli i pola skojarzone z innymi tabelami. | |
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 poprawia użyteczność aplikacji.
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. |
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. Należy jednak rozwiązywać wszystkie ostrzeżenia związane z odwołaniami cyklicznymi, patrz Rozpoznawanie i naprawianie odwołań cyklicznych. |
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 w celu uzyskania maksymalnej szybkości odczytu danych ze skryptu 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. |
Optymalizacja plików QVD podczas ładowania |
Pliki QVD mogą być odczytywane w dwóch trybach: standardowym (szybkim) i zoptymalizowanym (szybszym). Wybrany tryb jest automatycznie określany przez silnik obsługi skryptów. Istnieją pewne ograniczenia dotyczące ładowania zoptymalizowanego. Istnieje możliwość zmiany nazw pól, ale każda z tych operacji spowoduje standardowe ładowanie:
|
Wykorzystanie ładowania przyrostowego |
Jeśli aplikacja łączy się z dużą ilością danych z baz danych, które są na bieżąco aktualizowane, przeł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. |
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ć. |
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. |
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. |
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)). Jeśli znacznik czasu ma być obecny, można go odłączyć od samej daty. Można użyć tej samej funkcji Floor(), a następnie utworzyć nowe pole z wyodrębnionym czasem, używając na przykład: 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ć:
|
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. |
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 pliki 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.