Клик.
Настроил репликацию в Клик:
CREATE TABLE default.from_postgres_table (id Int64,
a String,
b String,
c String)
ENGINE = PostgreSQL('192.168.1.243:5432', 'postgres', 'dict_test', 'postgres', 'postgres');
Работает.
Дальше хочу раскидать данные в Distributed таблицу (хотя и в локальную только на этом шарде тоже самое)
CREATE MATERIALIZED VIEW default.op_tc TO default.click_dict_test_dist AS SELECT id, a, b, c from default.from_postgres_table
и ничего не выходит. При инсерте в Постгрю данные появляются в from_postgres_table и не появляются в default.op_tc
При этом если добавить записи в from_postgres_table напрямую - они отлично перенесутся в default.op_tc...
Чтото не срабатывает (если это триггер на инсерт), но что? (((
Вы никакую репликацию не настраивали к сожалению, from_postgres_table не хранит в себе данные, а просто проксирует запросы в ПГ. MaterializedPostgreSQL нужен для репликации https://clickhouse.tech/docs/ru/engines/table-engines/integrations/materialized-postgresql/
Еще раз решил разобраться с MaterializedPostgreSQL, добрался до этапа с ошибкой function pg_replication_slot_advance(unknown, unknown) does not exist, нашел ответ, что нужен минимум 11й Postgres, решил что хватит (применить в реальности не смогу, никто мне промышленные сервера до послелних версий не обновит). Но в наследство осталась пачка неработающих "таблиц" с движком MaterializedPostgreSQL, которые не удаляются командами типа "DROP TABLE default.postgre_replica" - ошибка DB::Exception: Table default.16e0c3e0-1e84-4425-96e0-c3e01e84f425_nested doesn't exist. (UNKNOWN_TABLE). То есть я так предполагаю при создании MaterializedPostgreSQL должна была создаться и физически таблица для него с таким GUIDопохожем именем, но изза разного рода ошибок до ее создания дело не доходило и теперь остались полуматвью, которые... можно както корректно удалить? Попробовать вычистить их из system.tables?
Обсуждают сегодня