精华 请问如何将比如mysql或者postgresql的数据库迁移至clickhouse
发布于 1 年前 作者 olei_me 2479 次浏览 来自 问答

如何将比如mysql或者postgresql的数据库迁移至clickhouse?

17 回复

我是从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 可惜他们都不知道,因为不看官方文档,浪费了这么高端的处理方式

如果是MySQL,可以看看这一篇:

http://jackpgao.github.io/2018/02/04/ClickHouse-Use-MySQL-Data/

一键导入MySQL的表,非常简单。

有人试过用从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的

回到顶部