Перейти к основному содержимому Перейти к дополнительному содержимому

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

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

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

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

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

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

ScriptEval и ScriptAggr

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

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

ScriptAggr: все строки одной группы измерений в гиперкубе отправляются перед агрегированием гиперкуба, и ожидается, что SSE вернет один ответ, содержащий 1 столбец и 1 строку. Для каждого значения измерения будет отправляться один запрос в SSE. Хотя имеются примеры использования этого метода, он применяется редко, так как при вызове функции ScriptAggr с большим количеством значений измерений могут возникнуть проблемы с производительностью.

Типы данных

Существует четыре варианта запросов, которые задают комбинации типов входных и выходных данных:

  • ScriptEval(Script, Field1, [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)

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!