VoltDB讓Kafka支持複雜數據流驅動的實時業務決策

01 簡介

VoltDB是一個高速決策引擎,爲必須在數毫秒內做出響應的應用程序提供基礎架構支持,適用場景包括BSS(策略和收費)、預防欺詐、客戶價值管理(即個性化)和實時工業自動化等等,那些通過實時決策可以增加收入或減少損失的場景。

這些應用程序通常需要VoltDB運行在一個多樣化和異構計算的軟件生態裏,它需要與各種技術集成對接,包括Apache Kafka。實際上,Kafka已然成爲企業消息隊列的首選中間件。Kafka Connectors豐富的生態系統讓其它技術框架與VoltDB集成變得很簡單。

雖然有很多技術可以從Kafka裏提取數據來並交給下游進一步處理,但能夠同時完成實時數據決策需求的技術就屈指可數了。

通過訂閱Kafka Topic,VoltDB可以直接從Kafka上提取數據,並在10毫秒內完成數據決策,然後立即把結果發送回Kafka,在詐騙實施得手或者失去盈利機會前,完成相關決策執行。
圖片

VoltDB讓企業在Kafka技術生態的投值增值,它實現了在複雜流數據上的實時決策能力,讓應用開發重心放在處理重要的業務邏輯上,在實時完成數據的分析、處理和修改。

我們的客戶通過集成VoltDB和Kafka,賦能讓各種應用場景,比如:讓電話接線員給在90多個國家的用戶提供實時的個性化服務,幫助需要大規模、高併發、實時響應的大型體育運動平臺提供流暢的個性化用戶體驗。

在已經建立成熟的事件驅動型軟件架構中,只需要加入VoltDB,您的應用程序就可以獲得實時分佈式事務決策的能力,可以有效應對5G時代下的物聯網、機器學習的實時推理決策需求。

隨着5G、機器學習和物聯網的迅猛發展,VoltDB和Kafka技術的對接已經非常成熟,它使Kafka能夠快速並無縫地查詢複雜的流數據。Kafka建於2011年,用於處理流數據,那時5G,物聯網和機器學習等實時處理的需求還並不是特別旺盛,因此,儘管Kafka在某些場景下可以正常工作,但可能不適用於當代快速查詢複雜流數據的場景。

02 Kafka的強大之處

當今的經濟是建立在知識和數據的基礎上的。與往日的石油經濟一樣,現代公司需要搭建基礎設施,並快速並有效地處理這些知識和數據。

通過創建一個只爲了讓線性數據流動的中央管理系統,Apache Kafka在很大程度上降低了系統的複雜程度。Kafka完全是從頭開始建造的吞吐量明顯高於任何連接組件。最後,它是作爲實時流數據平臺構建的,始終可以讓數據流實時傳遞。

Kafka不只是在信息傳輸上面表現出色,它還有其它優勢:無限制的水平擴展性和簡單的數據存儲,在實時的流數據傳遞過程中可以無性能損耗的存儲數據。

雖然Kafka加上KsqIDB可以通過類SQL語言讀取實時流數據,如果需要進行儲存和運算數據的話則需要多種輔助工具比如NoSQL數據庫、流處理技術和規則引擎等。爲了達到5G、工業物聯網及它們相關的實時控制迴路所需要的低延遲標準和智能化要求,我們需要將這些技術封裝到一箇中間件裏,這就是VoltDB。

03 你的選擇:集成還是替換

根據架構和事件驅動架構的發展程度,應用程序可以通過使用importer-exporter框架將VoltDB與Kafka消息隊列集成,或者可以使用新的Topics功能本身將VoltDB用作Kafka消息隊列。以下是這兩個選項的簡要概述。

3.1用importer-exporter框架來進行整合
VoltDB的importer-exporter框架提供了與其他技術(如Kafka,Kinesis,JDBC,Elastic,Hadoop等)的無代碼集成。
導入程序將數據流傳輸到VoltDB中以按事件進行提取,同時確保消息/記錄在存儲後的持久性導入到VoltDB。然後,exporter可以以At-Least Once語義,將後處理消息/記錄推送到下游系統。
圖片


3.2 導入
Importer框架讓用戶程序集成VoltDB到事件驅動型架構。VoltDB的Importer框架管理如下過程:

  1. 輪詢外部系統是否有新的可用數據
  2. 導入數據
  3. 逐條處理數據
  4. 在同一個存儲過程中,依次傳遞數據給應用程序的業務邏輯,完成用戶的自定義業務處理

可以在配置文件中或通過VoltDB的用戶界面聲明性地配置用於不同系統的Importer。這些內置的導入器在數據庫啓動時自動運行,在數據庫停止時自動停止,使數據導入成爲數據庫操作過程的一部分。此外,Importer連接器還爲攝取的事件提供持久性,以確保在災難情況下不會丟失任何數據。可以在正在運行中的數據庫上創建導入程序實例,而無需停機。

VoltDB Kafka Importer使用Kafka Consumer API從多個Kafka代理和多個Topic提取數據。開發人員可以使用與Kafka Consumer相同的屬性配置導入程序。

3.3導出
導出會自動執行與導入相反的過程,捕獲寫入到導出表或流中的所有數據並將其發送到關聯的外部目標,無論是文件,服務(例如Kafka)還是其它數據庫。
開發者可以選擇導出特定記錄或遷移由於TTL過期而從表中刪除的行。導出過程是事務性的,因此開發人員可以確保導出期間不會丟失任何記錄。VoltDB保證每條數據記錄將至少導出一次(At – Least Once)。
圖片


3.4替換

VoltDB Topic特性(測試版)

在v10.1版本里,Topic特性允許應用程序使用發佈和訂閱語義與VoltDB連接。除了提供更好的語義以與其它系統集成外,這該功能還允許將VoltDB用作消息隊列,一站式完成VoltDB實時數據流管理和實時數據處理。
通過標準的Kafka Consumer API和Producer API來集成此功能,VoltDB可以輕鬆替換Kafka,特別是對於需要低延遲事務處理的數據流場景。
圖片
新的Topic特性帶給應用程序帶來的好處在於:


  • 通過縮減Kafka集羣的大小來降低成本
  • 減少跨越組件帶來的網絡延遲,從而降低整體的端到端延遲
  • 更簡單的架構設計
  • 複用Kafka Connect生態

VoltDB實現Kafka API Topic的優勢之一是可以複用Kafka Connect,讓VoltDB可以無縫替換Kafka,與那些已經和Kafka集成綁定的流行技術方案更容易集成VoltDB。應用系統架構中只用替換少量組件,就可以將發佈者和使用者直接嵌入,充分複用豐富的Kafka Connect生態組件。

通過使用Source和Sink Kafka連接器將各種系統與VoltDB集成在一起,開發人員可以輕鬆地將其數據管道連接在一起,以充分利用將消息隊列與複雜的決策引擎結合在一起的獨特優勢。
圖片

04 結束語

現代的大數據和5G的場景需求,與傳統的基礎軟件架構系統適用性有大量的衝突。傳統基礎設施,因爲沒有足夠能力去應付瞬息萬變的應用場景而即將成爲歷史。Kafka是在2011年被髮明的,那是還是沒有5G和物聯網概念的時代,簡單查詢處理能力的程序還適用於那個時期。如今時代已經不一樣了,Kafka雖然目前還是一個強大的流數據處理器,但是它仍需要一些場外援助,才能在複雜流數據上完成實時決策。

如果您正在使用Kafka,VoltDB與Kafka的集成也是容易的。但由於相信並瞭解Kafka的強大功能以及客戶的需求,我們一直在尋找更多方法來與諸如Kafka的這類關鍵技術集成,這就是我們創建Kafka Importer和Exporter工具的原因,也是我們開發新的pub-sub功能的原因。

最重要的是:無論客戶是否使用Kafka,我們都希望客戶的數據庫體系結構支持並加速其業務目標,而不是提供讓人困擾的方案。這也是我們總是提供各種選項,以及與客戶討論數據架構需求的原因。

關於VoltDB

VoltDB支持需要實時智能決策的應用程序,以實現互聯世界,同時又不影響ACID要求。沒有其他數據庫產品可以同時爲需要低延時、大規模、高併發數和準確性相結合的應用程序加油。

VoltDB由2014年圖靈獎的獲得者Mike Stonebraker博士創建,他對關係數據庫進行了重新設計,以應對當今不斷增長的實時操作和機器學習挑戰。Stonebraker博士對數據庫技術研究已有40多年,在快速數據,流數據和內存數據庫方面帶來了衆多創新理念。

在VoltDB的研發過程中,他意識到了利用內存事務數據庫技術挖掘流數據的全部潛力,不但可以滿足處理數據的延遲和併發需求,還能提供實時分析和決策。VoltDB是業界可信賴的名稱,已經由諾基亞,金融時報,三菱電機,HPE,巴克萊,華爲等領先組織合作有實際場景落地。

如果您對VoltDB感興趣,歡迎私聊,與更多小夥伴一起探討。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章