VoltDB讓Kafka支援複雜資料流驅動的實時業務決策

VoltDB_China發表於2021-02-07

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感興趣,歡迎私聊,與更多小夥伴一起探討。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69903219/viewspace-2756571/,如需轉載,請註明出處,否則將追究法律責任。

相關文章