5G時代,為什麼NoSQL和SQL存在短板?
01 介紹
當今的通訊服務提供商(CSP)需要能夠在處理海量複雜的資料的同時,不會下降或者減慢網路響應速度和可靠性。5G時代,裝置和使用者數量呈指數級增長,這對業務支援服務(BSS)提出了新需求,也成為了一項特別艱鉅的任務。
正如您目前所看到的現實情況,電信網路策略響應,個性化報價或防止欺詐交易等應用程式,必須能夠在幾毫秒內對資料事件做出反應,才能增加營收或防止虧損。
為了更好地滿足這些日益複雜的需求,CSP需要知道如何在日益擁擠的資料庫環境中進行最佳地資料管理,而且這類場景似乎每年都會出現新的類別。最新類別則是NewSQL,它為NoSQL和SQL資料庫無法提供的電信公司提供了獨特優勢,尤其是在實時資料處理方面。當今的資料庫需要遍歷整個資料從獲取到執行的整個生命週期,且必須在10毫秒或更短的時間完成。環顧四周,目前只有NewSQL資料平臺才能實現這一目的。
本文闡述了SQL,NoSQL和NewSQL資料庫之間的主要區別,並解釋了為什麼NewSQL資料庫是電信行業順應時代發展的關鍵,以及在5G時代,CSP如何充分利用各種資料庫技術對其網路進行高效運維管理。
02 NewSQL緣起
NewSQL是451 Group的分析師Matt Aslett創造的一個術語,用來描述一組新的資料庫特性,這些特性既繼承了傳統SQL關聯式資料庫的許多功能,同時也提供NoSQL技術的某些優勢。
NewSQL系統為現實提供了兩全其美的方案:關係資料模型和傳統資料庫的ACID事務一致性;繼承SQL的互動便利性以及NoSQL的可擴充套件性和速度。有些系統提供了比NoSQL解決方案更強的一致性保證,儘管有人認為“可調”的一致性是偽一致性,但也並不完全符合ACID。
當然,NewSQL解決方案之間也存在差異。SAP HANA可以處理少量的事務性工作負載,但是沒有本地叢集的優勢。NuoDB是一個群集優先的SQL資料庫,專注於雲部署,但是吞吐量很差。MemSQL對於叢集分析很有用,但是其可調整的一致性並非嚴格意義上的ACID事務。NuoDB和MemSQL都具有計算和儲存分離的特點,因此它們可能會遇到資料傳輸和同步(尤其是圍繞事務的同步)的問題。
ACID 原則
大多數關聯式資料庫都遵循ACID(原子性、一致性、隔離性和永續性)原則,而大多數NoSQL資料庫是BASE(基本可用、軟狀態、最終一致性)原則。
NewSQL資料庫,如VoltDB,為聯機事務處理(OLTP)工作提供了NoSQL系統的可擴充套件性,同時遵從了傳統資料庫系統的ACID保證。
03 電信業場景下的NewSQL與NoSQL
既然我們已經注意到了SQL、NoSQL和NewSQL的基本區別,以及他們各自的優缺點。接下來,就讓我們深入瞭解下,電信業運營商和開發人員真正關心NoSQL和NewSQL的哪些特性,他們可以使用NoSQL解決哪些問題?
- 我可以使用NoSQL解決哪些問題?
- NoSQL在哪裡使用不合適?
- 如何利用NoSQL和NewSQL的優勢?
我們不懷疑NoSQL資料庫非常契合許多工作場景,但是在某些特定場景下,NoSQL技術可能並不是能選擇的最佳的解決方案。
下一節會對比NewSQL和NoSQL在電信業資料管理的4個關鍵考量指標:可擴充套件性,可用性,資料一致性以及快速響應。
3.1 可擴充套件性
NoSQL
隨著5G蓬勃發展以及通訊裝置的迅速增長,電信業企業需要升級擴充套件其現有的資料管理方式。
最初NoSQL因為在網際網路行業中類似Google,Facebook和Twitter廣泛採用,以解決他們海量規模化資料管理時,才開始引起人們的注意。這些平臺處理大量非結構化資料流入:Web搜尋、移動裝置、使用者狀態更新、資訊流等。
在這些場景中,最重要的考量因素是可擴充套件性。資料庫必須大規模快速地擴充套件。關係模式和擴充套件傳統SQL資料庫無法應對海量資料增長和處理,在傳統SQL資料庫維護海量資料和多樣化查詢處理請求的成本和效率是很難接受的。
NoSQL系統最重要的特性是能夠在通用的硬體裝置上擴充套件應用程式的能力。對於需要水平無限制擴充套件的需求場景,NoSQL可能是正確的選擇,NewSQL和NoSQL在擴充套件性上並沒有太大區別。
但是,NoSQL資料庫為了擴充套件性而在幾乎所有其它方面折衷,這對於僅依靠NoSQL的電信業公司來說有很大問題。
NewSQL
儘管NoSQL關聯式資料庫系統提供了可擴充套件性選項,但通常這一成本很高。NewSQL系統也在致力於應對系統擴充套件性的挑戰,同時它繼承了傳統RDBMS的事務性和SQL標準。
在典型場景中,記憶體中的大規模並行SQL關聯式資料庫,該資料庫在通用硬體上可以線性擴充套件。與NoSQL解決方案一樣,NewSQL資料庫對雲原生友好,並且可以隨意擴充套件以滿足超大資料規模下的應用程式需求。系統應設計為使用叢集內無共享資料分塊的架構,來實現雲端環境下低延遲的讀寫效能。
NewSQL資料庫提供了高可用、容錯性以及物理資料冗餘,在電信網路之類的場景也能夠平穩執行,以便電信運營商能夠從容應對大量湧入的資料。藉助功能強大的NewSQL資料庫,使用者還可以針對實時資料流處理場景,構建面向實時事務的應用程式。
3.2 可用性
NoSQL
NoSQL系統專為CAP理論的可用性而設計,這意味著即使在分散式分割槽的情況下,資料庫也始終會響應。
但是NoSQL系統在設計上優先考慮可用性,採用最終一致性,而不是強一致性(即始終提供最新最正確的資料集快照)方案,意味著NoSQL系統為了快速響應,然而可以返回的不是最新資料。
Apache Cassandra是最終一致性理念的踐行者,即快速響應比始終返回最新資料更重要,確實對於許多應用程式而言,最終的一致性是可以接受的。
但是,需要根據確切資料才可以進行交易的場景,比如電信公司需要採取措施來打擊欺詐等活動,最終一致性是不可接受的。
因此,NoSQL解決方案不適用於以下情況:
- 決定是否撥打移動使用者的電話
- 跟蹤(計數)並分配有限的稀缺資源
- 交易事務決策
NewSQL
NewSQL系統優先考慮一致性而不是可用性。NewSQL系統將向所有客戶返回相同的確切答案,從而使應用程式可以在通話費用,飛機座位分配和庫存等方面做出實時決策,而不會發生衝突。
3.3 一致性
NoSQL
如前所述,NoSQL系統是為實現可擴充套件性和可用性而設計的,但要犧牲強一致性作為代價。因此,對於需要強一致性的場景而言,NoSQL系統並不是一個好的選擇,比如計費和操作支援場景,而這兩個場景對於電信運營又都很常見。
同樣的還有欺詐行為,電信運營商尤其是發展中國家的電信運營商,承受著巨大的壓力,被濫用的SIM卡甚至可以用集裝箱計,從而造成每年數十億美元的損失。解決電信欺詐問題需要大規模準確地實時計算查詢呼叫方賬戶,這都是NoSQL資料庫無法做到的。
NewSQL
NewSQL系統具有高度一致性,它們優先考慮一致性而不是可用性,與此同時,NewSQL也支援多分割槽,這對於電信公司及其提供不間斷服務的能力至關重要,因為這意味著即使節點到節點的通訊出現故障,叢集仍可以繼續工作。
3.4 快速響應事務性場景
NoSQL
快速響應的場景在現代場景中非常普遍。儘管NoSQL解決方案通常可以提高資料儲存速度,但無法提供大規模的強一致的事務支援。
需要快速,可擴充套件的交易性應用程式包括:
- 在驗證使用者餘額的同時允許行動電話連線
- 以最優惠的價格進行交易
- 向潛在的數千個使用者展示移動廣告,而不會超出客戶的廣告投放預算
- 為電信服務商提供嚴格的SLA 在批准交易之前檢測是否存在信用卡盜刷行為
對於這類應用程式,由於處理事件每小時每分鐘都可能會發生數百萬次,因此NoSQL資料庫通常不是最佳選擇。電信、金融服務、線上遊戲、廣告技術和其他行業的業務需要能夠應對事件處理的併發和延遲。因此,可擴充套件的強一致性事務解決方案是必備的。
NewSQL
NewSQL系統為現代應用程式提供了高可擴充套件性和強一致性的特性,即使在海量資料處理時,多分割槽冗餘支援也可以使得系統線性擴充套件,助力應用程式精確快速響應客戶請求。
04 使用NewSQL構建可擴充套件的現代應用程式
NoSQL和NewSQL都提供了構建高度可擴充套件的應用程式的資料儲存能力。NoSQL資料儲存是高可用性應用場景的理想選擇。NewSQL系統則提供強大的一致性和事務互動效能力,即便在出現故障時,一致性比可用性更受青睞的場景中,NewSQL是最佳選擇。
儘管幾乎所有NoSQL解決方案都提供了可擴充套件性,但VoltDB卻提供了可擴充套件性並新增了強一致性的事務支援。
VoltDB具備極高的響應速度、強一致性和可擴充套件性。在所有NewSQL解決方案,面對叢集故障的情景中,VoltDB都是最強大和最靈活的,我們針對可用性進行了獨立驗證,見證了許多客戶在生產環境叢集中穩定執行數年。
VoltDB在需要強一致性的應用場景中表現出色,包括:
- 處理電信BSS和網路中日益複雜的策略和計費規則問題
- 從呼叫後欺詐檢測到防止欺詐性呼叫發生
- 向電信客戶提供即時優惠,以改善訂戶體驗和ARPU 應用機器學習規則來檢測和防止工業物聯網的入侵行為
- 測量、監視和檢測效能下降,避免意外當機
VoltDB是目前市場上最成熟的NewSQL系統,也是雲原生資料庫。它支援實時資料流中的ACID事務處理,對本地叢集和Hadoop生態支援也非常完備。除此之外,它同時整合了高吞吐量,低延遲的資料處理特性,是非常優秀的資料密集型應用程式系統, 在高效能、低延遲、強一致性需求場景中表現不俗,廣泛應用於策略執行,個性化推薦,欺詐或異常檢測等需要實時決策響應的資料流應用程式中。
如果您希望整合VoltDB到您的技術棧中,或者想和更多小夥伴一起交流
請私信與我們聯絡。
關於VoltDB
VoltDB支援強ACID和實時智慧決策的應用程式,以實現互聯世界。沒有其它資料庫產品可以像VoltDB這樣,可以同時需要低延時、大規模、高併發數和準確性相結合的應用程式加油。
VoltDB由2014年圖靈獎獲得者Mike Stonebraker博士建立,他對關聯式資料庫進行了重新設計,以應對當今不斷增長的實時操作和機器學習挑戰。Stonebraker博士對資料庫技術研究已有40多年,在快速資料,流資料和記憶體資料庫方面帶來了眾多創新理念。
在VoltDB的研發過程中,他意識到了利用記憶體事務資料庫技術挖掘流資料的全部潛力,不但可以滿足處理資料的延遲和併發需求,還能提供實時分析和決策。VoltDB是業界可信賴的名稱,在諾基亞、金融時報、三菱電機、HPE、巴克萊、華為等領先組織合作有實際場景落地案例。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69903219/viewspace-2760841/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼前端工程師存在技術短板?有哪些原因!前端工程師
- 為什麼 SQL 正在擊敗 NoSQL,資料的未來是什麼?SQL
- 【轉載】NoSQL開篇——為什麼要使用NoSQLSQL
- 5G時代下,雲遊戲什麼時候才能成為主流?遊戲
- 為什麼SQL正在擊敗NoSQL,這對未來的資料意味著什麼SQL
- 什麼是NoSQLSQL
- 面試官:說說你對NoSQL的瞭解,為什麼要有NoSQL面試SQL
- NoSQL為什麼需要模式自由的ETL工具 ?SQL模式
- 為什麼NoSQL資料庫這麼受歡迎?SQL資料庫
- 網站為什麼會存在漏洞網站
- 為什麼主動跨資料複製在5G時代非常重要?
- 為什麼自動駕駛需要5G自動駕駛
- 為什麼會有 Python 3 的存在?Python
- 越過5G的時代斷崖:搜狗分身技術會為IP產業帶來什麼?產業
- 什麼是NoSQL資料庫?SQL資料庫
- NoSQL時代終將來臨?SQL
- 為什麼實時分析既需要NoSQL的靈活性,又需要SQL系統的嚴格模式?SQL模式
- 為什麼要選擇SQL?SQL
- 為什麼要使用pl/sqlSQL
- MySQL、NoSQL分別是什麼?有什麼區別?MySql
- 為什麼 AI 時代更應該 Learn in PublicAI
- GoPro Karma無人機試玩:操作簡單但存在短板Go無人機
- 初識Redis之NoSQL+RDBMS演化史+什麼是NoSQLRedisSQL
- 有 postman 和 jmeter 的存在,為什麼還要用 python 寫介面自動化PostmanJMeterPython
- Android都到了4GB 為什麼卡頓還存在?Android
- SQL Server為什麼這麼耗記憶體SQLServer記憶體
- 為什麼說Spark SQL遠遠超越了MPP SQLSparkSQL
- 自繪引擎時代,為什麼Flutter能突出重圍?Flutter
- 大資料時代,為什麼python大受歡迎?大資料Python
- SQL、NoSQL和NewSQL的優缺點比較SQL
- 排名前十的SQL和NoSQL資料庫SQL資料庫
- 為什麼為什麼為什麼為什麼為什麼你要做一名程式設計師?程式設計師
- 為什麼golang中不存在三元運算子Golang
- 為什麼2022年仍然存在資料孤島?
- 什麼是NoSQL?這裡給你整明白SQL
- 大資料技術 - 為什麼是SQL大資料SQL
- 為什麼說 LINQ 要勝過 SQLSQL
- SQL語句為什麼不會共享(上)SQL