前言
随着实时数据处理需求的不断增加,企业需要更加高效和灵活的数据集成解决方案。AutoMQ [1] 作为一种基于云重新设计的 Kafka 消息系统,以其显著的成本优势和弹性能力,成为了企业的理想选择。通过将 AutoMQ 与 Airbyte [2] 和数据仓库集成,可以进一步简化数据集成流程并提升数据分析能力,从而实现实时数据的高效流动和分析,帮助企业快速做出明智决策。这篇文章将向你介绍如何集成这些组件。AutoMQ 概述
AutoMQ 是一种基于云重新设计的流处理系统,在保持与 Apache Kafka 100% 兼容的前提下,AutoMQ 通过将存储分离至对象存储,显著提升了系统的成本效益和弹性能力。具体来说,AutoMQ 通过构建在 S3 上的流存储库 S3Stream,将存储卸载至共享云存储 EBS 和 S3,提供低成本、低延时、高可用、高可靠和无限容量的流存储能力。与传统的 Shared Nothing 架构相比,AutoMQ 采用了 Shared Storage 架构,显著降低了存储和运维的复杂性,同时提升了系统的弹性和可靠性。 AutoMQ 的设计理念和技术优势使其成为替换企业现有 Kafka 集群的理想选择。采用 AutoMQ,企业可以显著降低存储成本、简化运维,并实现集群的自动扩缩容和平衡,从而更高效地应对业务需求的变化。此外,AutoMQ 的高效支持高吞吐的冷读操作和服务零中断,确保系统在负载波动的情况下稳定运行。AutoMQ 的存储架构如下:
Airbyte 概述
Airbyte 是一个数据集成平台,专注于简化和自动化数据管道的构建和管理。它支持广泛的源和目标系统,用户可以通过直观的 Web 界面或 API 轻松配置数据管道。Airbyte 具备高效的数据提取、转化和加载(ETL)功能,内置调度和监控机制,确保数据管道的可靠性和性能。其模块化设计支持自定义连接器,满足多样化的数据集成需求。 Airbyte 的主要优势包括高可扩展性和灵活性,允许用户快速适应不同的数据源和目标系统。内置的数据标准化处理和自动化调度功能提升了数据处理的效率和一致性。通过容器化部署,Airbyte 简化了安装和扩展过程,适合企业级数据集成和数据仓库建设。此外,丰富的连接器库和社区支持使其成为数据工程师和分析师的理想工具,能够高效地解决复杂的数据集成挑战。
前置条件
- 数据源:一个可用的 AutoMQ 节点。
- 数据 Connector:可用的 Airbyte 环境 。
- 数据终点(数仓):这里我选择的是云上部署的 Databricks [3] 集群。
快速部署
部署 AutoMQ
可以参考 AutoMQ 官方文档进行部署:Linux 主机部署多节点集群▸。搭建完成后,可以通过 Kafka SDK 或者手动方式进行数据准备,之后将进行数据同步过程。我提前准备了一些数据,可以通过各种可视化工具查看 AutoMQ 节点状态,比如 Redpanda Console [5]、Kafdrop [6] 等。这里我选择 Redpanda Console,可以看到当前已经有了 50 个Topic,并且每个 Topic 下有 1000 条初始消息。
部署 Airbyte
参考 AirByte 官网文档:Quickstart | Airbyte [7]这里我以 Linux 系统为例进行 Airbyte 的部署。
环境准备
首先,你需要安装abctl ,这个工具是 Airbyte 官方提供的搭建工具,能帮你快速构建所需要的 Airbyte 环境。然而使用该工具搭建环境需要安装 Docker 环境。如果你没有可用的 Docker 环境,请参阅 Docker 的安装说明:Docker Install [8] 。可以通过命令 docker version 输出版本信息:
准备 abctl 工具
可依次执行如下命令,这里我下载的版本是version: v0.9.2 :
部署 Airbyte 环境
通过执行命令abctl local install ,这将在 Docker 中拉取 Airbyte 的镜像,并通过 helm 进行环境部署。部分日志如下:
http://localhost:8000 进行登录,默认的账号和密码为:
-
用户名:
airbyte -
密码:
password
zhaoxi 和 ktpro123 ,您可以运行以下命令:

部署 Databricks
如果你还没有一个可用的 Databricks 服务,可参考官方文档进行搭建:Google Databricks [9]。数据同步
新增数据源
新增 AutoMQ 作为数据源,得益于 AutoMQ 完全兼容 Kafka,因此可以使用 Kafka 的数据源模板进行 AutoMQ 数据源的搭建。通过 Airbyte 界面的左侧边栏 -> Sources -> 搜索 Kafka,填写基本信息,如 Bootstrap Servers、Protocol 、Topic Pattern 等。
Topic-.\* 匹配所有以 Topic- 为前缀的所有 Topic,这与我准备的数据格式是一致的,因此你需要保证你准备的数据也能够被匹配到。新增成功后,我们可以看到如下结果,证明数据源连接成功:

新增数据终点
数据终点我们选择的是 Databricks,当然你也可以选择其他数据终点,具体列表可参考:Destinations | Airbyte [10]。通过 Airbyte 界面的左侧边栏 -> Destinations -> 搜索 Databricks:
- 进入创建的 Databricks Cluster 集群内 -> 选择 Advanced Options -> JDBC/ODBC ,即可看到 HTTP PATH 以及 Server Hostname 的值。

- 选择集群右上角用户 -> 进入 Settings -> 选择 User -> Developer -> AccessToken -> Generate new Token。你将会得到类似
dapi8d336faXXXXXXXXXa6aa18a086c0e的 Token。

发起连接并传输数据
数据源和数据终点都已就绪,现在我们开始建立连接。选择 Airbyte 左侧边栏 -> Connections -> 选择数据源和数据终点 -> 建立连接。




验证结果
数据传输成功后,我们可以进入 Databricks 集群里查看传输结果: