Замена устаревших функций в ClickHouse версии 24.5 или выше
8 800 555-89-02
Войти
infomaximum_logoДокументация
CTRL+K
Standalone2503
LTS
SaaS

Замена устаревших функций в ClickHouse версии 24.5 или вышеLTS

В этой статье
  • Замена устаревших функций в ClickHouse версии 24.5 или выше
  • Решение
  • Пример замены запроса

После обновления ClickHouse до версии 24.5 или выше могут возникать ошибки в запросах с функциями neighbor, runningAccumulate, runningDifferenceStartingWithFirstValue или runningDifference. Пример ошибки:

Function neighbor is deprecated since its usage is error-prone (see docs). Please use proper window function or set allow_deprecated_error_prone_window_functions setting to enable it.

Это может происходить в двух случаях:

  • При использовании вышеупомянутых функций в запросах
  • При установленных ограничениях на управление пользовательскими настройками в файле users.xml

С версии ClickHouse 24.5 функции neighbor, runningAccumulate, runningDifferenceStartingWithFirstValue и runningDifference отмечены как устаревшие (deprecated). Их использование может приводить к ошибкам в расчетах из-за непредсказуемого поведения, особенно в распределенных средах.

Решение

Временное решение: с помощью SET включите в сессии устаревшие функции для нужных запросов.

SET allow_deprecated_error_prone_window_functions = 1;

Постоянное решение: проведите миграцию запросов на стандартные оконные функции, например LAG, LEAD или ROW_NUMBER. Они поддерживают синтаксис OVER (PARTITION BY… ORDER BY…) и повышают надежность расчетов.

Пример замены запроса

Текущий запрос:

neighbor(column, offset)

Новый запрос:

SELECT LAG(column, offset) OVER (ORDER BY sorting_key) FROM table;
Важно

Устаревшие функции могут быть полностью удалены в будущих версиях ClickHouse.

Была ли статья полезна?

Да
Нет
Предыдущая
Известные проблемы
infomaximum_logo_icon
8 (800) 555-89-028 (495) 150-31-45team@infomaximum.com

430006, Саранск,
Северо-восточное шоссе, д. 3

Для бизнеса
© 20102025. ООО «Инфомаксимум»
Мы используем файлы cookies, чтобы сайт был лучше для вас.