remoteSecure 函数可在 SELECT 和 INSERT 查询中使用,以访问远程 ClickHouse 服务器,从而让表迁移变得像编写一条嵌入了 SELECT 的 INSERT INTO 查询一样简单。
从自管理 ClickHouse 迁移到 ClickHouse Cloud
SharedMergeTree 作为表引擎) ,
而 ClickHouse Cloud 会自动处理纵向和横向扩缩容。
您无需自行考虑表该如何分片或复制。
在此示例中,自管理 ClickHouse server 是 源端,ClickHouse Cloud 服务是 目标端。
概述
- 在源服务中添加一个只读用户
- 在目标服务上复制源表结构
- 根据源端的网络可达性,从源端将数据拉取到目标端,或从源端推送数据到目标端
- 从目标端的 IP Access List 中移除源服务器 (如适用)
- 从源服务中移除该只读用户
将表从一个系统迁移到另一个系统:
在源 ClickHouse 系统上 (即当前承载数据的系统)
- 添加一个只读用户,使其能够读取源表 (本示例中为
db.table)
- 复制表定义
在目标端 ClickHouse Cloud 系统中:
- 创建目标数据库:
- 使用源端的 CREATE TABLE 语句创建目标端。
- 使用
remoteSecure函数从自管理端拉取数据
如果源系统无法从外部网络访问,你可以改用推送数据而不是拉取数据,因为
remoteSecure 函数同时支持查询和插入。请参见下一个选项。- 使用
remoteSecure函数将数据推送到 ClickHouse Cloud 服务
管理您的 IP Access List
管理您的 IP Access List
在 ClickHouse Cloud 服务列表中,选择要使用的服务,然后切换到 设置。如果 IP Access List 中没有包含需要连接到您的 ClickHouse Cloud 服务的远程系统 IP 地址或地址范围,可以通过 Add IPs 解决此问题:添加单个 IP 地址,或添加需要连接到您的 ClickHouse Cloud 服务的地址范围。按需修改表单,然后点击 保存。
在 ClickHouse Cloud 服务之间迁移
- 迁移从已恢复备份中得到的数据
- 将数据从 Development 服务复制到暂存服务 (或从暂存服务复制到生产环境)
- 确定其中一个 ClickHouse Cloud 服务作为 source,另一个作为 destination
- 在 source 服务中添加一个只读用户
- 在 destination 服务上复制 source 表结构
- 临时放开对 source 服务的 IP 访问限制
- 将数据从 source 复制到 destination
- 在 destination 上重新设置 IP Access List
- 从 source 服务中删除只读用户
向源服务添加只读用户
-
添加一个对源表具有只读权限的用户 (本示例中为
db.table) -
复制表定义
在目标端服务上复制表结构
-
创建目标端数据库:
-
使用源端的 CREATE TABLE 语句,在目标端创建表。
在目标端,使用源端
select create_table_query...的输出创建表:
允许远程访问源服务
将数据从源端复制到目标端
-
使用
remoteSecure函数从源 ClickHouse Cloud 服务拉取数据 连接到目标服务。在目标 ClickHouse Cloud 服务上运行以下命令: - 验证目标服务中的数据
在源端重新设置 IP Access List
删除只读的 exporter 用户
- 将服务的 IP Access List 切换为限制访问