1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-KSQL

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
klip-30-lambda-functions.md 5.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 07:33 e6dfb69

Функции должны требовать определённой функции вызова, которая сообщает ksqlDB, как применять данную лямбда-функцию к входному значению и какой результат возвращать. Для начальной поддержки лямбда-функций предлагаются следующие функции вызова:

  • transform_array(arr, x => y) — применяет данную лямбда-функцию к каждому элементу входного массива, возвращая новый массив, содержащий преобразованный вывод.

  • transform_keys(map, k => k) — применяет данную лямбда-функцию к каждому ключу во входной карте, возвращая новую карту, содержащую преобразованные ключи.

  • transform_values(map, v => v) — применяет данную лямбда-функцию к каждому значению во входной карте, возвращая новую карту, содержащую преобразованные значения.

  • transform_map(map, (k, v) => new_k, (k, v) => new_v) — применяет данные лямбда-функции к ключам и значениям входной карты соответственно. Возвращается новая карта, содержащая преобразованные ключи и значения.

  • filter_array(arr, x => bool) — фильтрует входной массив с помощью данной лямбда-функции. Возвращается новый массив, содержащий только значения, для которых лямбда-функция оценивается как истина.

  • filter_map(map, (k, v) => bool) — фильтрует входную карту с помощью данной лямбда-функции. Возвращается новая карта, содержащая только пары ключ-значение, для которых лямбда-функция оценивается как истина.

  • reduce_array(arr, s, (x, s) => s) — сводит входной массив к одному значению. s является начальным состоянием и передаётся в область действия лямбда-функции. Каждый вызов возвращает новое значение для s, которое получит следующий вызов. reduce_array вернёт окончательное значение s.

  • reduce_map(map, s, (k, v, s) => s) — сводит входную карту к одному значению. s является начальным состоянием и передаётся в область действия лямбда-функции. Каждый вызов возвращает новое значение для s, которое получит следующий вызов. reduce_map вернёт окончательное значение s.

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

Обновление документации

Мы должны задокументировать и предоставить примеры для двух основных аспектов лямбда-функций:

  1. Синтаксис лямбда-функций.
  2. Функции вызова.

Последствия совместимости

Лямбда-функции будут добавлены к грамматике ksqlDB и поэтому не должны вносить никаких несовместимостей в грамматику или общедоступные API. Однако в настоящее время неизвестно, потребует ли реализация лямбда-функции обратно несовместимых изменений во внутренних компонентах ksqlDB.

Последствия для безопасности

Поскольку лямбда-функции позволят использовать только те SQL-выражения, которые уже можно использовать в запросах, новые последствия для безопасности не должны возникнуть.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-KSQL.git
git@api.gitlife.ru:oschina-mirror/mirrors-KSQL.git
oschina-mirror
mirrors-KSQL
mirrors-KSQL
master