如何将比如mysql或者postgresql的数据库迁移至clickhouse?
我是从mysql导出csv, 然后insert到clickhouse.
@supermike 是一个方法,但这个得提前设计好数据表结构了,有一个问题就是,clickhouse怎么设置表的主键呢?
@olei_me 建表时候倒数第二个参数括号里面的几个字段组成得就是主键,只不过clickhouse默认主键是可以重复的
我这边数据迁移就是通过jdbc实现得 通过mysql查出来 在clickhouse中建表 插入
@fasoal 这个方法是我打算使用的方式
@fasoal 好像主键得是date的形式吧?
@olei_me create table IF NOT EXISTS test(date Date,a String,b String) ENGINE = MergeTree(date, (a,b), 8192) date 是指分区 (a,b)组成主键 8192 是稀疏索引粒度 你可以看看 JackpGao得文章 写的挺好 论坛里都有
@fasoal 嗯,好的,多谢了
可以建立字典表,通过远程查询字典表的方式将 MySQL或 PostgreSQL 的数据拉入到 Clickhouse
@fasoal 数据量大吗?多线程分页查询,多线程插入(多生产者消费者)?
这种直连的方式也是可以的,不用建clickhouse表结构,会自动帮你建好表结构 create table IF NOT EXISTS db.toClickHouse ENGINE = MergeTree order by id_column as select * from mysql(‘192.168.99.100’, 'db, ‘table’, ‘root’, ‘123456’);
@theseusyang 关注你很久了,你很推崇这种方式处理mysql和pg里面的数据
@theseusyang 可惜他们都不知道,因为不看官方文档,浪费了这么高端的处理方式
有人试过用从greenplum导数据到clickhouse吗?
@bondy 请教,用这个方法,提示DB::Exception: Unknown table function mysql. 是什么问题? 如何处理?
CREATE TABLE ck_table_name ENGINE = MergeTree ORDER BY id AS SELECT * FROM mysql(‘host:port’, ‘db’, ‘article_clientuser_sum’, ‘user’, ‘password’) mysql我们是这样导入数据至ck的
增量导入怎么办呢?
@jiangboli 同问,增量如何处理?全量咋都好弄,主要是增量或实时同步。
我是使用datax来控制增量
@jiangboli @Ronrey100 可以使用阿里的开源组件canal通过解析mysql binlog,实时同步至kafka,再借助clickhouse的kafka引擎加物化视图向clickhouse同步数据,或者是Canal-Server 加 Canal-Adapter,使用jdbc接口向clickhouse同步数据