тестовую реплицированную таблицу с помощью ON CLUSTER:
create table if not exists test_db.test_replica ON CLUSTER 'test_internal_replica_shard'
(
test_string String default ''
) engine = ReplicatedMergeTree('/clickhouse/tables/test_internal_replica_shard/{database}/{table}','{replica}')
order by test_string
settings index_granularity = 8192;
В результате приходит ошибка:
Code: 159, e.displayText() = DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000024 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 1 unfinished hosts (0 of them are currently active), they are going to execute the query in background (version 20.5.4.40 (official build))
Но таблица создается на двух машинах в указанном кластере. После вставки тестовых данных некоторых проверила, и они есть и там, и там. Такое поведение нормально все-таки для КХ или нет?
Добрый день, ну тут вроде все понятно, один из хостов неактивен, который прописан в кластере. Ну и вопрос эти две машины - на которых одинаковые данные они в одном шарде и просто реплицируют данные?
вся магия в том, что оба хоста активны.
system.distributed_ddl_queue
хммммм, не могу найти данную системную таблицу на версии 20.5.4.40... 🤔
Тогда в логи смотрителем сервере где не создалось И в system.zookeeper where path= не помню точно как путь в ZK Для ddl
да, мной была просмотрена таблицв system.zookeeper, и получилось следующее: SELECT name, value, numChildren FROM system.zookeeper WHERE path = '/clickhouse/task_queue/ddl/query-0000000024' результат: +--------+-----+-----------+ |name |value|numChildren| +--------+-----+-----------+ |active | |0 | |finished| |1 | +--------+-----+-----------+ сейчас попробую логи посмотреть
Там КХ табличку выдает в результате, может у вас три хоста в ON CLUSTER 'test_internal_replica_shard'?
два, я проверяла конфиг + по system.clusters еще проверить пришлось, что там именно два хоста
надо смотреть в кх лог на хосте который таймаутит
Обсуждают сегодня