Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Hierarchy

Prefiks hierarchy służy do przekształcenia tabeli hierarchii nadrzędne-podrzędne w tabelę nadającą się do zastosowania w modelu danych Qlik Sense. Podanie go przed instrukcją LOAD lub SELECT sprawi, że wynik instrukcji ładującej będzie używany jako dane wejściowe dla transformacji tabeli.

Prefiks tworzy tabelę węzłów rozszerzonych, która zwykle zawiera tyle samo wierszy co tabela wejściowa, ale dodatkowo w osobnym polu zapisane są poziomy hierarchii. Pole ścieżki może być użyte w strukturze drzewa.

Składnia:  

Hierarchy (NodeID, ParentID, NodeName, [ParentName, [PathSource, [PathName, [PathDelimiter, Depth]]]])(loadstatement | selectstatement) 

 

Tabela wejściowa musi być tabelą węzłów sąsiadujących. Tabela węzłów sąsiadujących to tabela, w której każdy rekord odpowiada jednemu węzłowi i zawiera pole z odwołaniem do węzła macierzystego. W takiej tabeli każdy węzeł jest zapisany tylko w jednym rekordzie, ale mimo to może mieć dowolną liczbę węzłów potomnych. Tabela może oczywiście zawierać dodatkowe pola opisujące atrybuty węzłów.

Prefiks tworzy tabelę węzłów rozszerzonych, która zwykle zawiera tyle samo wierszy co tabela wejściowa, ale dodatkowo w osobnym polu zapisane są poziomy hierarchii. Pole ścieżki może być użyte w strukturze drzewa.

Tabela wejściowa zawiera zwykle dokładnie jeden rekord na każdy węzeł i w takim przypadku tabela wyjściowa będzie zawierać tyle samo rekordów. Niekiedy istnieją też jednak węzły o wielu elementach macierzystych, przez co jednemu węzłowi odpowiada kilka rekordów w tabeli wejściowej. W takim przypadku tabela wyjściowa może zawierać więcej rekordów od tabeli wejściowej.

Wszystkie węzły bez identyfikatora węzła nadrzędnego w kolumnie identyfikatora węzła (w tym węzły z brakującym identyfikatorem węzła nadrzędnego) zostaną uznane za węzły najwyższego poziomu. Ponadto zostaną załadowane jedynie węzły posiadające połączenie (bezpośrednie lub pośrednie) z węzłem najwyższego poziomu, co pozwala unikać odwołań cyklicznych.

Można tworzyć dodatkowe pola zawierające nazwę węzła nadrzędnego, ścieżkę węzła i głębokość węzła.

Argumenty:  

Argumenty
Argument Opis
NodeID Nazwa pola zawierającego identyfikator węzła. To pole musi istnieć w tabeli wejściowej.
ParentID Nazwa pola zawierającego identyfikator węzła nadrzędnego. To pole musi istnieć w tabeli wejściowej.
NodeName Nazwa pola zawierającego nazwę węzła. To pole musi istnieć w tabeli wejściowej.
ParentName Ciąg znaków używany jako nazwa nowego pola ParentName. W przypadku pominięcia to pole nie zostanie utworzone.
ParentSource Nazwa pola zawierającego nazwę węzła użytą podczas budowania ścieżki do węzła. Parametr opcjonalny. W razie jego pominięcia zostanie użyte pole NodeName.
PathName Ciąg znaków używany do nazwania nowego pola Path, które zawiera ścieżkę od elementu najwyższego poziomu do węzła. Parametr opcjonalny. W przypadku pominięcia to pole nie zostanie utworzone.
PathDelimiter Ciąg znaków używany jako separator w nowym polu Path. Parametr opcjonalny. W razie jego pominięcia zostanie użyty znak „/”.
Depth Ciąg znaków używany do nazwania nowego pola Depth, które zawiera głębokość węzła w hierarchii. Parametr opcjonalny. W przypadku pominięcia to pole nie zostanie utworzone.

Przykład:  

Hierarchy(NodeID, ParentID, NodeName, ParentName, NodeName, PathName, '\', Depth) LOAD * inline [

NodeID, ParentID, NodeName

1, 4, London

2, 3, Munich

3, 5, Germany

4, 5, UK

5, , Europe

];

 

NodeID ParentID NodeName NodeName1 NodeName2 NodeName3 ParentName PathName Depth
1 4 London Europe UK London UK Europe\UK\London 3
2 3 Munich Europe Germany Munich Germany Europe\Germany\Munich 3
3 5 Germany Europe Germany - Europe Europe\Germany 2
4 5 UK Europe UK - Europe Europe\UK 2
5   Europe Europe - - - Europe 1

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!