跳到主要内容
跳到主要内容

将Airbyte连接到ClickHouse

备注

请注意,Airbyte的ClickHouse源和目标目前处于Alpha状态,不适合移动大规模数据集(> 1000万行)。

Airbyte 是一个开源的数据集成平台。它允许创建 ELT 数据管道,并提供超过140个现成的连接器。此逐步教程展示了如何将Airbyte连接到ClickHouse作为目标并加载一个示例数据集。

1. 下载并运行Airbyte

  1. Airbyte运行在Docker上,并使用 docker-compose。请确保下载并安装最新版本的Docker。

  2. 通过克隆官方Github仓库并在您喜欢的终端中运行 docker-compose up 来部署Airbyte:

  3. 一旦您在终端中看到Airbyte横幅,您可以连接到 localhost:8000

    Airbyte banner
    备注

    或者,您可以注册并使用 Airbyte Cloud

2. 添加ClickHouse作为目标

在本节中,我们将展示如何将一个ClickHouse实例添加为目标。

  1. 启动您的ClickHouse服务器(Airbyte与ClickHouse版本 21.8.10.19 或更高版本兼容)或登录到您的ClickHouse云帐户:

  2. 在Airbyte中,选择“目标”页面并添加一个新目标:

    Add a destination in Airbyte
  3. 从“目标类型”下拉列表中选择ClickHouse,并填写“设置目标”表单,提供您的ClickHouse主机名和端口、数据库名称、用户名和密码,并选择是否使用SSL连接(相当于 clickhouse-client 中的 --secure 标志):

    ClickHouse destination creation in Airbyte
  4. 恭喜!您现在已将ClickHouse添加为Airbyte中的目标。

备注

为了使用ClickHouse作为目标,您需要使用的用户必须有权创建数据库、表和插入行。我们建议为Airbyte创建一个专用用户(例如 my_airbyte_user),并赋予以下权限:

3. 添加数据集作为源

我们将使用的示例数据集是 纽约市出租车数据(在 Github 上)。对于本教程,我们将使用与2022年1月对应的该数据集的一个子集。

  1. 在Airbyte中,选择“源”页面并添加一个类型为文件的新源。

    Add a source in Airbyte
  2. 在“设置源”表单中命名源并提供NYC出租车2022年1月文件的URL(见下文)。确保选择 parquet 作为文件格式,HTTPS Public Web 作为存储提供者,以及 nyc_taxi_2022 作为数据集名称。

    ClickHouse source creation in Airbyte
  3. 恭喜!您现在已在Airbyte中添加了源文件。

4. 创建连接并将数据集加载到ClickHouse

  1. 在Airbyte中,选择“连接”页面并添加一个新连接

    Add a connection in Airbyte
  2. 选择“使用现有源”,然后选择纽约市出租车数据,接着选择“使用现有目标”,并选择您的ClickHouse实例。

  3. 在“设置连接”表单中选择一个复制频率(我们将在本教程中使用 manual),并选择 nyc_taxi_2022 作为您要同步的流。确保您选择 Normalized Tabular Data 作为规范化类型。

    Connection creation in Airbyte
  4. 一旦连接建立,单击“现在同步”以触发数据加载(因为我们选择了 Manual 作为复制频率)

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

    Completed successfully
  6. 使用您喜欢的SQL客户端连接到您的ClickHouse实例并检查结果表:

    响应应如下所示:

    响应为:

  7. 注意,Airbyte自动推断了数据类型并向目标表添加了4列。这些列由Airbyte用于管理复制逻辑和记录操作。更多详细信息请参考 Airbyte官方文档

    现在数据集已经加载到您的ClickHouse实例中,您可以创建一个新表,并使用更合适的ClickHouse数据类型(更多细节)。

  8. 恭喜 - 您已经成功使用Airbyte将纽约市出租车数据加载到ClickHouse中!