第 4 章 设计有效的数据管道 设计有效的数据管道
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在本章中,您将学习如何使用 Kafka Connect 构建弹性和有效的数据管道。我们将解释数据工程师和架构师在组装第 3 章中介绍的组件时必须了解的关键概念和决策点。
在本章的前半部分,我们将探讨如何为管道选择连接器插件。您需要一个连接器、一个转换器以及一些转换和谓词。我们将讨论如何评估连接器,并从社区中数以百计的连接器中找出满足生产要求的连接器。然后,我们将讨论如何在数据流过管道时对其进行建模,以及可用的格式化选项。
本章后半部分主要介绍 Kafka Connect 的弹性特性。在构建管道之前,您需要根据用例确定所需的语义。例如,您是否需要保证每条数据都能交付,还是为了提高吞吐量而丢失一些数据是可以接受的?我们首先深入了解 Kafka Connect 的内部工作原理,解释为什么它是一个能够处理故障的强大环境。然后,我们了解汇和源管道可以实现的语义,以及针对特定用例的不同配置选项和权衡。
选择连接器
在构建使用 Kafka Connect 的数据管道时,您首先需要决定安装哪个连接器。由于 Kafka 是一种非常流行的技术,因此有许多现有的连接器供你选择。与其重新发明轮子,不如使用现有的连接器,但前提是它必须满足你的要求。以下是在选择是否使用特定连接器作为管道的一部分时需要考虑的一些事项:
-
管道方向(源或汇)
-
许可和支持
-
连接器功能
管道方向
首先,验证连接器的数据流方向是否正确。它是向 Kafka 生成数据的源连接器,还是从 Kafka 消费数据的汇连接器?大多数连接器都将这一细节作为名称的一部分,文档中通常也会清楚说明。如果不是,你可以在 Kafka Connect 环境中安装连接器,并使用 REST API 来检索其类型。
$curllocalhost:8083/connector-plugins[{"class":"org.apache.kafka.connect.mirror.MirrorCheckpointConnector","type":"source","version":"3.5.0"},{"class":"org.apache.kafka.connect.mirror.MirrorHeartbeatConnector","type":"source","version":"3.5.0"},{"class":"org.apache.kafka.connect.mirror.MirrorSourceConnector","type":"source","version":"3.5.0"}]
type 字段表示连接器的类型。
有些项目提供包含源连接器和汇连接器的单一下载,但其他项目可能只提供其中一种。
许可和支持
在使用连接器之前,请务必 检查其许可证是否允许。连接器的源代码是公开的或可以免费下载的,但这并不意味着许可证是许可的。您还应该考虑您所期望的维护和支持水平。Kafka 社区努力确保旧版本的连接器与新版本的运行时兼容;但是,连接器的维护和更新并不都是一样的。无论你选择什么样的连接器,无论是开源的还是专有的,都要确保你知道连接器多久会更新一次最新的 Kafka API,以及开发者是如何解决安全漏洞的。
特定连接器获得支持的程度差别很大。许多公司为连接器(无论是专有还是开源)提供付费支持。这通常包括一个专门的沟通渠道(如果遇到问题),以及行业专家提供的配置建议。尽管如此,许多开源社区也会快速响应错误报告,并提供自己的专用交流渠道。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access