0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分布式數(shù)據(jù)庫系統(tǒng)與物聯(lián)網的相關性

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Steve Graves ? 2022-10-14 09:28 ? 次閱讀

分布式數(shù)據(jù)庫系統(tǒng)是將屬于單個邏輯數(shù)據(jù)庫的數(shù)據(jù)分發(fā)到兩個或多個物理數(shù)據(jù)庫的系統(tǒng)。除了這個簡單的定義之外,關于數(shù)據(jù)何時、如何以及為什么分發(fā),還有許多令人困惑的可能性。有些適用于邊緣和/或霧計算,有些適用于霧和/或云計算,有些適用于邊緣,霧和云計算的整個范圍。

本文將介紹邊緣、霧和云計算背景下分布式數(shù)據(jù)庫系統(tǒng)的類型,解釋“何時、如何以及為什么”數(shù)據(jù)是分布式的,以及為什么這些細節(jié)使某些分布式數(shù)據(jù)庫系統(tǒng)適用于(或不適用)邊緣、霧和云計算中的特定需求。

定義

維基百科的作者在定義分布式數(shù)據(jù)庫時采取了集體嘗試:“分布式數(shù)據(jù)庫是存儲設備并非全部連接到公共處理器的數(shù)據(jù)庫。它可以存儲在位于同一物理位置的多臺計算機中;或者可能分散在互連的計算機網絡上。與處理器緊密耦合并構成單一數(shù)據(jù)庫系統(tǒng)的并行系統(tǒng)不同,分布式數(shù)據(jù)庫系統(tǒng)由松散耦合的站點組成,這些站點不共享任何物理組件。該定義本身部分來自與美國商務部相關的電信科學研究所。

這個定義實際上相當狹窄。在“分布式數(shù)據(jù)庫”的一般標題下,我至少會問到其他三個用例:高可用性,集群數(shù)據(jù)庫和區(qū)塊鏈。維基百科的定義,高可用性和集群都適用于物聯(lián)網。此外,我認為分布式數(shù)據(jù)庫的分片可以存在于同一臺物理計算機上。使數(shù)據(jù)庫分布式的原因是,各個分區(qū)由數(shù)據(jù)庫系統(tǒng)的單獨實例管理,而不是由這些分區(qū)的物理位置管理。第六節(jié)將對此進行詳細介紹。

高可用性

要使數(shù)據(jù)庫系統(tǒng)實現(xiàn)高可用性 (HA),它需要在單獨的硬件實例中實時維護物理數(shù)據(jù)庫的相同副本。通過維護,我的意思是保持副本與主副本的一致性。在這種情況下,(至少)有兩個數(shù)據(jù)庫副本,我們稱之為主數(shù)據(jù)庫和從數(shù)據(jù)庫(有時稱為副本)。應用于主數(shù)據(jù)庫的操作(即插入、更新、刪除操作)必須在從屬數(shù)據(jù)庫上復制,并且從站必須準備好隨時將其角色更改為主數(shù)據(jù)庫。這稱為故障轉移。主站和副本通常部署在不同的物理系統(tǒng)上,但在電信中,常見的 HA 設置是機箱內的多個板:主控制器板、備用控制器板和一些數(shù)量的線卡,每個線卡都為某種協(xié)議(BGP、OSPF 等)提供服務。在這里,主數(shù)據(jù)庫由主控制器板上的進程維護。數(shù)據(jù)庫系統(tǒng)將更改復制到備用控制器板上的從數(shù)據(jù)庫,該從屬數(shù)據(jù)庫具有相同的進程,等待在主控制器板發(fā)生故障(或只是在熱插拔設置中被移除)時接管處理。在物聯(lián)網中,高可用性對于任務關鍵型工業(yè)系統(tǒng)是可取的,以保持網關的可用性,以及在云中,以確保即使在面對硬件故障時也可以繼續(xù)執(zhí)行實時分析。

集群數(shù)據(jù)庫

群集數(shù)據(jù)庫是在整個數(shù)據(jù)庫有多個保持同步的物理副本的數(shù)據(jù)庫。與 HA 的不同之處在于,數(shù)據(jù)庫的任何物理實例都可以修改,并且會將其修改復制到集群中的其他數(shù)據(jù)庫實例。這也稱為主-主配置,與 HA 的主-從配置相反。這就是數(shù)據(jù)庫集群實現(xiàn)之間的相似之處結束的地方。從廣義上講,有兩種實現(xiàn)模型:ACID和最終一致性。在 ACID 實現(xiàn)中,修改在兩階段提交協(xié)議中同步復制,以確保一旦提交,更改就會立即反映在數(shù)據(jù)庫的每個物理實例中。換句話說,所有數(shù)據(jù)庫實例始終是一致的。此體系結構消除了發(fā)生沖突的可能性(或者,更確切地說,在事務成功提交到群集之前解決沖突)。使用最終一致性時,可能會在原始節(jié)點將更改提交到數(shù)據(jù)庫很久之后異步復制更改。這意味著某種協(xié)調過程,以解決由兩個或多個節(jié)點發(fā)起的沖突更改。使用最終一致性,必須編寫應用程序以應對它們所附加到的數(shù)據(jù)庫的物理實例中存在過時數(shù)據(jù)的可能性。例如,考慮一個全球在線書商。庫存中可能有一本特定書籍的副本;紐約和悉尼的買家都會看到這本書有貨,兩者都可以把書放在購物車里結賬。系統(tǒng)將不得不弄清楚誰真正拿到了這本書,誰的訂單被延期了。用戶已經接受了這一點。但是,這種模式永遠不適用于需要驗證用戶是否訂閱了某種服務或擁有足夠資金的蜂窩電話網絡。這種類型的系統(tǒng)需要一致的數(shù)據(jù)庫視圖。由于 ACID 實現(xiàn)所需的同步復制的性質,水平可伸縮性受到限制,但實現(xiàn)非常簡單(無需解決沖突)。最終一致性實現(xiàn)的可伸縮性相當高,但復雜性也很高。集群實現(xiàn)在物聯(lián)網中比比皆是。例如,可以群集 IoT 網關以提高可伸縮性和可靠性。參見圖1。每個網關群集中的節(jié)點數(shù)適中,因此即時一致性和最終一致性模型都適用。群集可以處理來自邊緣設備的流量,而不是單個網關所能處理的流量,并且可靠性/可用性得到提高(即時一致性模型的可伸縮性固有限制不會在小型群集中發(fā)揮作用)。

區(qū)塊鏈

術語“分布式數(shù)據(jù)庫”通常與區(qū)塊鏈技術相關聯(lián)(比特幣是最知名的)。它與“分布式賬本”同義使用,后者更合適(在作者看來)。我在區(qū)塊鏈技術的背景下使用術語分布式數(shù)據(jù)庫的問題是,“分布式數(shù)據(jù)庫”意味著分布式數(shù)據(jù)庫管理系統(tǒng)。但區(qū)塊鏈中很少涉及數(shù)據(jù)庫管理系統(tǒng)。不是要詳細闡述這一點,但重要的是要區(qū)分數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫只是數(shù)據(jù)的集合,這些數(shù)據(jù)可能是分布式的,也可能是不分布的。數(shù)據(jù)庫管理系統(tǒng)是管理數(shù)據(jù)庫的軟件。區(qū)塊鏈實際上是一個分布式數(shù)據(jù)庫。但是,如前所述,在創(chuàng)建/維護區(qū)塊鏈分布式賬本時,很少涉及數(shù)據(jù)庫管理系統(tǒng)。

分區(qū)數(shù)據(jù)庫

維基百科定義“。..存儲在多臺計算機中,位于同一物理位置。..”是俗稱的數(shù)據(jù)庫分片。分片與 HA 和集群分布式數(shù)據(jù)庫之間的主要區(qū)別在于,每個物理數(shù)據(jù)庫實例(分片)僅包含所有數(shù)據(jù)的一小部分。所有分片共同表示單個邏輯數(shù)據(jù)庫,該數(shù)據(jù)庫在許多物理分片中體現(xiàn)出來。我同意維基百科的定義,因為分片不需要存儲在多臺計算機中即可獲得分片的好處。從邏輯上講,目的是相同的:可伸縮性。分片是分布在各個服務器上,還是在單個服務器上進行分區(qū)以利用多個 CPU 或 CPU 內核,這并不重要。在所有情況下,處理都是并行的。分片的物理分布方式是一個不重要的工件。例如,在我們自2012年以來進行的STAC-M3發(fā)布的基準測試中,我們利用了具有24個內核的單個服務器,創(chuàng)建了72個分片,我們使用了4到6個服務器,每個服務器有16到22個內核,創(chuàng)建了64到128個分片。在所有情況下,目標都是使 I/O 通道飽和,以便將數(shù)據(jù)放入 CPU 內核進行處理。雖然STAC-M3是資本市場(刻度數(shù)據(jù)庫)基準,但這些原則同樣適用于物聯(lián)網的大數(shù)據(jù)分析。物聯(lián)網數(shù)據(jù)絕大多數(shù)是時間序列數(shù)據(jù)(例如傳感器測量值),就像刻度數(shù)據(jù)庫是時間序列數(shù)據(jù)一樣。

對數(shù)據(jù)庫進行分片意味著支持分布式查詢處理。每個分片都由其自己的數(shù)據(jù)庫服務器實例管理。由于每個分片/服務器都表示整個邏輯數(shù)據(jù)庫的一部分,因此任何分片返回的查詢結果都可能只是部分結果集,需要與所有其他分片/服務器的部分結果集合并,然后才作為完整的結果集呈現(xiàn)給客戶端應用程序。如果數(shù)據(jù)以最佳方式在分片之間分布,則可以在單個分片上找到給定查詢的所有數(shù)據(jù),并且查詢可以分發(fā)到管理該分片的特定服務器實例。通常,必須支持這兩種方法。例如,考慮一個跨越多個園區(qū)的大型智能建筑物聯(lián)網部署,每個園區(qū)都有多棟建筑。我們可能會選擇在多個物理數(shù)據(jù)庫中分發(fā)有關每個園區(qū)的(分片)信息。如果我們想計算特定建筑物的某些指標(例如,15分鐘窗口中的功耗),我們只需要查詢包含該建筑物數(shù)據(jù)的分片。但是,如果我們想為多個建筑物和/或跨校園計算相同的指標,那么我們需要將該查詢分發(fā)到許多分片/服務器,這就是并行性發(fā)揮作用的地方。每個服務器實例都與所有其他服務器實例并行處理其部分問題。

數(shù)據(jù)庫分片還支持垂直可擴展性(即能夠存儲 10 或 100 的 TB、PB 及以上)。要創(chuàng)建單個 100 TB 的邏輯數(shù)據(jù)庫,我可以創(chuàng)建 50 個 2 TB 物理數(shù)據(jù)庫的實例。分布式數(shù)據(jù)庫系統(tǒng)通常支持“彈性”可伸縮性,允許我添加分片,這也可能意味著向分布式系統(tǒng)添加服務器,以便系統(tǒng)在垂直和水平維度上都是可伸縮的。垂直和水平可擴展性對于生成大量數(shù)據(jù)的大型物聯(lián)網系統(tǒng)至關重要。您需要縱向可擴展性來處理不斷增長的數(shù)據(jù)量,并且需要水平可擴展性來保持及時處理/分析數(shù)據(jù)的能力,因為數(shù)據(jù)從 1TB 增長到 100TB,再到 PB 級甚至更高。

物聯(lián)網復制

雖然嚴格來說,不是分布式數(shù)據(jù)庫實現(xiàn),但如果我們不談論物聯(lián)網系統(tǒng)中的數(shù)據(jù)分布,我們將是失職的。物聯(lián)網生態(tài)系統(tǒng)通常由“邊緣”,“網關”和“云”組成,數(shù)據(jù)庫存在于所有位置。物聯(lián)網數(shù)據(jù)最初是在邊緣生成的,需要從那里分發(fā)到網關,從網關分發(fā)到云。邊緣數(shù)據(jù)通常用于實時控制某些“事物”,例如在工業(yè)物聯(lián)網系統(tǒng)中打開或關閉螺線管。在企業(yè)層面,在許多情況下(如果不是大多數(shù)的話),物聯(lián)網系統(tǒng)的目標之一是從數(shù)據(jù)中獲取和提取價值。通常,這意味著數(shù)據(jù)的某種“貨幣化”。這可以以提高效率或減少維護成本或工業(yè)環(huán)境中的停機時間的形式出現(xiàn),或者與客戶進行更智能的互動,從而更有效地從錢包中提取資金。

物聯(lián)網系統(tǒng)的數(shù)據(jù)分發(fā)意味著將數(shù)據(jù)從邊緣通過一個或多個網關移動到私有云或公共云。這種數(shù)據(jù)移動充滿了它自己的問題:

連接

邊緣設備可以處于脫機狀態(tài),無論是出于設計還是由于通信基礎結構中的故障。例如,電池供電的邊緣設備在設計上處于脫機狀態(tài),并且僅按計劃連接到網關?;蛘撸鼈兛梢允沁M出網關或蜂窩塔范圍的移動設備?;蛘?,通信鏈路可以簡單地斷開。在任何情況下,設備都必須具有將數(shù)據(jù)排隊以供以后傳輸?shù)闹悄堋?/p>

安全

安全性是這十年中物聯(lián)網系統(tǒng)的首要考慮因素,并且很可能在未來十年中一直存在。傳輸中的數(shù)據(jù)需要得到保護。這可以像使用 SSL/TLS 一樣簡單。

帶寬

邊緣設備可用的通信通道的帶寬可能非常有限。例如,低功耗藍牙 (BLE) 為 1 或 2 兆位/秒 (Mbit/s)。Zigbee 的范圍為 20 到 250 千位每秒 (kbit/s)。這與10 Mbit/s時最慢的以太網相比。為了最大化可用帶寬,應在將數(shù)據(jù)放入通信通道之前對其進行壓縮。

范圍

物聯(lián)網系統(tǒng)設計人員需要考慮的一些問題:是否會將所有數(shù)據(jù)從邊緣推送到云端?還是某些數(shù)據(jù)僅在邊緣有用?數(shù)據(jù)是在傳輸之前聚合,還是僅傳輸原始粒度數(shù)據(jù)?

在 eXtremeDB 中,我們已經在主動復制結構?中預見并解決了這些問題。

總之,術語分布式數(shù)據(jù)庫包括三種不同的數(shù)據(jù)庫系統(tǒng)安排,用于三個不同的目的。高可用性數(shù)據(jù)庫系統(tǒng)將 master 數(shù)據(jù)庫分發(fā)給一個或多個副本,其明確目的是在發(fā)生故障時保持系統(tǒng)的可用性。集群數(shù)據(jù)庫系統(tǒng)分發(fā)數(shù)據(jù)庫以實現(xiàn)大規(guī)模/全局可伸縮性(最終一致性)或用于在相對較少的節(jié)點(ACID)之間進行協(xié)作計算。分片將邏輯數(shù)據(jù)庫分區(qū)為多個分片,以促進并行處理和水平可擴展性。所有功能都是部署可擴展且可靠的物聯(lián)網系統(tǒng)不可或缺的一部分。

這些分布式數(shù)據(jù)庫機制通常結合使用。再次參考上面的圖 1,我們看到網關群集,群集中的每個節(jié)點都聚合來自一定數(shù)量的設備的數(shù)據(jù)。如果群集節(jié)點發(fā)生故障,則其所服務的設備可以連接到群集中的另一個網關并維護操作。在服務器級別,描述了一個分片數(shù)據(jù)庫,每個分片從其中一個網關集群接收數(shù)據(jù)。分片共同表示單個邏輯數(shù)據(jù)庫。每個分片由一個主/副本 HA 對組成。這是可取的,因為如果沒有 HA,如果任何分片發(fā)生故障,邏輯數(shù)據(jù)庫的完整性就會受到損害。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 云計算
    +關注

    關注

    39

    文章

    7824

    瀏覽量

    137456
  • 物聯(lián)網

    關注

    2909

    文章

    44671

    瀏覽量

    373702
  • 數(shù)據(jù)庫

    關注

    7

    文章

    3807

    瀏覽量

    64429
收藏 人收藏

    評論

    相關推薦

    PingCAP推出TiDB開源分布式數(shù)據(jù)庫

    的性能表現(xiàn)。我們將繼續(xù)堅持開源的創(chuàng)新理念,將TiDB打造成一個領先的數(shù)據(jù)庫產品?!?部署新一代分布式數(shù)據(jù)庫已經成為用戶釋放數(shù)據(jù)價值、推動數(shù)字化轉型的重要方式,但隨著數(shù)據(jù)的快速增長以及上
    的頭像 發(fā)表于 11-24 11:26 ?437次閱讀
    PingCAP推出TiDB開源<b class='flag-5'>分布式數(shù)據(jù)庫</b>

    一文講清什么是分布式云化數(shù)據(jù)庫!

    分布式云化數(shù)據(jù)庫是一種先進的數(shù)據(jù)管理系統(tǒng),它將傳統(tǒng)的數(shù)據(jù)庫技術與分布式計算、云計算和大
    的頭像 發(fā)表于 10-14 10:06 ?228次閱讀

    分布式工業(yè)聯(lián)網平臺:引領智能制造的新篇章

    產品銷往世界各地,以最小的成本創(chuàng)造最大的利潤。 分布式工業(yè)聯(lián)網平臺的定義與特點 分布式工業(yè)聯(lián)網
    的頭像 發(fā)表于 09-27 17:09 ?239次閱讀

    分布式云化數(shù)據(jù)庫的優(yōu)缺點分析

    分布式云化數(shù)據(jù)庫的優(yōu)點主要體現(xiàn)在高可用和容錯、可擴展性、體系結構、數(shù)據(jù)一致性、成本、升級迭代等方面。同時也存在一些缺點,如通信開銷較大、
    的頭像 發(fā)表于 09-14 09:42 ?274次閱讀

    軟件系統(tǒng)數(shù)據(jù)庫的分庫分表設計

    分布式集群,實現(xiàn)分庫分表功能,解決數(shù)據(jù)庫中海量數(shù)據(jù)存儲和查詢性能的問題。MyCat 還是一個數(shù)據(jù)庫的集群中間件,主要實現(xiàn) RDBMS 數(shù)據(jù)庫
    的頭像 發(fā)表于 08-22 11:39 ?329次閱讀
    軟件<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>數(shù)據(jù)庫</b>的分庫分表設計

    基于分布式存儲WDS的金融信創(chuàng)云承載數(shù)據(jù)庫類關鍵應用

    基于分布式存儲WDS的金融信創(chuàng)云承載數(shù)據(jù)庫類關鍵應用
    的頭像 發(fā)表于 08-16 09:42 ?280次閱讀
    基于<b class='flag-5'>分布式</b>存儲WDS的金融信創(chuàng)云承載<b class='flag-5'>數(shù)據(jù)庫</b>類關鍵應用

    恒訊科技分析:跨境電商網站有哪些數(shù)據(jù)庫系統(tǒng)是推薦使用的?

    對于跨境電商網站,數(shù)據(jù)庫系統(tǒng)的選擇非常關鍵,以下是一些推薦使用的數(shù)據(jù)庫系統(tǒng): 1、MySQL:MySQL是一個流行的開源關系型數(shù)據(jù)庫管理系統(tǒng),廣泛用于Web應用開發(fā)。它以其高性能、可靠
    的頭像 發(fā)表于 08-12 15:01 ?363次閱讀

    基于英特爾至強6能效核處理器優(yōu)化原生分布式數(shù)據(jù)庫OceanBase

    隨著數(shù)字化、在線化、智能化的演進,企業(yè)面臨著指數(shù)級遞增的海量存儲需求和挑戰(zhàn),同時,企業(yè)需要降本增效,進行更好更智能的數(shù)據(jù)決策?;谟⑻貭?至強 6 能效核處理器的分布式數(shù)據(jù)庫OceanBase在性能
    的頭像 發(fā)表于 07-24 15:16 ?512次閱讀
    基于英特爾至強6能效核處理器優(yōu)化原生<b class='flag-5'>分布式數(shù)據(jù)庫</b>OceanBase

    小米試點業(yè)務系統(tǒng)上線OceanBase,數(shù)據(jù)庫性能飛躍新高度

    逐漸顯露出性能瓶頸和運維成本高昂的問題。為此,小米集團于2023年10月做出了重要戰(zhàn)略決策,引入螞蟻集團自主研發(fā)的OceanBase分布式數(shù)據(jù)庫,以期在數(shù)據(jù)庫性能、穩(wěn)定性及成本效益上實現(xiàn)全面升級。
    的頭像 發(fā)表于 07-03 15:39 ?682次閱讀

    小米攜手OceanBase實現(xiàn)數(shù)據(jù)庫升級

    在當今這個數(shù)字化飛速發(fā)展的時代,企業(yè)對于數(shù)據(jù)處理和存儲的需求日益增長。近日,小米集團宣布了一個令人振奮的消息:他們已經成功將部分關鍵業(yè)務系統(tǒng)升級至OceanBase原生分布式數(shù)據(jù)庫,并在數(shù)月內穩(wěn)定運行,實現(xiàn)了性能的大幅提升和成本
    的頭像 發(fā)表于 07-01 17:22 ?293次閱讀

    鴻蒙開發(fā)接口數(shù)據(jù)管理:【@ohos.data.distributedData (分布式數(shù)據(jù)管理)】

    分布式數(shù)據(jù)管理為應用程序提供不同設備間數(shù)據(jù)庫分布式協(xié)同能力。通過調用分布式數(shù)據(jù)各個接口,應用程
    的頭像 發(fā)表于 06-07 09:30 ?999次閱讀
    鴻蒙開發(fā)接口<b class='flag-5'>數(shù)據(jù)</b>管理:【@ohos.data.distributedData (<b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)</b>管理)】

    HarmonyOS開發(fā)實例:【分布式手寫板】

    使用設備管理及分布式鍵值數(shù)據(jù)庫能力,實現(xiàn)多設備之間手寫板應用拉起及同步書寫內容的功能。
    的頭像 發(fā)表于 04-17 21:45 ?507次閱讀
    HarmonyOS開發(fā)實例:【<b class='flag-5'>分布式</b>手寫板】

    鴻蒙HarmonyOS開發(fā)實例:【分布式關系型數(shù)據(jù)庫

    使用[@ohos.data.relationalStore]接口和[@ohos.distributedDeviceManager]?接口展示了在eTS中分布式關系型數(shù)據(jù)庫的使用,在增、刪、改、查的基本操作外,還包括分布式數(shù)據(jù)庫
    的頭像 發(fā)表于 04-11 09:52 ?939次閱讀
    鴻蒙HarmonyOS開發(fā)實例:【<b class='flag-5'>分布式</b>關系型<b class='flag-5'>數(shù)據(jù)庫</b>】

    保障數(shù)據(jù)完整分布式無紙化交互系統(tǒng)的關鍵特性

    來百度APP暢享高清圖片 保障數(shù)據(jù)完整分布式無紙化交互系統(tǒng)的關鍵特性之一。在分布式無紙化交互系統(tǒng)
    的頭像 發(fā)表于 01-15 14:28 ?353次閱讀
    保障<b class='flag-5'>數(shù)據(jù)</b>完整<b class='flag-5'>性</b>:<b class='flag-5'>分布式</b>無紙化交互<b class='flag-5'>系統(tǒng)</b>的關鍵特性

    Oracle數(shù)據(jù)庫是什么 Oracle數(shù)據(jù)庫的特點

    Oracle數(shù)據(jù)庫系統(tǒng)具有高效率、可靠好的特點,適用于各種規(guī)模的企業(yè)和組織。它支持大容量數(shù)據(jù)和高并發(fā)事務處理,能夠滿足各種復雜的業(yè)務需求。
    的頭像 發(fā)表于 01-06 15:02 ?1027次閱讀