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

10 просмотров

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

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

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта