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

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

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()

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта