Przeskocz do zawartości głównej

Składnia rozszerzeń po stronie serwera

NA TEJ STRONIE

Składnia rozszerzeń po stronie serwera

Przegląd rozszerzeń po stronie serwera (SSE) Qlik można znaleźć tutaj: https://github.com/qlik-oss/server-side-extension.

Funkcje skryptów

Istnieje osiem odmian funkcji skryptu. W skrypcie ładowania wszystkie powinny działać tak samo, ale w tym zastosowaniu typowe jest użycie ScriptEval.

Użycie skryptu ładowania LOAD * EXTENSION działa na zasadzie tabela wejściowa-tabela wyjściowa (TITO) i wnioskuje prawidłowe typy danych z wewnętrznych definicji tabeli i metadanych.

Podczas używania tych funkcji jako wyrażeń wykresu używana funkcja jest ważna i będzie mieć znaczny wpływ na wyniki i wydajność żądania.

ScriptEval a ScriptAggr

Istnieją dwa zestawy funkcji skryptowych: ScriptEval i ScriptAggr:

ScriptEval: po zagregowaniu hiperkostki wszystkie wiersze w określonych kolumnach są wysyłane do łącznika SSE. Oczekiwana odpowiedź to pojedyncza kolumna. W przypadku zwrócenia większej liczby kolumn zostanie wybrana pierwsza kolumna, która ma taką samą liczbę wierszy jak dane wejściowe. Wiersze w zwróconej kolumnie muszą być w tej samej kolejności co dane wejściowe.

ScriptAggr: przed agregacją hiperkostki wysyłane są wszystkie wiersze dla pojedynczej grupy wymiarów hiperkostki i oczekuje się, że SSE zwróci pojedynczą odpowiedź: 1 kolumna i 1 wiersz. Dla każdej wartości wymiaru zostanie wysłane do SSE jedno żądanie. Chociaż istnieją zastosowania takiego przypadku, ta metoda jest rzadko używana, ponieważ może powodować problemy z wydajnością, jeśli funkcja ScriptAggr zostania wywołana z dużą liczbą wartości wymiarów

Typy danych

Istnieją cztery warianty żądań, które określają kombinacje typów danych wejściowych i wyjściowych:

  • ScriptEval(Script, Field 1, [Field n]): W tym przykładzie wszystkie pola wejściowe muszą być liczbowe i odpowiedź również musi być liczbowa.

  • ScriptEvalStr(Script, Field 1, [Field n]): W tym przykładzie wszystkie pola wejściowe muszą być ciągiem i odpowiedź również musi być ciągiem.

  • ScriptEvalEx(DataTypes, Script, Field 1, [Field n]): W tym przykładzie pola wejściowe mogą być ciągiem lub liczbą, jednak pierwszy parametr jest ciągiem typów danych, a odpowiedź musi być liczbowa.

  • ScriptEvalExStr(DataTypes, Script, Field 1, [Field n]): W tym przykładzie pola wejściowe mogą być ciągiem lub liczbą, jednak pierwszy parametr jest ciągiem typów danych, a odpowiedź musi być ciągiem.

Parametr DataTypes to ciąg składający się ze znaków S i N w kolejności pól.

Przykłady

Przykład:  

Skrypt, który dodaje 2 pola liczbowe:

ScriptEval('Script',num1,num2)

Przykład:  

Skrypt, który konkatenuje 2 ciągi znaków:

ScriptEvalStr('Script',str1,str2)

Przykład:  

Skrypt, który przewiduje prawdopodobieństwo (liczbę) przy użyciu kombinacji danych wejściowych w postaci ciągów i liczb:

ScriptEvalEx('SSNN','Script',str1, str2, num1, num2)

Przykład:  

Skrypt, który przewiduje klasyfikację (ciąg znaków) przy użyciu kombinacji danych wejściowych w postaci ciągów i liczb:

ScriptEvalExStr('SSNN','Script',str1, str2, num1, num2)