Rozpoznawanie i naprawianie odwołań cyklicznych
Gdy struktura danych zawiera odwołania cykliczne (pętle), tabele są skojarzone w taki sposób, że istnieje więcej niż jedna ścieżka powiązania dwóch pól.
Takich struktur danych należy unikać, ponieważ mogą powodować niejednoznaczne interpretowanie danych.
W programie Qlik Sense problem odwołań cyklicznych można rozwiązać, przerywając pętlę za pomocą tabeli luźno powiązanej. W razie znalezienia cyklicznych struktur danych podczas wykonywania skryptu ładowania w programie Qlik Sense wyświetli się okno dialogowe z ostrzeżeniem, po czym co najmniej jedna tabela zostanie ustawiona jako luźno powiązana. Program Qlik Sense podejmie zazwyczaj próbę poluzowania najdłuższej z tabel należących do pętli, ponieważ często będzie to tabela transakcyjna, która powinna być w pierwszej kolejności ustawiana jako luźno powiązane. W przeglądarce modelu danych tabela luźno powiązana jest wskazywana czerwoną linią przerywaną biegnącą do innych tabel.
Przykład:
Dane są ładowane z trzech tabel, które obejmują:
- Nazwy piłkarskich reprezentacji narodowych
- Kluby piłkarskie w niektórych miastach
- Miasta w niektórych europejskich krajach
Ta struktura danych nie jest naprawdę prawidłowa, ponieważ nazwa pola Team jest używana dla dwóch różnych celów: dla drużyn narodowych i klubów lokalnych. Dane w tabelach tworzą niemożliwą sytuację logiczną.
W przypadku ładowania tabel do programu Qlik Sense program Qlik Sense ustala, które połączenie do danych jest najmniej istotne i poluzowuje tę tabelę.
Aby sprawdzić, w jaki sposób program Qlik Sense interpretuje istotność połączeń do danych, należy otworzyć przeglądarkę modelu danych:
Tabela z miastami i krajami, do których należą, jest teraz luźno powiązana z tabelą zawierającą drużyny narodowe różnych krajów, a także z tabelą zawierającą kluczy lokalne z różnych miast.
Naprawianie odwołań cyklicznych
Jeśli powstaną odwołania cykliczne, trzeba zmodyfikować skrypt ładowania danych, przypisując niepowtarzalną nazwę jednemu z pól, które mają identyczne nazwy.
Wykonaj następujące czynności:
- Otwórz edytor skryptu ładowania danych.
-
Edytuj instrukcję LOAD dla jednego z pól o zduplikowanych nazwach.
W tym przykładzie instrukcja LOAD tabeli, która zawiera drużyny lokalne oraz ich miasta, będzie zawierać nową nazwę dla pola Team, na przykład LocalClub. Zmodyfikowana instrukcja LOAD będzie następująca:
LOAD City, Team as LocalClub
- Kliknij przycisk na pasku narzędzi, aby przeładować dane w aplikacji.
Po wykonaniu tych operacji otrzymujemy logikę, która działa we wszystkich tabelach. Jeśli w tym przykładzie zostanie wybrana wartość Germany, wówczas zostanie skojarzona reprezentacja narodowa, miasta we Włoszech, a także lokalne kluby w każdym mieście:
Po otwarciu przeglądarki modelu danych widać, że połączenia luźno powiązane zostały zastąpione zwykłymi: