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

Здравствуйте. Есть словарь, созданный вот так: CREATE DICTIONARY EXTERNAL_DICTS.film_weekends ON CLUSTER

data0_cluster
(
nation_id UInt16,
pu_id UInt64,
start_wend_id UInt32,
first_wend_id UInt32,
second_wend_id UInt32
)
PRIMARY KEY nation_id, pu_id
SOURCE(CLICKHOUSE(
host 'localhost'
port 9000
user 'default'
password 'ххх'
db 'cub7'
table 'v$film_weekends'
))
LAYOUT(COMPLEX_KEY_HASHED())
LIFETIME(MIN 500 MAX 700);

При этом в логе постоянно возникает ошибка на всех нодах:
<Error> ExternalDictionariesLoader: Could not update external dictionary 'EXTERNAL_DICTS.film_weekends', leaving the previous version, next update is scheduled at 2022-02-15 11:53:07: Code: 393. DB::Exception: There is no query or query context has expired. (THERE_IS_NO_QUERY)
И в system.dictionaries:
Code: 393. DB::Exception: There is no query or query context has expired. (THERE_IS_NO_QUERY) (version 21.10.6.2 (official build))
Но, если ему сказать system reload dictionary EXTERNAL_DICTS.film_weekends, то ошибки нет, словарь обновляется.
Как с этим бороться?

13 ответов

36 просмотров
Николай-Чернов Автор вопроса

v$film_weekends - это вью.

привет. Удалось разобраться? Столкнулся с аналогичной проблемой

Николай-Чернов Автор вопроса
Sergey Churin
привет. Удалось разобраться? Столкнулся с аналогич...

Ох, как давно это было. Сейчас уже не могу точно вспомнить как решилось... Возможно, просто обновлением КХ... Но до какой версии уже тоже не помню.

Slach [altinity]
у вас source тоже clickhouse?

Да. source clickhouse, table тоже view, внутри самой view запрос с использованием mysql(). И в самом словаре, и в mysql() для подключения используются named_collections. system reload dictionary работает.

Sergey Churin
Да. source clickhouse, table тоже view, внутри сам...

игла в яйце, яйцо в еже, йож в утке ... утка офигевает =) нужен полный стектрейс из логов чтобы порпобовать понять что происходит

Sergey Churin
привет. Удалось разобраться? Столкнулся с аналогич...

Аналогичная проблема была с view в словаре. Отказались от словарей в пользу обычных таблиц

Slach [altinity]
игла в яйце, яйцо в еже, йож в утке ... утка офиге...

Да, проблема возникает, если во view есть обращение к mysql(). Но не сразу. Несколько раз обновляется нормально. https://pastila.nl/?00803883/89e4febe2282bfd4fec906a2a61bd009

Sergey Churin
Да, проблема возникает, если во view есть обращени...

единственное что странное вижу откуда в stacktrace у вас DB::JoinedTables::getLeftTableStorage() если у вас там Join нигде и в помине нет? а только GROUP BY

Slach [altinity]
единственное что странное вижу откуда в stacktrace...

Меня это тоже смутило. Сейчас утром на свежую голову перепроверил. И group by убрал еще. Все тоже самое: https://pastila.nl/?00e2dd31/5268cd8131c81ea2341edd079569b455 Еще момент: если после создания словаря не делать system reload dictionary, то судя по system.dictionaries он сам по себе не обновляется, но и ошибок нет (ждал несколько периодов обновления), то есть как-будто не встает в расписание вообще (или так и должно быть?). Если сделать dictGet() к такому необновленному словарю, то данные возвращаются, и в system.dictionaries появляется время обновления. Сначала без ошибки, и через пару обновлений опять ошибка вылезает. Вот на двух нодах сделал dictGet() в разное время: https://pastila.nl/?10538c84/6922a0cd791cdd6b8d1b3ce4137b2bf5

Sergey Churin
Меня это тоже смутило. Сейчас утром на свежую голо...

делайте воспроизводимый пример на docker-compose и добавляйте issue на github явно какая то бага в комбинации view и engine=MySQL() попробуйте view вообще убрать? просто словарь который SOURCE(CLICKHOUSE()) а таблица Engine=MySQL()

Slach [altinity]
делайте воспроизводимый пример на docker-compose и...

Что не подумал об этом, спасибо. Пока несколько обновлений сработало, как с таблицей Engine=MySQL(), так и с вьюхой, которая смотрит на таблицу с Engine=MySQL()

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта