поверх справочников созданы, потому что сейчас в 23.3 и новее версиям, когда КХ рестартится он грузит ЮДФ раньше чем справочники.Поэтому ЮДФ не видит справочник и старт кластера стопается, как обходили это?
@unamedrus может ли ты знаешь?
А текст udf какой? Вы там используете типизированный dictGet? dictGetUInt32 например
CREATE DICTIONARY marts.currency_rates_dictionary ON CLUSTER '{cluster}' ( `currency_name` String, `requested_dt` Date, `rate` Float32 ) PRIMARY KEY currency_name, requested_dt SOURCE(CLICKHOUSE( TABLE 'currency_rates_official' DB 'marts' )) LIFETIME(MIN 300 MAX 360) LAYOUT(COMPLEX_KEY_SPARSE_HASHED(PREALLOCATE 1)); CREATE FUNCTION daily_uzs_to_usd AS (day, uzs) -> uzs::float / dictGet('marts.currency_rates_dictionary', 'rate', ('USD', day::date));
Используйте, dictGetFloat32
оно падает у нас потому что справочника нет на момент создания удфки
Потому что пытается понять тип
Обсуждают сегодня