连接 Airbyte 到 ClickHouse
请注意,Airbyte 的 ClickHouse 源和目标当前处于 Alpha 状态,并不适合移动大型数据集(> 1000 万行)。
Airbyte 是一个开源数据集成平台。它允许创建 ELT 数据管道,并提供超过 140 个开箱即用的连接器。本分步教程展示了如何将 Airbyte 连接到 ClickHouse 作为目标并加载示例数据集。
1. 下载并运行 Airbyte
-
Airbyte 在 Docker 上运行,并使用
docker-compose
。确保下载并安装最新版本的 Docker。 -
通过克隆官方 GitHub 仓库并在您喜欢的终端中运行
docker-compose up
来部署 Airbyte:
-
一旦您在终端中看到 Airbyte 横幅,您可以连接到 localhost:8000
备注或者,您可以注册并使用 Airbyte Cloud
2. 添加 ClickHouse 作为目标
在本节中,我们将展示如何将 ClickHouse 实例添加为目标。
- 启动您的 ClickHouse 服务器(Airbyte 与 ClickHouse 版本
21.8.10.19
或更高版本兼容)或登录到您的 ClickHouse 云账户:
-
在 Airbyte 中,选择“目标”页面并添加新目标:
-
从“目标类型”下拉列表中选择 ClickHouse,填写“设置目标”表单,提供您的 ClickHouse 主机名和端口、数据库名称、用户名和密码,并选择是否为 SSL 连接(相当于
clickhouse-client
中的--secure
标志): -
恭喜!您已成功将 ClickHouse 添加为 Airbyte 的目标。
为了使用 ClickHouse 作为目标,您将使用的用户需要具有创建数据库、表和插入行的权限。我们建议为 Airbyte 创建一个专用用户(例如:my_airbyte_user
),并赋予以下权限:
3. 添加数据集作为源
我们将使用的示例数据集是 纽约市出租车数据(在 GitHub 上)。在本教程中,我们将使用与 2022 年 1 月对应的这个数据集的一个子集。
-
在 Airbyte 中,选择“源”页面并添加类型为文件的新源。
-
填写“设置源”表单,命名源并提供 NYC 出租车 2022 年 1 月文件的 URL(见下文)。确保选择
parquet
作为文件格式,HTTPS Public Web
作为存储提供者,以及nyc_taxi_2022
作为数据集名称。

- 恭喜!您已成功在 Airbyte 中添加了源文件。
4. 创建连接并将数据集加载到 ClickHouse
- 在 Airbyte 中,选择“连接”页面并添加新的连接。

-
选择“使用现有源”,并选择纽约市出租车数据,接着选择“使用现有目标”,并选择您的 ClickHouse 实例。
-
填写“设置连接”表单,选择复制频率(我们将在本教程中使用
manual
)并选择nyc_taxi_2022
作为您想要同步的流。确保您选择Normalized Tabular Data
作为规范化。

- 现在连接已创建,点击“立即同步”以触发数据加载(因为我们选择了
Manual
作为复制频率)。

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

- 使用您首选的 SQL 客户端连接到您的 ClickHouse 实例,并检查结果表:
响应应该如下所示:
响应为:
- 注意到 Airbyte 自动推断了数据类型,并向目标表中添加了 4 列。这些列由 Airbyte 用于管理复制逻辑和记录操作。有关更多详细信息,请参阅 Airbyte 官方文档。
现在数据集已加载到您的 ClickHouse 实例上,您可以创建一个新表并使用更适合的 ClickHouse 数据类型(更多细节)。
- 恭喜 - 您已成功使用 Airbyte 将纽约市出租车数据加载到 ClickHouse 中!