Przeskocz do zawartości głównej

Klucze syntetyczne

NA TEJ STRONIE

POWIĄZANE MATERIAŁY EDUKACYJNE

Klucze syntetyczne

Qlik Sense tworzy klucze syntetyczne, gdy co najmniej dwie tabele danych mają dwa lub więcej wspólnych pól. 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 należy skontrolować strukturę danych w przeglądarce modelu danych. Należy upewnić się, czy model danych jest poprawny. Czasami jest, ale przeważnie klucz syntetyczny to konsekwencja błędu w skrypcie.

Duża liczba kluczy syntetycznych to często 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.