endOfPeriod,
version,
brandId,
supplierId
)
В другом инстансе кликхауса создаю дистрибютед таблицу к этой шардированной таблице
) ENGINE = Distributed('pool',
'default',
'some_table',
cityHash64(brandId, supplierId));
с инсертами все понятно.
Вопрос - использует ли кликхаус информацию о кулюче шардирования в селект запросах?
т.е. если я посылаю запрос
select * from dist_table where startOfPeriod = '' and endOfPeriod = '' and version = '' and brandId = 1234 and supplierId = 45678
кликхаус будет вычислять cityHash64(brandId, supplierId) от полей в условии чтобы адресовать запрос на нужный шард?
или все селекты "зеркально" отправляются сразу на все шарды и ключ шардирования вообще никак не используется?
Никак не используется. Вы руками можете вставить какие угодно данные куда угодно, и их надо прочитать всё равно.
но есть настройки optimize_skip_unused_shards* и т.п., которые могут изменить это поведение: https://clickhouse.com/docs/en/operations/settings/settings#optimize-skip-unused-shards
Как я понял эта настройка по скипу это только в случае недоступности шарда (ошибок) но на выбор нужного шарда это не влияет
Обсуждают сегодня