Kafka系列之:连接器开发指南
本篇博客主要介绍了如何为 Kafka Connect 编写新的连接器,以在 Kafka 和其他系统之间移动数据。主要介绍一些关键概念,然后描述了如何创建一个简单的连接器。
一、核心概念和APIs
- 为了在 Kafka 和另一个系统之间复制数据,用户为想要从中提取数据或将数据推送到的系统创建一个连接器。
- 连接器有两种形式:SourceConnector 从另一个系统导入数据(例如,JDBCSourceConnector 会将关系数据库导入 Kafka)和 SinkConnector 导出数据(例如,HDFSSinkConnector 会将 Kafka Topic的内容导出到 HDFS 文件)。
- 连接器自己不执行任何数据复制:它们的配置描述了要复制的数据,连接器负责将该作业分解为一组可以分发给kafka connector worker节点的任务。这些任务也有两种对应的风格:SourceTask 和 SinkTask。
- 有了分配,每个任务必须将其数据子集复制到 Kafka 或从 Kafka 复制。在 Kafka Connect 中,应该始终可以将这些分配构建为一组输入和输出流,这些流由具有一致模式的记录组成。有时这种映射很明显:一组日志文件中的每个文件都可以被视为一个流,每个解析的行使用相同的模式形成一条记录,并且偏移量存储为文件中的字节偏移量。在其他情况下,映射到这个模型可能需要更多的努力:JDBC 连接器可以将每个表映射到一个流,但偏移量不太清楚。一种可能的映射使用时间戳列来生成以增量方式返回新数据的查询,并且最后查询的时间戳可以用作偏移量。
二、流和记录
- 每个流应该是一系列键值记录。键和