неколько раз и время от времени получаю такую ошибку:
DB::Exception: Received from chi-cluster-0-1:9000. DB::Exception: Different expressions with the same alias _subquery46:
Сам запрос выглядит примерно как указано ниже: таблица TABLE_NAME содержит в себе ивенты и шардирована по нодам по хэшу device_id, я собираю идентфикаторы из локальных таблиц, а в финальном селекте использую Distributed таблицу:
with tmp_audience_1 as (
select
device_id
from table_name_local b
where ...
group by 1
), tmp_audience_2 as (
select
device_id
from table_name_local b
where ...
group by 1
)
select
geo_hash,
sum(cnt)
from table_name_distributed b
where ...
and (
device_id in (select device_id from tmp_audience_1) or
device_id in (select device_id from tmp_audience_2)
)
group by 1
Как избежать получение этой ошибки? Почему вообще она иногда возникает на одном и том же запросе?
версия clickhouse какая? EXPLAIN SYNTAX SELECT ... попробуйте посмотрите как ваш запрос переписывается попробуйте SETTINGS allow_experimental_analyzer=1 в конец еще поставить
версия Clickhouse: 23.3.1.2823 команда EXPLAIN SYNTAX SELECT показывает, что этим подзапросам даны разные алиасы: ifa IN (( │ │ SELECT device_ifa │ │ FROM │ │ tmp_audience_1 │ │ ) AS _subquery103)) OR (device_ifa IN (( │ │ SELECT device_ifa │ │ FROM │ │ tmp_audience_2 │ │ ) AS _subquery104))) Settings попробую!
С этим SETTINGS запроса падает с ошибкой Code: 60. DB::Exception: Received from ch-.dev.net:9000. DB::Exception: Received from chi-cluster-2-0:9000. DB::Exception: Unknown table expression identifier 'tmp_audience_1' in scope (SELECT device_id AS device_id FROM tmp_audience_1). (UNKNOWN_TABLE)
а EPLAIN SYNTAX такойже с этим SETTINGS ?
да, все одинаково, разница лишь в выводимых именах алиасов + в одном случае есть SETTINGS в конце запроса
можно еще в clickhouse-client SET allow_experimental_analyzer=1; в сессию поставить расшарьте через pastila.nl весь запрос и все что через EXLAIN SYNTAX получилось
отправил личным сообщением
У вас разные версии кх на нодах? Проверьте что все ноды проапгрейжены
на всех репликах одинаковая версия
Может ошибка иногда если вы подключаетесь к определенной ноде?
как это выловить?
Имя ноды в ошибке одинаковое?
Обсуждают сегодня