基于Tablestore Sink Connector,您可以将Apache Kafka中的数据批量导入到表格存储(Tablestore)的数据表或者时序表中。
背景信息
Kafka是一个分布式消息队列系统,不同的数据系统可以通过Kafka Connect工具将数据流输入Kafka和从Kafka获取数据流。
表格存储团队基于Kafka Connect开发了Tablestore Sink Connector。Tablestore Sink Connector会根据订阅的主题(Topic)轮询地从Kafka中拉取消息记录(Record),并对消息记录进行解析,然后将数据批量导入到Tablestore。该Connector优化了数据导入过程,并且支持个性化配置。
表格存储是阿里云自研的多模型结构化数据存储,支持多种数据模型,包括宽表模型和时序模型。您可以将Kafka数据同步到表格存储中的数据表(宽表模型中的表类型)或者时序表(时序模型中的表类型)。具体操作,请分别参见同步数据到数据表和同步数据到时序表。
功能特性
Tablestore Sink Connector的主要功能特性如下:
至少交付一次
保证Kafka消息记录从Kafka主题向Tablestore至少交付一次。
数据映射
Kafka主题中的数据先通过Converter进行反序列化,您需要在Kafka Connect的worker配置或者connector配置中修改key.converter和value.converter属性,以确保配置合适的反序列化转换器。您可以选择Kafka Connect带有的JsonConverter,也可以选择由第三方提供的其它Converter或者自定义Converter。
自动创建目标表
当目标表缺失时,支持根据配置的主键列和属性列白名单(如果有)自动创建目标表。
错误处理策略
由于导入数据时为批量操作,其中部分消息记录可能发生解析错误或者写入错误。此时,您可以选择立即终止任务或者忽略这些错误,您还可以选择将产生错误的消息记录和错误信息记录在Kafka消息系统中或者表格存储中。
工作模式
Tablestore Sink Connector具有standalone(独立)模式和distributed(分布式)模式两种工作模式,请根据实际需要选择。
在standalone模式下,所有任务都将在单个进程中执行,此模式更易于配置和使用。您可以使用standalone模式了解Tablestore Sink Connector的各种功能。
在distributed模式下,所有任务通过多个进程并行执行,此模式支持根据进程变化自动均衡任务以及在执行任务过程中提供容错能力,稳定性更好。建议您使用distributed模式。