Функции переменных

02 ноября 2024

ID 265150

Операции с активными листами и словарями

Функции "active_list" и "active_list_dyn"

Функции позволяют получать информацию из активного листа и динамически формировать имя поля активного листа и ключа.

Необходимо указать параметры в следующей последовательности:

  1. Название активного листа.
  2. Выражение, возвращающее название поля активного листа.
  3. Одно или несколько выражений, из результатов которых будет составлен ключ.

С помощью этих функций из переменной можно обратиться к активному листу общего тенанта. Для этого после названия активного листа необходимо добавить суффикс @Shared (регистр имеет значение). Например, active_list('exampleActiveList@Shared', 'score', SourceAddress,SourceUserName).

Функция "table_dict"

Получение информации о значении в указанном столбце словаря типа таблица.

Необходимо указать параметры в следующей последовательности:

  1. Название словаря.
  2. Название столбца словаря.
  3. Одно или несколько выражений, из результатов которых будет составлен ключ строки словаря.

С помощью этой функции из переменной можно обратиться к словарю общего тенанта. Для этого после названия активного листа необходимо добавить суффикс @Shared (регистр имеет значение). Например, table_dict('exampleTableDict@Shared', 'office', SourceUserName).

Функция "dict"

Получение информации о значении в указанном столбце словаря типа словарь.

Необходимо указать параметры в следующей последовательности:

  1. Название словаря.
  2. Одно или несколько выражений, из результатов которых будет составлен ключ строки словаря.

С помощью этой функции из переменной можно обратиться к словарю общего тенанта. Для этого после названия активного листа необходимо добавить суффикс @Shared (регистр имеет значение). Например, dict('exampleDictionary@Shared', SourceAddress).

Операции с контекстными таблицами

Функция "context_table"

Возвращает значение указанного поля в базовом типе (например, целое число,массив целых чисел).

Необходимо указать параметры в следующей последовательности:

  1. Название контекстной таблицы. Название не должно быть пустым.
  2. Выражение, возвращающее название поля контекстной таблицы.
  3. Выражение, возвращающее название ключевого поля 1 контекстной таблицы.
  4. Выражение, возвращающее значение ключевого поля 1 контекстной таблицы.

Функция должна содержать минимум 4 параметра.

Функция "len"

Возвращает длину строки и массива.

Функция возвращает длину массива, если переданный массив соответствует следующему типу:

  • массив целых чисел;
  • массив чисел с плавающей точкой;
  • массив строк;
  • массив логических типов.

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

Функция "distinct_items"

Возвращает список уникальных элементов массива.

Функция возвращает список уникальных элементов массива, если переданный массив соответствует следующему типу:

  • массив целых чисел;
  • массив чисел с плавающей точкой;
  • массив строк;
  • массив логических типов.

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

Функция "sort_items"

Возвращает отсортированный список элементов массива.

Необходимо указать параметры в следующей последовательности:

  1. Выражение, возвращающее объект сортировки.
  2. Сортировка возможных значений: asc, desc. Если параметр не указан, значение по умолчанию – asc.

Функция возвращает отсортированный список элементов массива, если переданный массив соответствует следующему типу:

  • массив целых чисел;
  • массив чисел с плавающей точкой;
  • массив строк.

Функция возвращает список элементов массива в исходном порядке, если был передан массив логических типов.

Если передан массив другого типа, данные массива приводятся к строковому типу, и функция возвращает строку отсортированных символов.

Функция "item"

Возвращает элемент массива с указанным индексом или символ строки с указанным индексом, если передан массив целых чисел, чисел с плавающей точкой, строк или булевых значений.

Необходимо указать параметры в следующей последовательности:

  1. Выражение, возвращающее объект индексирования.
  2. Выражение, возвращающее индекс элемента или символа.

Функция должна содержать минимум 2 параметра.

Функция возвращает элемент массива с указанным индексом или символ строки с указанным индексом,если индекс находится в диапазоне массива и переданный массив соответствует следующему типу:

  • массив целых чисел;
  • массив чисел с плавающей точкой;
  • массив строк;
  • массив логических типов.

Если передан массив другого типа и индекс находится в диапазоне массива, данные приводятся к строковому типу и функция возвращает символ строки по индексу. Если передан массив другого типа и индекс не находится в диапазоне массива, функция возвращает пустую строку.

Операции со строками

Функция "len"

Возвращает число символов в строке. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

Строку можно передать строкой, названием поля или переменной.

Функция "to_lower"

Перевод символов в строке в нижний регистр. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

Строку можно передать строкой, названием поля или переменной.

Функция "to_upper"

Перевод символов в строке в верхний регистр. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка". Строку можно передать строкой, названием поля или переменной.

Функция "append"

Добавление символов в конец строки. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

Необходимо указать параметры в следующей последовательности:

  1. Исходная строка.
  2. Добавляемая строка.

Строки можно передать строкой, названием поля или переменной.

Функция "prepend"

Добавление символов в начало строки. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

Необходимо указать параметры в следующей последовательности:

  1. Исходная строка.
  2. Добавляемая строка.

Строки можно передать строкой, названием поля или переменной.

Функция "substring"

Возвращает подстроку из строки. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

Необходимо указать параметры в следующей последовательности:

  1. Исходная строка.
  2. Позиция начала подстроки (натуральное число или 0).
  3. Позиция конца подстроки (необязательно).

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

Функция "tr"

Убирает из начала и конца строки указанные символы. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

Необходимо указать параметры в следующей последовательности:

  1. Исходная строка.
  2. Строка, которую следует удалить из начала и конца исходной строки (необязательно).

Строки можно передать строкой, названием поля или переменной. Если строку на удаление не указать, в начале и в конце исходной строки будут удалены пробелы.

Функция "replace"

Заменяет все вхождения последовательности символов А в строке на последовательность символов В. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

Необходимо указать параметры в следующей последовательности:

  1. Исходная строка.
  2. Строка поиска: последовательность символов, подлежащая замене.
  3. Строка замены: последовательность символов, на которую необходимо заменить строку поиска.

Строки можно передать выражением.

Функция "regexp_replace"

Замена в строке последовательности символов, удовлетворяющих регулярному выражению, на последовательность символов и группы захвата регулярного выражения. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

Необходимо указать параметры в следующей последовательности:

  1. Исходная строка.
  2. Строка поиска: регулярное выражение.
  3. Строка замены: последовательность символов, на которую необходимо заменить строку поиска, и идентификаторы групп захвата регулярного выражения. Строку можно передать выражением.

Строки можно передать строкой, названием поля или переменной. Допускается использовать неименованные группы захвата.

В регулярных выражениях, используемых в функциях переменных, каждый символ обратной косой черты необходимо дополнительно экранировать. Например, вместо регулярного выражения ^example\\ необходимо указывать выражение ^example\\\\.

Функция "regexp_capture"

Получение из исходной строки результата, удовлетворяющего условию регулярного выражения. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

Необходимо указать параметры в следующей последовательности:

  1. Исходная строка.
  2. Строка поиска: регулярное выражение.

Строки можно передать строкой, названием поля или переменной. Допускается использовать неименованные группы захвата.

В регулярных выражениях, используемых в функциях переменных, каждый символ обратной косой черты необходимо дополнительно экранировать. Например, вместо регулярного выражения ^example\\ необходимо указывать выражение ^example\\\\.

Операции с метками времени

Функция now

Получение временной метки в формате epoch. Запускается без аргументов.

Функция "extract_from_timestamp"

Получение атомарных представлений времени (в виде год, месяц, день, час, минута, секунда, день недели) из полей и переменных с временем в формате epoch.

Параметры необходимо указать в следующей последовательности:

  1. Поле события, имеющего тип timestamp, или переменная.
  2. Обозначение атомарного представления времени. Параметр регистрозависимый.

    Возможные варианты обозначения атомарного времени:

    • y – год в виде числа.
    • M – месяц, числовое обозначение.
    • d – число месяца.
    • wd – день недели: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
    • h – часы в 24-часовом формате.
    • m – минуты.
    • s – секунды.
  3. Обозначение часового пояса (необязательно). Если параметр не указан, время высчитывается в формате UTC.

Функция "parse_timestamp"

Представление времени из формата RFC3339 (например, "2022-05-24 00:00:00", "2022-05-24 00:00:00+0300) в формат epoch.

Функция "format_timestamp"

Представление времени из формата epoch в формат RFC3339.

Параметры необходимо указать в следующей последовательности:

  1. Поле события, имеющего тип timestamp, или переменная.
  2. Обозначение формата времени: RFC3339.
  3. Обозначение часового пояса (необязательно). Если параметр не указан, время высчитывается в формате UTC.

Функция "truncate_timestamp"

Округление времени в формате epoch. После округления время возвращается в формате epoch. Время округляется в меньшую сторону.

Параметры необходимо указать в следующей последовательности:

  1. Поле события, имеющего тип timestamp, или переменная.
  2. Параметр округления:
    • 1s – округление до секунд;
    • 1m – округление до минут;
    • 1h – округление до часов;
    • 24h – округление до суток.
  3. Обозначение часового пояса (необязательно). Если параметр не указан, время высчитывается в формате UTC.

Функция "time_diff"

Получение интервала времени между двумя метками времени в формате epoch.

Параметры необходимо указать в следующей последовательности:

  1. Время конца отрезка. Поле события, имеющего тип timestamp, или переменная.
  2. Время начала отрезка. Поле события, имеющего тип timestamp, или переменная.
  3. Представление временного интервала:
    • ms – в миллисекундах;
    • s – в секундах;
    • m – в минутах;
    • h – в часах;
    • d – в днях.

Математические операции

Представлены как простейшими математическими операциями, так и функциями.

Простейшие математические операции

Поддерживаются для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Операции:

  • сложение;
  • вычитание;
  • умножение;
  • деление;
  • деление по модулю.

Использование круглых скобок определяет последовательность действий

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • вещественные числа.

    При делении по модулю в качестве аргументов можно использовать только натуральные числа.

Ограничения использования:

  • деление на ноль возвращает ноль;
  • математические операции между числами и строками возвращают ноль;
  • целые числа, полученные в результате операций, возвращаются без точки.

Функция "round"

Округление чисел. Поддерживаются для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • числовые константы.

Функция "ceil"

Округление чисел в большую сторону. Поддерживаются для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • числовые константы.

Функция "floor"

Округление чисел в меньшую сторону. Поддерживаются для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • числовые константы.

Функция "abs"

Получение числа по модулю. Поддерживаются для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • числовые константы.

Функция "pow"

Возведение числа в степень. Поддерживаются для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Параметры необходимо указать в следующей последовательности:

  1. База – вещественные числа.
  2. Степень – натуральные числа.

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • числовые константы.

Функция "str_join"

Позволяет объединить несколько строк в одну с использованием разделителя. Поддерживаются для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Параметры необходимо указать в следующей последовательности:

  1. Разделитель. Строка.
  2. Строка1, строка2, строкаN. Минимум 2 выражения.

Функция "conditional"

Позволяет получить одно значения в случае выполнения условия и другое значение, если условие не выполнится. Поддерживаются для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Параметры необходимо указать в следующей последовательности:

  1. Условие. Строка. Синтаксис аналогичен условиям в SQL Where. В условии можно использовать функции переменных KUMA и ссылаться на другие переменные.
  2. Значение при выполнении условия. Выражение.
  3. Значение при невыполнении условия. Выражение.

Поддерживаемые операторы:

  • AND
  • OR
  • NOT
  • =
  • !=
  • <
  • <=
  • >
  • >=
  • LIKE (передается регулярное выражение RE2, а не SQL-выражение)
  • ILIKE (передается регулярное выражение RE2, а не SQL-выражение)
  • BETWEEN
  • IN
  • IS NULL (проверка на пустое значение, например 0 или пустую строку)

Операции для полей расширенной схемы событий

Для полей расширенной схемы событий типа "строка" поддерживаются следующие виды операций:

  • Функция "len"
  • Функция "to_lower"
  • Функция "to_upper"
  • Функция "append"
  • Функция "prepend"
  • Функция "substring"
  • Функция "tr"
  • Функция "replace"
  • Функция "regexp_replace"
  • Функция "regexp_capture"

Для полей расширенной схемы событий с типом "целое число" или "число с плавающей точкой" поддерживаются следующие виды математических операций:

  • Простые математические операции:
  • Функция "round"
  • Функция "ceil"
  • Функция "floor"
  • Функция "abs"
  • Функция "pow"
  • Функция "str_join"
  • Функция "conditional"

Для полей расширенной схемы событий с типом "массив чисел", "массив чисел с плавающей точкой" и "массив строк" поддерживаются следующие виды математических операций:

  • item(SA.someStringArray, i) - получение i-го элемента из поля someStringArray[i].
  • SA.someStringArray , returns ["string1", "string2", "string1"] - получение массива значений из поля someStringArray.
  • len(SA.someStringArray) – функция позволяет получить количество элементов в массиве someStringArray.
  • distinct_items(SA.someStringArray), returns ["string1", "string2"] - функция позволяет получить уникальные записей из массиве someStringArray.
  • to_string(SA.someStringArray) - функция формирует строку массива в формате TSV.
  • sort_items(<type>.someStringArray); вместо <type> -- необходимо указать тип массива: sa для массива строка, fa для массива чисел с плавающей точкой, na для массива целых чисел. Пример: sort_items (SA.StringArray, DESC).

Для полей с типом "массив целых чисел" и "массив чисел с плавающей точкой" поддерживаются следующие функции:

  • math_min – возвращает минимальный элемент массива. Пример: math_min(NA.NumberArray), math_min(FA.FloatArray).
  • math_max – возвращает максимальный элемент массива. Пример: math_max(NA.NumberArray), math_max(FA.FloatArray).
  • math_avg – возвращает среднее значение массива. Пример: math_avg(NA.NumberArray), math_avg(FA.FloatArray).

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!