1.建mysql关联表
clickhouse-client //进入命令行
create table testmysql (`id` Nullable(Int32),`name` Nullable(String)) engine = MySQL('192.168.3.175:3306','lyjtest','data','root','123456');
//MySQL(地址,库名,用户名,密码)
2.导入数据到clickhouse
CREATE TABLE mysql2clickhouse (`id` Nullable(Int32),`name` Nullable(String)) engine =TinyLog(); //创建clickhouse管理表
insert into mysql2clickhouse(id ,name) select * from testmysql; //将mysql数据导入到clickhouse管理表
*******************或者使用下面方式建表导入
create table mysql2clickhouse2 engine= TinyLog as select * from testmysql;//需要指定engine
3.使用mysql函数方式导入mysql数据库表到clickhouse
insert into mysql2clickhouse2 select * from mysql('192.168.3.175:3306','lyjtest','test','root','123456');//('目标IP','database','table,'user','passwd')
4.同步csv数据到clickhouse数据库
cat test.csv | clickhouse-client -u user --password password --query="INSERT INTO db.table FORMAT CSV"
5.clickhouse集群数据迁移remote方式复制数据(https://clickhouse.tech/docs/zh/sql-reference/table-functions/remote/)
insert into db.tab1 select * from remote('目标IP',db.table,'user','passwd') // 解释什么场景下使用 https://blog.csdn.net/yyoc97/article/details/100974274
remote('addresses_expr', db, table[, 'user'[, 'password']]) remote('addresses_expr', db.table[, 'user'[, 'password']]) remoteSecure('addresses_expr', db, table[, 'user'[, 'password']]) remoteSecure('addresses_expr', db.table[, 'user'[, 'password']])
有人就要问了,既然ClickHouse支持MySQL外表引擎,还有必要将数据导入到ClickHouse中吗? 实际上还是非常有必要的。MySQL外表引擎,本身不存储数据,数据存储在MySQL中。在复制查询中,特别是有JOIN的情况下,访问外表是相当慢的,甚至不可能完成。
官网帮助文档:https://clickhouse.tech/docs/zh/sql-reference/table-functions/mysql/
官网jdbc桥接模式 :https://clickhouse.tech/docs/zh/sql-reference/table-functions/jdbc/
https://blog.csdn.net/qq_28603127/article/details/109552518
来源:oschina
链接:https://my.oschina.net/u/937111/blog/4923753