insert into table
select * from mysql('host:3306','task_all', 'table','root', 'password');
подскажите что делать с новыми записями которые будут через месяц ?
1) мне как-то можно настроить синхронизацию так чтобы только новые записи попадали из mysql в clickhouse
или
2) создавать новую таблицу в mysql и тойже командой переносить не настраивая автоматической репликации ?
https://github.com/Altinity/clickhouse-sink-connector
ну если у вас в исходной таблице есть какое то поле по которому можно четко определить какие данные новые... то можно просто по CRON скрипты запускать INSERT INTO clickhouse_table SELECT * FROM mysql() WHERE id > (SELECT max(id) FROM clickhouse_table)
тоже думал об этом, но такого поля нет к сожадению
выглядит круто и одновременно сложно, я думал мб есть что-то типо ATTACH TABLE mysql('mysql_host:port', 'database_name', 'username', 'password', 'mysql_table_name') ENGINE = MySQL('mysql_host:port', 'database_name', 'username', 'password', 'mysql_table_name', 'clickhouse_table_name')
Есть MaterializedMySQL посмотрите а доке
кстати да, спасибо за наводку но там применяется к новой таблице конструкция CREATE DATABASE db1_mysql ENGINE = MaterializedMySQL( 'mysql-host.domain.com:3306', 'db1', 'clickhouse_user', 'ClickHouse_123' ) SETTINGS (allows_query_when_mysql_lost =true); есть ли возможность к существующей ?
Обсуждают сегодня