同步Kafka數(shù)據(jù)概述
基于Tablestore Sink Connector,您可以將Apache Kafka中的數(shù)據(jù)批量導(dǎo)入到表格存儲(Tablestore)的數(shù)據(jù)表或者時序表中。
背景信息
Kafka是一個分布式消息隊列系統(tǒng),不同的數(shù)據(jù)系統(tǒng)可以通過Kafka Connect工具將數(shù)據(jù)流輸入Kafka和從Kafka獲取數(shù)據(jù)流。
表格存儲團隊基于Kafka Connect開發(fā)了Tablestore Sink Connector。Tablestore Sink Connector會根據(jù)訂閱的主題(Topic)輪詢地從Kafka中拉取消息記錄(Record),并對消息記錄進行解析,然后將數(shù)據(jù)批量導(dǎo)入到Tablestore。該Connector優(yōu)化了數(shù)據(jù)導(dǎo)入過程,并且支持個性化配置。
表格存儲是阿里云自研的多模型結(jié)構(gòu)化數(shù)據(jù)存儲,支持多種數(shù)據(jù)模型,包括寬表模型和時序模型。您可以將Kafka數(shù)據(jù)同步到表格存儲中的數(shù)據(jù)表(寬表模型中的表類型)或者時序表(時序模型中的表類型)。具體操作,請分別參見同步數(shù)據(jù)到數(shù)據(jù)表和同步數(shù)據(jù)到時序表。
功能特性
Tablestore Sink Connector的主要功能特性如下:
至少交付一次
保證Kafka消息記錄從Kafka主題向Tablestore至少交付一次。
數(shù)據(jù)映射
Kafka主題中的數(shù)據(jù)先通過Converter進行反序列化,您需要在Kafka Connect的worker配置或者connector配置中修改key.converter和value.converter屬性,以確保配置合適的反序列化轉(zhuǎn)換器。您可以選擇Kafka Connect帶有的JsonConverter,也可以選擇由第三方提供的其它Converter或者自定義Converter。
自動創(chuàng)建目標表
當目標表缺失時,支持根據(jù)配置的主鍵列和屬性列白名單(如果有)自動創(chuàng)建目標表。
錯誤處理策略
由于導(dǎo)入數(shù)據(jù)時為批量操作,其中部分消息記錄可能發(fā)生解析錯誤或者寫入錯誤。此時,您可以選擇立即終止任務(wù)或者忽略這些錯誤,您還可以選擇將產(chǎn)生錯誤的消息記錄和錯誤信息記錄在Kafka消息系統(tǒng)中或者表格存儲中。
工作模式
Tablestore Sink Connector具有standalone(獨立)模式和distributed(分布式)模式兩種工作模式,請根據(jù)實際需要選擇。
在standalone模式下,所有任務(wù)都將在單個進程中執(zhí)行,此模式更易于配置和使用。您可以使用standalone模式了解Tablestore Sink Connector的各種功能。
在distributed模式下,所有任務(wù)通過多個進程并行執(zhí)行,此模式支持根據(jù)進程變化自動均衡任務(wù)以及在執(zhí)行任務(wù)過程中提供容錯能力,穩(wěn)定性更好。建議您使用distributed模式。