Рубрики
Без рубрики

Функции, поддерживаемые драйвером SQL Aerospike

Предисловие Этот пост продолжает серию статей, в которых представлен драйвер SQL Aerospike… С тегами aerospike, java, sql, драйвер.

Этот пост продолжает серию статей в которых представлен Драйвер SQL Aerospike

Существует два типа функций SQL: агрегатные функции и скалярные (неагрегатные) функции. Агрегатные функции работают со многими записями и создают сводку, работают с ГРУППОЙ ПО, в то время как неагрегатные функции работают с каждой записью независимо. [1]

Это утверждение верно для большинства реляционных баз данных, которые могут хранить только простой тип в одной ячейке. Aerospike поддерживает встроенные списки и карты. Драйвер JDBC Aerospike предоставляет несколько функций, которые управляют этими типами. Поскольку списки и карты не являются скалярами, мы можем определить 3 типа функций, предоставляемых драйвером JDBC Aerospike:

  • скалярные функции (которые объединяют скалярные типы в одну запись)
  • функции сбора (которые управляют списками и отображениями в одной записи)
  • агрегатные функции, которые управляют многими записями
длина (x), длина(x) возвращает длину заданной строки, списка, карты
ascii(с) возвращает ASCII-код заданного символа
символ (c) возвращает символ, соответствующий заданному коду ASCII
найдите (substr, str,]) возвращает позицию subStr в str, начиная со смещения (то есть 1, если опущено)
инстр (подстанция, ул) возвращает позицию subStr в str
отделка(ы) обрезает строку (удаляет пробелы с обеих сторон)
ltrim(ы) удаляет начальные пробелы из строки
rtrim(ы) удаляет пробелы в конце строки
strcmp(s1, s2) сравнивает заданные строки
слева (s, n) возвращает подстроку длины n, начинающуюся с начала данной строки
нижний(и), нижний(и) корпус(ы) преобразует строку в нижний регистр
верхний(и), верхний(и) корпус(ы) преобразует строку в верхний регистр
ул(x) возвращает строковое представление заданного значения (например, toString() в java)
пространство(n) возвращает строку, содержащую n пробелов
реверс(ы) переворачивает заданную строку
to_base64 (байт) генерирует представление Base64 заданного массива байтов
из_базы64(str) возвращает массив байтов из заданного Base64
substr(ул, от, до) возвращает подстроку заданной строки
конкат(str1, str2,…) объединяет заданные строки
concat_ws (разделитель, str1, str2,…) объединяет заданные строки с помощью разделителя
дата ([x]) создает java.util. Датируется либо строкой, либо эпохой. Если аргумент не указан, эта функция возвращает дату, представляющую текущее время.
календарь ([x]) аналогично дате([x]), но возвращает java.util. Календарь`
сейчас() возвращает эпоху (мс)
год ([x]), месяц ([x]), день месяца ([x]), час ([x]), минута ([x]), секунда ([x]), миллисекунда ([x]) возвращаемый год, месяц и т.д. соответственно. Необязательным аргументом может быть отформатированная дата или эпоха в миллисекундах. Если это не предусмотрено, используется текущее время.
карта(ы), список(ы), массив(ы) создайте карту, список и массив соответственно из их строкового представления

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

  • подсчет ()
  • сумма()
  • макс()
  • мин()
  • среднее значение()
  • sumsq() – сумма квадратов значений

Distinct считается модификатором, но синтаксически выглядит как функция are и также поддерживается.

Для повышения производительности и увеличения потребления памяти агрегатные функции реализованы в Lua и выполняются на стороне сервера (в базе данных Aerospike).

Проект доступен в GitHub .

В следующей статье этой серии будет объяснено, как добавить пользовательскую функцию в драйвер.

Оригинал: “https://dev.to/alexradzin/functions-supported-by-the-aerospike-sql-driver-2l0p”