跳到主要内容

服务器端扩展语法

在该页面上

服务器端扩展语法

Qlik 服务器端扩展 (SSE) 的概述可以在这里找到:https://github.com/qlik-oss/server-side-extension

脚本函数

有八种脚本函数变体。在加载脚本中,它们的行为应该是相同的,但是在这个场景中通常使用 ScriptEval

加载脚本使用 LOAD * EXTENSION 在表中输出方法上操作,并从内部表定义和元数据推断正确的数据类型。

使用这些函数作为图表表达式时,所使用的函数很重要,并且会在请求的结果和性能上产生显著差异。

ScriptEval 与 ScriptAggr

有两组脚本函数,ScriptEvalScriptAggr

ScriptEval:聚合超多维数据集之后,指定列中的所有行都发送到 SSE 连接器。预期的响应是一个列。如果返回多个列,则将选择与输入的行数相同的第一列。返回列中的行必须与输入的顺序相同。

ScriptAggr:在聚合超多维数据集之前,将发送超多维数据集中单个维度组的所有行,SSE 将返回单个 1 列 1 行响应。对于每个维度值,都会向 SSE 发送一个请求。虽然有这样的用例,但很少使用这种方法,因为如果使用大量维度值调用 ScriptAggr,会产生性能问题

数据类型

请求有四种变体,它们指定输入和输出数据类型的组合:

  • ScriptEval(Script, Field 1, [Field n]):在本例中,输入字段必须全部为数字,响应也必须为数字。

  • ScriptEvalStr(Script, Field 1, [Field n]):在本例中,输入字段必须都是字符串,响应也必须是字符串。

  • ScriptEvalEx(DataTypes, Script, Field 1, [Field n]):在本例中,输入字段可以是字符串也可以是数字,但是第一个参数是数据类型的字符串,响应必须是数字。

  • ScriptEvalExStr(DataTypes, Script, Field 1, [Field n]):在本例中,输入字段可以是字符串或数字,但是第一个参数是数据类型的字符串,并且响应必须是字符串。

DataTypes 参数是一个按字段顺序由 S 和 N 字符组成的字符串。

示例

示例:  

添加两个数字字段的脚本:

ScriptEval('Script',num1,num2)

示例:  

连接两个字符串的脚本:

ScriptEvalStr('Script',str1,str2)

示例:  

用字符串和数字的混合来预测概率(数字)的脚本:

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

示例:  

用字符串和数字混合来预测分类(字符串)的脚本:

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