через Distributed таблицу?
Имею
CREATE TABLE logs_node(
created_at DateTime,
created_date Date MATERIALIZED toDate(created_at)
) ENGINE = ReplicatedMergeTree(....);
и
CREATE TABLE logs AS logs_node ENGINE = Distributed(...)
при попытке вставки
cat file.csv | clickhouse-client --host clickhouse --query="INSERT INTO logs(created_at) FORMAT CSV"
получаю
Code: 44. DB::Exception: Received from clickhouse:9000, 10.254.141.47. DB::Exception: Cannot insert column created_date.
при такой же вставке в локальную нереплицированную таблицу все было хорошо.
Да, есть. Суть в том, что если в локальной таблице поле тоже MATERIALIZED, то она не позволяет вставить то, что ей отправляет Distributed таблица. Для решения можно заменить MATERIALIZED на DEFAULT.
Обсуждают сегодня