Перейти к основному содержимому
Синтаксис серверных расширений

НА ЭТОЙ СТРАНИЦЕ

Синтаксис серверных расширений

Обзор Qlik серверных расширений (SSE) приводится здесь: https://github.com/qlik-oss/server-side-extension.

Функции скрипта

Существует восемь вариантов функций скрипта. В скрипте загрузки все они должны вести себя одинаково, но в данном сценарии обычно используется ScriptEval.

Использование LOAD * EXTENSION в скрипте загрузки позволяет применить подход «таблица на входе — таблица на выходе», что обеспечивает получение правильных типов данных из внутренних определений и метаданных таблицы.

Когда эти функции используются в качестве выражений диаграммы, используемая функция играет важную роль и определяет существенное отличие результатов и производительности запроса.

ScriptEval и ScriptAggr

Существует два набора функций скрипта, ScriptEval и ScriptAggr:

ScriptEval: после агрегации гиперкуба все строки в указанных столбцах отправляются в коннектор SSE. Ожидаемый ответ — один столбец. Если возвращается несколько столбцов, будет выбран первый столбец, в котором будет столько же строк, сколько во входном. Строки в возвращенном столбце должны следовать в том же порядке, что и во входном.

ScriptAggr: перед агрегацией гиперкуба отправляются все строки одной группы измерений в гиперкубе, и серверное расширение (SSE) должно вернуть ответ, содержащий только один столбец и одну строку. Для каждого значения измерения будет отправляться один запрос в 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 (число), соответствующими порядку полей.

Примеры

Пример:  

Скрипт, добавляющий 2 числовых поля:

ScriptEval('Script',num1,num2)

Пример:  

Скрипт, объединяющий 2 строки:

ScriptEvalStr('Script',str1,str2)

Пример:  

Скрипт, прогнозирующий вероятность (число) со смешанным строковым и числовым вводом:

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

Пример:  

Скрипт, прогнозирующий классификацию (строка) со смешанным строковым и числовым вводом:

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