因为ck集群1各个业务数据增长过快,现需要对集群1中的各个业务进行拆分,将原有集群1中ck表中的数据同步至其他不同环境ck集群2中。
解决办法:
ck提供remote函数,允许我们去查询远程的服务。直接跨集群传输,减少了I/O次数,进而大幅度提升了跨集群的数据传输,如数据备份,不同环境同步数据等效率。
remote('addresses_expr',db,table[, 'user'[, 'password']])
remote('addresses_expr',db.table[, 'user'[, 'password']])
eg:
SELECT count(*) FROM
remote('ip:port', 'database', 'test', 'user', 'password');
INSERT INTO new_database.待迁移的数据表SELECT * from remote('老集群地址',old_database.老数据表,'user','password')
其中remote()函数就可以理解为是一个远程表名,port是指TCP端口,也是就默认的9000端口。
传输数据,其实就和本地表一样,只需要insert into test select ...就行了,select部分也是可以多层嵌套加条件的。