
您可以使用 ClickHouse,更准确地说,是使用 clickhouse-local
作为 ETL 工具,将数据从当前的数据库系统迁移到 ClickHouse Cloud,前提是当前数据库系统具备以下之一:
ClickHouse 提供的integration 表引擎 或 表函数,
或者由相应厂商提供的 JDBC 驱动或 ODBC 驱动。
我们有时将这种迁移方法称为 "中转" 方法,因为它会借助一个中间中转点,将数据从源数据库迁移到目标端数据库。比如,出于安全要求,私有网络或内部网络中可能只允许出站连接,此时就需要采用这种方法:先用 clickhouse-local 从源数据库拉取数据,再将数据推送到目标端 ClickHouse 数据库,而 clickhouse-local 就充当这个中转点。
ClickHouse 为 MySQL、PostgreSQL、MongoDB 和 SQLite 提供 integration 表引擎 和 表函数 (可动态创建 integration 表引擎) 。 对于其他所有常见数据库系统,则可以使用由相应厂商提供的 JDBC 驱动或 ODBC 驱动。
什么是 clickhouse-local?

通常,ClickHouse 以集群形式运行,即多个 ClickHouse 数据库引擎实例以分布式方式运行在不同的服务器上。
在单台服务器上,ClickHouse 数据库引擎作为 clickhouse-server 程序的一部分运行。数据库访问 (路径、用户、安全等) 通过服务器配置文件进行配置。
clickhouse-local 工具让你能够以隔离的命令行工具形式使用 ClickHouse 数据库引擎,对大量输入和输出执行极速的 SQL 数据处理,而无需配置并启动 ClickHouse server。
安装 clickhouse-local
你需要为 clickhouse-local 准备一台主机,并确保该主机能够通过网络同时访问当前的源数据库系统和 ClickHouse Cloud 目标服务。
在这台主机上,根据你的操作系统下载相应的 clickhouse-local 构建包:
- 在本地下载
clickhouse-local最简单的方式是运行以下命令:
curl https://clickhouse.com/ | sh- 运行
clickhouse-local(它只会打印版本信息) :
./clickhouse-local- 在本地下载
clickhouse-local最简单的方式是运行以下命令:
curl https://clickhouse.com/ | sh- 运行
clickhouse-local(它只会打印版本信息) :
./clickhouse local管理您的 IP Access List
在 ClickHouse Cloud 服务列表中,选择要使用的服务,然后切换到 设置。如果 IP Access List 中没有包含需要连接到您的 ClickHouse Cloud 服务的远程系统 IP 地址或地址范围,可以通过 Add IPs 解决此问题:

添加单个 IP 地址,或添加需要连接到您的 ClickHouse Cloud 服务的地址范围。按需修改表单,然后点击 保存。

示例:使用 Integration 引擎从 MySQL 迁移到 ClickHouse Cloud
我们将使用 integration 表引擎 (由 mysql 表函数 即时创建) 从源 MySQL 数据库读取数据,并使用 remoteSecure 表函数 将数据写入您的 ClickHouse Cloud 服务中的目标端表。

在目标端 ClickHouse Cloud 服务上:
创建目标端数据库:
CREATE DATABASE db创建一个与 MySQL 表 schema 等效的目标端表:
CREATE TABLE db.table ...在 clickhouse-local 所在主机上:
运行 clickhouse-local 并执行迁移查询:
./clickhouse-local --query "
INSERT INTO FUNCTION
remoteSecure('HOSTNAME.clickhouse.cloud:9440', 'db.table', 'default', 'PASS')
SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');"