Kafka Connect是一種用於在Kafka和其他系統之間可擴展的、可靠的流式傳輸數據的工具,可以更快捷和簡單地將大量數據集合移入和移出Kafka的連接器。Kafka Connect為DataPipeline提供了一個相對成熟穩定的基礎框架,還提供了一些開箱即用的工具,大大地降低研發的投入和提升應用的質量。
下面,我們看一看Kafka Connect的具體優勢。
首先,Kafka Connect提供的是以數據管道為中心的業務抽象。在Kafka Connect里有兩個核心概念:Source和Sink。Source負責導入數據到Kafka,Sink負責從Kafka導出數據,它們都被稱為Connector。比如Source Connector,Sink Connector,其實就是提供了數據讀取和寫入的高度業務抽象,可以簡化很多生命周期的管理工作。
當然,Source Connector會去初始化Source Task,Sink Connector會去初始化Sink Task。這些都是標准的封裝。對於數據方面,通過Source & Sink Record把數據的結構進行標准化的抽象。另外,企業客戶在做數據集成的時候,數據在很多應用場景下都要求有一定的格式,所以在Kafka Connect里用Schema Registry & Projector來解決數據格式驗證和兼容性的問題。當數據源產生變化的時候,會生成新的Schema版本,通過不同的處理策略用Projector來完成對數據格式的兼容。
備注:更多關於Kafka Connect及實時數據集成的問題,歡迎給我留言或直接訪問官方網址:http://datapipeline.com。
第二,Kafka Connect具有良好的可伸縮性、與容錯性。這些特性是與Kafka是一脈相承的。在流式處理和批量處理模式里,更多取決於Source端如何去讀取數據,Kafka Connect天然支持流式處理和批量傳輸方式。單節點和集群水平擴展功能都是由Kafka Connect框架直接支持。而任務恢復和狀態保持方面,目的端任務的寫入進度信息通過Kafka Connect框架自動管理、源端任務可以根據需要往Kafka里面放讀取進度信息,節省很多精力去管理任務重啟后的進度。
對於數據集成這樣一個通用的應用場景里,大家肯定都不希望重復發明輪子。目前,在Kafka Connect生態系統下,擁有可以直接使用的Connector共84個,絕大部分都是開源的。其中,一部分是Kafka官方提供的,另外一些是Confluent認證的,還有一些是第三方提供的。根據需求適當裁剪后,這些Connector都可以應用到自己的系統平台中。