184 похожих чатов

Всем доброго вечера, коллеги. Есть стрёмная ошибка, а именно, кликхаус

бесконечно рестартует, если в таблице есть materialized колонка, которая использует внешние словари, например так:

ALTER TABLE cpa.conversions ADD COLUMN IF NOT EXISTS program_name String materialized dictGet('cpa.offers_dictionary', 'program_name', offer_id);

Если добавить эту колонку в рантайме - все хорошо ровно до тех пор, пока не перезапускаем кликхаус. Как только кликхаус перезапускается - уходит в бесконечный ребут, в логе такая ошибка

2020.12.15 15:30:46.862995 [ 1 ] {} <Error> Application: DB::Exception: external dictionary 'cpa.offers_dictionary' not found: While processing CAST(dictGet('cpa.offers_dictionary', 'program_name', offer_id) AS program_name_tmp_alter11556195861598860332, 'String') AS program_name: default expression and column type are incompatible.: Cannot attach table cpa.conversions from metadata file /var/lib/clickhouse/store/3b0/3b0f373b-812b-42c7-9fdc-764521d5a7e3/conversions.sql from query ATTACH TABLE cpa.conversions UUID '1f0cefa2-4828-4cb2-a42b-8f7961907989' (conversion_id UInt64, click_id String, click_date Date, created_at DateTime, updated_at DateTime, publisher String, publisher_tracker_id UInt64, offer_id UInt64, sub_1 String, sub_2 String, sub_3 String, sub_4 String, sub_5 String, user_agent String, ip_address String, request_url String, redirect_url String, country_code String, country_name String, region_code String, region_name String, language String, isp_name String, device_type String, os_name String, os_version String, browser_name String, browser_version String, browser_minor_version String, publisher_revenue Int64, publisher_left_to_pay Int64, total_revenue Int64, system_revenue Int64, referrer_revenue Int64, referrer_left_to_pay Int64, conversion_status String, goal String, program_name String MATERIALIZED dictGet('cpa.offers_dictionary', 'program_name', offer_id), offer_name String MATERIALIZED dictGet('cpa.offers_dictionary', 'offer_name', offer_id), approve_date Date DEFAULT '1970-01-01', referrer String) ENGINE = MergeTree() PARTITION BY toYYYYMM(click_date) ORDER BY click_date SETTINGS index_granularity = 8192: while loading database cpa from path /var/lib/clickhouse/metadata/cpa

Есть тут какое то решение или у меня совсем маргинальный кейс ?

4 ответов

11 просмотров

кейс не маргинальный это косяк ClickHouse mv -fv /var/lib/metadata/ваша_база/ваша_таблица.sql /tmp/ systemctl start clickhouse-server systemctl status clickhouse-server clickhouse-client --database <ваша база> < /tmp/ваша_таблица.sql

Alexey-L Автор вопроса

еще можно в sql файле попробовать вместо dictGet на dictGetString заменить... косяк в том что нету порядка иницализации таблиц и для того чтобы вывести типы получаемые через MATERIALIZED clickhouse при старте обращается к еще не проинициализированном словарю

Slach [altinity]
еще можно в sql файле попробовать вместо dictGet н...

думаю словари всегда инициализируются после таблиц...

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
10
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Карта сайта