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 ответов

12 просмотров

кейс не маргинальный это косяк 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 н...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта