将 Airbyte 连接到 ClickHouse
请注意,ClickHouse 的 Airbyte 源连接器和目标连接器目前处于 Alpha 状态,不适用于迁移大型数据集(超过 1000 万行)
Airbyte
是一个开源数据集成平台。它支持创建
ELT
数据管道,并内置超过 140 个开箱即用的连接器。本分步教程将演示如何将 Airbyte 连接到 ClickHouse 作为目标端,并加载示例数据集。
下载并运行 Airbyte
-
Airbyte 基于 Docker 运行,并使用
docker-compose。请确保已下载并安装最新版 Docker。 -
克隆官方 GitHub 仓库后,在你常用的终端中运行
docker-compose up以部署 Airbyte: -
当你在终端中看到 Airbyte 的横幅时,就可以连接到 localhost:8000 了
注意另外,你也可以注册并使用 Airbyte Cloud
将 ClickHouse 添加为目标
在本节中,我们将展示如何将 ClickHouse 实例添加为目标。
-
启动 ClickHouse 服务器(Airbyte 支持的 ClickHouse 版本为
21.8.10.19或更高版本),或者登录您的 ClickHouse Cloud 账户: -
在 Airbyte 中,打开 “Destinations” 页面并添加一个新的目标端:

-
从 “Destination type” 下拉列表中选择 ClickHouse,然后填写 “Set up the destination” 表单,输入你的 ClickHouse 主机名和端口、数据库名、用户名和密码,并选择是否使用 SSL 连接(等同于在
clickhouse-client中使用--secure标志):
-
恭喜!你已经在 Airbyte 中将 ClickHouse 配置为目标端。
为了将 ClickHouse 用作目标数据库,您使用的用户需要具有创建数据库、表和插入行的权限。我们建议为 Airbyte 创建一个专用用户(例如 my_airbyte_user),并授予以下权限:
添加数据集作为源
我们将使用的示例数据集是 New York City Taxi Data(位于 Github)。在本教程中,我们将使用该数据集的一个子集,对应于 2022 年 1 月的数据。
-
在 Airbyte 中,打开 “Sources” 页面并添加一个新的
file类型源。
-
填写 “Set up the source” 表单,为 source 指定名称,并提供 NYC Taxi Jan 2022 文件的 URL(见下文)。请确保将文件格式设置为
parquet,Storage Provider 选择HTTPS Public Web,Dataset Name 选择nyc_taxi_2022。
-
恭喜!您已在 Airbyte 中添加了一个数据源。
创建连接并将数据集加载到 ClickHouse 中
- 在 Airbyte 中,打开 “Connections” 页面并添加一个新连接

-
选择 "Use existing source",然后选择 New York City Taxi Data;再选择 "Use existing destination",并选择你的 ClickHouse 实例。
-
填写 “Set up the connection” 表单,选择 Replication Frequency(复制频率,本教程中我们使用
manual),并选择nyc_taxi_2022作为你希望同步的数据流(stream)。请确保在 Normalization(标准化)中选择Normalized Tabular Data。

- 连接创建完成后,点击 “Sync now” 以触发数据加载(因为我们将 Replication Frequency 设置为
Manual)。

- 你的数据将开始加载,你可以展开视图查看 Airbyte 日志和进度。操作完成后,你会在日志中看到
Completed successfully消息:

-
使用你常用的 SQL Client 连接到 ClickHouse 实例,并检查生成的表:
返回结果应类似于:
返回结果为:
-
请注意,Airbyte 会自动推断数据类型,并向目标表中添加 4 列。这些列由 Airbyte 用于管理复制逻辑并记录操作。更多详情请参阅 Airbyte 官方文档。
现在数据集已经加载到你的 ClickHouse 实例中后,你可以创建一个新表,并使用更合适的 ClickHouse 数据类型(更多详情)。
-
恭喜你!你已经使用 Airbyte 成功将纽约市出租车数据加载到 ClickHouse 中!