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框架管理如下過程:
- 輪詢外部系統是否有新的可用資料
- 匯入資料
- 逐條處理資料
- 在同一個儲存過程中,依次傳遞資料給應用程式的業務邏輯,完成使用者的自定義業務處理
可以在配置檔案中或透過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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料驅動決策:決策智慧與設計思維
- 大資料、厚資料與富資料如何支援業務決策? - Dave大資料
- 資料驅動的生產運營管理決策
- 讓資料更智慧的驅動業務——優炫自治資料庫資料庫
- **複雜業務流**末端的介面前置資料應該如何準備?
- 老闆不相信我的方案結論!怎麼讓資料分析驅動決策?
- 阿里雲實時大資料解決方案,助力企業實時分析與決策阿里大資料
- Smartbi移動BI,讓資料決策盡在掌握!
- Android ListView中複雜資料流的高效渲染(一)AndroidView
- 資料驅動的商機:深入理解“業務資料化”和“資料業務化”
- 實時資料驅動:API商品資料介面的三重保證,助力您的業務飛躍API
- 流程挖掘:業務資料驅動如何改變你的業務? - leonardo
- 資料結構:時間複雜度資料結構時間複雜度
- 實時開發驅動下的資料智慧化
- 企業如何進行資料分析,實現科學決策和業務增長
- 資料分析:複雜業務場景下,量化評估流程
- 用“資料驅動”幹掉遊戲策劃?遊戲
- 如何透過資料分析來支援TPM模式的決策?模式
- 影響資料驅動業務目標的大資料挑戰大資料
- 得物供應鏈複雜業務實時數倉建設之路
- 如何利用大資料驅動業務增長?大資料
- 現代電信企業:極低延遲與複雜決策如何兼得?
- 專訪邦盛科技CEO王新宇:實時智慧決策驅動“熱資料” 價值綻放 | 愛分析訪談
- 讓業務實現迴歸資料庫資料庫
- 用資料驅動業務發展:深入探討有效的資料策略
- Flink CDC+Kafka 加速業務實時化Kafka
- 大資料如何助力企業決策?大資料
- 資料驅動決策,視覺化推動傳統電力發展革命史?視覺化
- kafka和websocket實時資料推送KafkaWeb
- 1688 複雜業務場景下的 Serverless 提效實踐Server
- 資料驅動產業資產產業
- 告別複雜的流關閉
- 探索AntDB:資料驅動時代的引擎
- 實時資料處理:Kafka 和 FlinkKafka
- 使用ajax請求傳送複雜的json資料型別,並解決fastjson解析複雜的json資料型別的問題JSON資料型別AST
- 使用Apache Kafka實現從單體到事件驅動微服務 - swlhApacheKafka事件微服務
- 業務複雜度不夠,如何深挖複雜度
- hive複雜資料型別的用法Hive資料型別