Klucze syntetyczne

Gdy co najmniej dwie tabele danych mają co najmniej dwa pola wspólne, sugeruje to relację klucza złożonego. Aplikacja Qlik Sense obsługuje tę funkcję przez automatyczne tworzenie kluczy syntetycznych. Wspomniane klucze to pola anonimowe reprezentujące wszystkie występujące kombinacje klucza złożonego.

W przypadku otrzymania ostrzeżenia dotyczącego kluczy syntetycznych podczas ładowania danych zaleca się skontrolowanie struktury danych w przeglądarce modelu danych. Należy upewnić się, czy model danych jest poprawny. Czasami jest, ale często klucz syntetyczny to konsekwencja błędu w skrypcie.

Duża liczba kluczy syntetycznych to często (choć nie zawsze) objaw niepoprawnego modelu danych. Obecność kluczy syntetycznych opartych na innych kluczach syntetycznych to jednak wyraźny sygnał błędów w modelu danych.

Ostrzeżenie: Gdy liczba kluczy syntetycznych rośnie, aplikacja Qlik Sense w zależności od ilości danych, struktury tabeli i innych czynników może sprawnie je obsługiwać, ale czasami może to skutkować spowolnieniem lub nadmiernym wykorzystaniem pamięci. W takim przypadku należy zmodyfikować skrypt, usuwając wszystkie klucze syntetyczne.
Trzy tabele powiązane z kluczem syntetycznym $Syn 1.

Three tables associated with a synthetic key.

Obsługa kluczy syntetycznych

Jeśli trzeba unikać kluczy syntetycznych, istnieje kilka sposobów na rozwiązanie tego problemu w skrypcie ładowania danych:

  • Upewnić się, że jako klucze używane są tylko pola, które logicznie łączą dwie tabele.

    • Takie pola, jak „Komentarz”, „Uwaga” i „Opis”, mogą istnieć w kilku tabelach bez powiązań, dlatego nie powinny być używane jako klucze.
    • Takie pola, jak „Data”, „Firma” i „Nazwa”, mogą istnieć w kilku tabelach i mieć identyczne wartości, a jednocześnie różnić się rolami (data zamówienia / data wysyłki, firma klienta / firma dostawcy). W takim przypadku nie należy ich używać jako kluczy.
  • Upewnić się, że nie są używane zbędne pola — i że łączone są tylko pola niezbędne. Jeśli na przykład kluczem jest data, trzeba uważać, aby nie załadować pola year, month lub day_of_month z tą samą datą z więcej niż jednej tabeli wewnętrznej.

  • W razie konieczności utworzyć własne klucze niezłożone, co zazwyczaj realizuje się poprzez konkatenację ciągów znaków w obrębie funkcji skryptu AutoNumber.