IF NOT EXISTS staging.user_props …. получаю ошибку:
‘’’ServerError: Table columns structure in ZooKeeper is different from local table structure (version 20.8.18.32 (official build)) (122)’’’
При этом в default базе уже есть таблица с таким же названием, но вряд ли это как то влияет
Можете подсказать как это победить?
SELECT engine FROM system.databases WHERE name='staging'? Atomic? если да, то надо было таблицу удалять как DROP TABLE staging.user_props ON CLUSTER 'xxx' NO DELAY;
попробуйте сначала DROP TABLE IF EXISTS staging.user_props ON CLUSTER 'xxx' NO DELAY;
SELECT engine FROM system.databases WHERE name = 'staging' ┌─engine───┐ │ Ordinary │ └──────────┘
походите по zookeeper Там есть ключи и можно понять какие реплики для таблицы зарегистрированы и какая структура таблицы актуальная SELECT * FROM system.zookeeper WHERE path='/' FORMAT Vertical;
возможно на другой реплике в том же кластере создана таблица с другой структурой
Прошелся по репликам, там нет такой же таблицы, точнее там даже базы staging нет, только в одной реплике создалась
SELECT * FROM system.zookeeper WHERE path = '/' FORMAT Vertical Row 1: ────── name: zookeeper value: czxid: 0 mzxid: 0 ctime: 1970-01-01 00:00:00 mtime: 1970-01-01 00:00:00 version: 0 cversion: -2 aversion: 0 ephemeralOwner: 0 dataLength: 0 numChildren: 2 pzxid: 0 path: / Row 2: ────── name: clickhouse value: czxid: 4294967298 mzxid: 4294967298 ctime: 2020-09-10 20:52:42 mtime: 2020-09-10 20:52:42 version: 0 cversion: 1 aversion: 0 ephemeralOwner: 0 dataLength: 0 numChildren: 1 pzxid: 4294967299 path: / Вот что получил
ну странно очень а откуда тогда у вас в ZK оказалась другая версия схемы таблицы? пройдитесь по путям в ZK
ну, теперь дальше идем WHERE path='/clickhouse'; и пока не разберетесь что там у вас в ZK
А может он сравнивать с таблицей из другой базы, у меня две базы, и названия таблиц будут совпадать
Хорошо, попробую, спасибо
да. если у вас совпадают пути в этих таблицах для ReplicatedMergeTree(тут_путь_указывается)
И действительно так, в ReplicatedMergeTree пути совпадают ENGINE = ReplicatedMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/default/‘events, '{replica}') Если сделать ENGINE = ReplicatedMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/staging/‘events, '{replica}') то должно сработать?
у вас clickhouse в kubernetes? по умолчанию cluster и installation макросов на сервере нет ну если пути будут разные то сработает
Обсуждают сегодня