面试题答案
一键面试Source Connector
- 主要作用:
- 负责从各种数据源(如数据库、文件系统、消息队列等)读取数据。
- 将读取到的数据转换为Kafka能够理解的格式(如Kafka Connect的通用数据格式,像ConnectRecord),并发送到Kafka主题中。
- 例如在从关系型数据库(如MySQL)同步数据到Kafka时,Source Connector会根据配置定期轮询数据库的变更数据(如通过读取binlog),并将这些数据封装成合适的格式发送到Kafka。
- 适用场景:
- 当需要将外部系统的数据引入到Kafka生态系统中时使用。比如实时采集数据库的变更数据用于后续的数据分析、数据分发,或者从日志文件中读取日志数据并导入Kafka进行实时处理等场景。
Sink Connector
- 主要作用:
- 从Kafka主题中读取数据。
- 将从Kafka读取的数据转换为外部系统(如另一个数据库、文件系统、搜索引擎等)能够接受的格式,并写入到这些外部系统中。
- 例如将Kafka中的数据写入到Elasticsearch中用于搜索和分析,Sink Connector会从Kafka主题消费数据,然后将数据转换为Elasticsearch可接受的JSON格式并进行索引操作。
- 适用场景:
- 当需要将Kafka中的数据输出到外部系统进行存储、展示、进一步处理时使用。比如将经过实时分析处理后的Kafka数据写入到关系型数据库用于报表生成,或者写入到文件系统进行长期存档等场景。
区别
- 数据流向:
- Source Connector是将数据从外部数据源引入到Kafka,数据流向是外向内。
- Sink Connector是将数据从Kafka输出到外部系统,数据流向是内向外。
- 功能侧重:
- Source Connector侧重于数据的采集和适配Kafka格式,需要处理不同数据源的特性,如数据库的连接管理、文件读取方式等。
- Sink Connector侧重于数据的转换和写入外部系统,需要熟悉外部系统的写入接口和数据格式要求,如数据库的SQL语法、文件的写入模式等。
- 配置关注点:
- Source Connector配置主要关注数据源相关参数,如数据库的连接字符串、表名、读取频率等。
- Sink Connector配置主要关注外部目标系统相关参数,如目标数据库的连接信息、索引名称(对于搜索引擎)、文件路径等。