SSE-syntax
Een overzicht van de Qlik Server Side Extensions (SSE) vindt u hier: https://github.com/qlik-oss/server-side-extension.
Scriptfuncties
Er zijn acht scriptfunctievariaties. In het load-script moeten ze allemaal hetzelfde gedrag vertonen, maar meestal wordt in dit scenario ScriptEval gebruikt.
Gebruik van het load-script LOAD * EXTENSION werkt met een tabel-in tabel-uit methode en herkent de correcte gegevenstypen van de interne tabeldefinities en -metagegevens.
Als deze functies worden gebruikt als diagramuitdrukkingen, is de gebruikte functie belangrijk en zorgt deze voor een significant verschil in de resultaten en prestaties van het verzoek.
ScriptEval versus ScriptAggr
Er zijn twee verzamelingen scriptfuncties, ScriptEval en ScriptAggr:
ScriptEval: nadat de hyperkubus is geaggregeerd, worden alle rijen in de opgegeven kolommen naar de SSE-connector verzonden. De verwachte respons is een enkele kolom. Als meerdere kolommen worden geretourneerd, wordt de eerste kolom gekozen die hetzelfde aantal rijen heeft als de invoer. De rijen in de geretourneerde kolom moeten dezelfde volgorde hebben als de invoer.
ScriptAggr: voordat de hyperkubus wordt geaggregeerd, worden alle rijen voor een enkele dimensiegroep in de hyperkubus verzonden en retourneert de SSE naar verwachting een enkele respons van 1 kolom, 1 rij. Voor elke dimensiewaarde wordt één verzoek naar de SSE verzonden. Hoewel er gebruiksvoorbeelden zijn, wordt deze methode zelden gebruikt, omdat die prestatieproblemen kan veroorzaken als ScriptAggr wordt aangeroepen met een groot aantal dimensiewaarden
Gegevenstypen
Er zijn vier variaties van de verzoeken, die de invoer- en uitvoergegevenstypecombinaties specificeren:
-
ScriptEval(Script, Field1, [Field n]): In dit voorbeeld moeten de invoervelden allemaal numeriek zijn en moet de respons numeriek zijn.
-
ScriptEvalStr(Script, Field 1, [Field n]): In dit voorbeeld moeten de invoervelden allemaal tekenreeksen zijn en moet de respons een rekenreeks zijn.
-
ScriptEvalEx(DataTypes, Script, Field 1, [Field n]): In dit voorbeeld kunnen de invoervelden tekenreeks of numeriek zijn, maar is de eerste parameter een tekenreeks van de gegevenstypen en moet de respons numeriek zijn.
-
ScriptEvalExStr(DataTypes, Script, Field 1, [Field n]): In dit voorbeeld kunnen de invoervelden tekenreeks of numeriek zijn, maar is de eerste parameter een tekenreeks van de gegevenstypen en moet de respons tekenreeks zijn.
De parameter DataTypes is een tekenreeks op S en N tekens in de volgorde van de velden.
Voorbeelden
Voorbeeld:
Een script dat 2 numerieke velden toevoegt:
ScriptEval('Script',num1,num2)
Voorbeeld:
Een script dat 2 tekenreeksen aaneenschakelt:
ScriptEvalStr('Script',str1,str2)
Voorbeeld:
Een script dat een waarschijnlijkheid (getal) voorspelt met een combinatie van tekenreeks- en numerieke invoeren:
ScriptEvalEx('SSNN','Script',str1, str2, num1, num2)
Voorbeeld:
Een script dat een classificatie (tekenreeks) voorspelt met een combinatie van tekenreeks- en numerieke invoeren:
ScriptEvalExStr('SSNN','Script',str1, str2, num1, num2)