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.

Trzy tabele z odwołaniem cyklicznym, ponieważ istnieje więcej niż jedna ścieżka powiązań między dwoma polami.
Three tables with a circular reference.

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.

Example:  

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
Widok źródłowych tabel danych w programie Excel.

Tables in Excel.

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:

Widok odwołań cyklicznych zaznaczonych czerwonymi liniami przerywanymi.
Circular references between tables.

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:

  1. Otwórz edytor skryptu ładowania danych.
  2. 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

  1. 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:

Sheet with four tables.

Po otwarciu przeglądarki modelu danych widać, że połączenia luźno powiązane zostały zastąpione zwykłymi:

Three tables with regular connections in the Data model viewer.