導航:首頁 > 網路數據 > 大數據的一致性

大數據的一致性

發布時間:2023-03-09 10:27:30

1. 大數據時代數據管理方式研究

大數據時代數據管理方式研究
1數據管理技術的回顧
數據管理技術主要經歷了人工管理階段、文件系統階段和資料庫系統階段。隨著數據應用領域的不斷擴展,數據管理所處的環境也越來越復雜,目前廣泛流行的資料庫技術開始暴露出許多弱點,面臨著許多新的挑戰。
1.1 人工管理階段
20 世紀 50 年代中期,計算機主要用於科學計算。當時沒有磁碟等直接存取設備,只有紙帶、卡片、磁帶等外存,也沒有操作系統和管理數據的專門軟體。該階段管理的數據不保存、由應用程序管理數據、數據不共享和數據不具有獨立性等特點。
1.2 文件系統階段
20 世紀 50 年代後期到 60 年代中期,隨著計算機硬體和軟體的發展,磁碟、磁鼓等直接存取設備開始普及,這一時期的數據處理系統是把計算機中的數據組織成相互獨立的被命名的數據文件,並可按文件的名字來進行訪問,對文件中的記錄進行存取的數據管理技術。數據可以長期保存在計算機外存上,可以對數據進行反復處理,並支持文件的查詢、修改、插入和刪除等操作。其數據面向特定的應用程序,因此,數據共享性、獨立性差,且冗餘度大,管理和維護的代價也很大。
1.3資料庫階段
20 世紀 60 年代後期以來,計算機性能得到進一步提高,更重要的是出現了大容量磁碟,存儲容量大大增加且價格下降。在此基礎上,才有可能克服文件系統管理數據時的不足,而滿足和解決實際應用中多個用戶、多個應用程序共享數據的要求,從而使數據能為盡可能多的應用程序服務,這就出現了資料庫這樣的數據管理技術。資料庫的特點是數據不再只針對某一個特定的應用,而是面向全組織,具有整體的結構性,共享性高,冗餘度減小,具有一定的程序與數據之間的獨立性,並且對數據進行統一的控制。
2大數據時代的數據管理技術
大數據(big data),或稱巨量資料,指的是所涉及的資料量規模巨大到無法透過目前主流軟體工具,在合理時間內達到擷取、管理、處理、並整理成為幫助企業經營決策更積極目的的資訊。大數據有 3 個 V,一是大量化(Volume),數據量是持續快速增加的,從 TB級別,躍升到 PB 級別;二是多樣化(Variety),數據類型多樣化,結構化數據已被視為小菜一碟,圖片、音頻、視頻等非結構化數據正以傳統結構化數據增長的兩倍速快速創建;三是快速化 (Velocity),數據生成速度快,也就需要快速的處理能力,因此,產生了「1 秒定律」,就是說一般要在秒級時間范圍內給出分析結果,時間太長就失去價值了,這個速度要求是大數據處理技術和傳統的數據挖掘技術最大的區別。
2.1 關系型資料庫(RDBMS)
20 世紀 70 年代初,IBM 工程師 Codd 發表了著名的論文「A Relational Model of Data for Large Shared DataBanks」,標志著關系資料庫時代來臨。關系資料庫的理論基礎是關系模型,是藉助於集合代數等數學概念和方法來處理資料庫中的數據,現實世界中的實體以及實體之間的聯系非常容易用關系模型來表示。容易理解的模型、容易掌握的查詢語言、高效的優化器、成熟的技術和產品,使得關系資料庫占據了資料庫市場的絕對的統治地位。隨著互聯網 web2.0 網站的興起,半結構化和非結構化數據的大量涌現,傳統的關系資料庫在應付 web2.0 網站特別是超大規模和高並發的 SNS(全稱 Social Networking Services,即社會性網路服務) 類型的 web2.0 純動態網站已經顯得力不從心,暴露了很多難以克服的問題。
2.2 noSQL資料庫
順應時代發展的需要產生了 noSQL資料庫技術,其主要特點是採用與關系模型不同的數據模型,當前熱門的 noSQL資料庫系統可以說是蓬勃發展、異軍突起,很多公司都熱情追捧之,如:由 Google 公司提出的 Big Table 和 MapRece 以及 IBM 公司提出的 Lotus Notes 等。不管是那個公司的 noSQL資料庫都圍繞著大數據的 3 個 V,目的就是解決大數據的 3個 V 問題。因此,在設計 noSQL 時往往考慮以下幾個原則,首先,採用橫向擴展的方式,通過並行處理技術對數據進行劃分並進行並行處理,以獲得高速的讀寫速度;其次,解決數據類型從以結構化數據為主轉向結構化、半結構化、非結構化三者的融合的問題;再次,放鬆對數據的 ACID 一致性約束,允許數據暫時出現不一致的情況,接受最終一致性;最後,對各個分區數據進行備份(一般是 3 份),應對節點失敗的狀況等。
對數據的應用可以分為分析型應用和操作型應用,分析型應用主要是指對大量數據進行分類、聚集、匯總,最後獲得數據量相對小的分析結果;操作型應用主要是指對數據進行增加、刪除、修改和查詢以及簡單的匯總操作,涉及的數據量一般比較少,事務執行時間一般比較短。目前資料庫可分為關系資料庫和 noSQL資料庫,根據數據應用的要求,再結合目前資料庫的種類,所以目前資料庫管理方式主要有以下 4 類。
(1)面向操作型的關系資料庫技術。
首先,傳統資料庫廠商提供的基於行存儲的關系資料庫系統,如 DB2、Oracle、SQL Server 等,以其高度的一致性、精確性、系統可恢復性,在事務處理方面仍然是核心引擎。其次,面向實時計算的內存資料庫系統,如 Hana、Timesten、Altibase 等通過把對數據並發控制、查詢和恢復等操作控制在內存內部進行,所以獲得了非常高的性能,在很多特定領域如電信、證券、網管等得到普遍應用。另外,以 VoltDB、Clustrix 和NuoDB 為代表的 new SQL 宣稱能夠在保持 ACDI 特性的同時提高了事務處理性能 50 倍 ~60 倍。
(2)面向分析型的關系資料庫技術。
首先,TeraData 是數據倉庫領域的領頭羊,Teradata 在整體上是按 Shared Nothing 架構體系進行組織的,定位就是大型數據倉庫系統,支持較高的擴展性。其次,面向分析型應用,列存儲資料庫的研究形成了另一個重要的潮流。列存儲資料庫以其高效的壓縮、更高的 I/O 效率等特點,在分析型應用領域獲得了比行存儲資料庫高得多的性能。如:MonetDB 和 Vertica是一個典型的基於列存儲技術的資料庫系統。
(3)面向操作型的 noSQL 技術。
有些操作型應用不受 ACID 高度一致性約束,但對大數據處理需要處理的數據量非常大,對速度性能要求也非常高,這樣就必須依靠大規模集群的並行處理能力來實現數據處理,弱一致性或最終一致性就可以了。這時,操作型 noSQL資料庫的優點就可以發揮的淋漓盡致了。如,Hbase 一天就可以有超過 200 億個到達硬碟的讀寫操作,實現對大數據的處理。另外,noSQL資料庫是一個數據模型靈活、支持多樣數據類型,如對圖數據建模、存儲和分析,其性能、擴展性是關系資料庫無法比擬的。
(4)面向分析型的 noSQL 技術。
面向分析型應用的 noSQL 技術主要依賴於Hadoop 分布式計算平台,Hadoop 是一個分布式計算平台,以 HDFS 和 Map Rece 為用戶提供系統底層細節透明的分布式基礎架構。《Hadoop 經典實踐染技巧》傳統的資料庫廠商 Microsoft,Oracle,SAS,IBM 等紛紛轉向 Hadoop 的研究,如微軟公司關閉 Dryad 系統,全力投入 Map Rece 的研發,Oracle 在 2011 年下半年發布 Big Plan 戰略計劃,全面進軍大數據處理領域,IBM 則早已捷足先登「,沃森(Watson)」計算機就是基於 Hadoop 技術開發的產物,同時 IBM 發布了 BigInsights 計劃,基於 Hadoop,Netezza 和 SPSS(統計分析、數據挖掘軟體)等技術和產品構建大數據分析處理的技術框架。同時也涌現出一批新公司來研究Hadoop 技術,如 Cloudera、MapRKarmashpere 等。
3數據管理方式的展望
通過以上分析,可以看出關系資料庫的 ACID 強調數據一致性通常指關聯數據之間的邏輯關系是否正確和完整,而對於很多互聯網應用來說,對這一致性和隔離性的要求可以降低,而可用性的要求則更為明顯,此時就可以採用 noSQL 的兩種弱一致性的理論 BASE 和 CAP.關系資料庫和 noSQL資料庫並不是想到對立的矛盾體,而是可以相互補充的,根據不同需求使用不同的技術,甚至二者可以共同存在,互不影響。最近幾年,以 Spanner 為代表新型資料庫的出現,給資料庫領域注入新鮮血液,這就是融合了一致性和可用性的 newSQL,這種新型思維方式或許會是未來大數據處理方式的發展方向。
4 結束語
隨著雲計算、物聯網等的發展,數據呈現爆炸式的增長,人們正被數據洪流所包圍,大數據的時代已經到來。正確利用大數據給人們的生活帶來了極大的便利,但與此同時也給傳統的數據管理方式帶來了極大的挑戰。

2. 大數據的預處理過程包括

大數據採集過程中通常有一個或多個數據源,這些數據源包括同構或異構的資料庫、文件系統、服務介面等,易受到雜訊數據、數據值缺失、數據沖突等影響,因此需首先對收集到的大數據集合進行預處理,以保證大數據分析與預測結果的准確性與價值性。

大數據的預處理環節主要包括數據清理、數據集成、數據歸約與數據轉換等內容,可以大大提高大數據的總體質量,是大數據過程質量的體現。 數據清理技術包括對數據的不一致檢測、雜訊數據的識別、數據過濾與修正等方面,有利於提高大數據的一致性、准確性、真實性和可用性等方面的質量;

數據集成則是將多個數據源的數據進行集成,從而形成集中、統一的資料庫、數據立方體等,這一過程有利於提高大數據的完整性、一致性、安全性和可用性等方面質量;

數據歸約是在不損害分析結果准確性的前提下降低數據集規模,使之簡化,包括維歸約、數據歸約、數據抽樣等技術,這一過程有利於提高大數據的價值密度,即提高大數據存儲的價值性。

數據轉換處理包括基於規則或元數據的轉換、基於模型與學習的轉換等技術,可通過轉換實現數據統一,這一過程有利於提高大數據的一致性和可用性。

總之,數據預處理環節有利於提高大數據的一致性、准確性、真實性、可用性、完整性、安全性和價值性等方面質量,而大數據預處理中的相關技術是影響大數據過程質量的關鍵因素

3. 什麼是數據一致性和完整性,如何保證

數據一致性通常指關聯數據之間的邏輯關系是否正確和完整.而數據存儲的一致性模型則可以認為是存儲系統和數據使用者之間的一種約定.如果使用者遵循這種約定,則可以得到系統所承諾的訪問結果常用的一致性模型有:
a、嚴格一致性(linearizability, strict/atomic Consistency):讀出的數據始終為最近寫入的數據.這種一致性只有全局時鍾存在時才有可能,在分布式網路環境不可能實現.
b、順序一致性(sequential consistency):所有使用者以同樣的順序看到對同一數據的操作,但是該順序不一定是實時的.
c、因果一致性(causal consistency):只有存在因果關系的寫操作才要求所有使用者以相同的次序看到,對於無因果關系的寫入則並行進行,無次序保證.因果一致性可以看做對順序一致性性能的一種優化,但在實現時必須建立與維護因果依賴圖,是相當困難的.
d、管道一致性(PRAM/FIFO consistency):在因果一致性模型上的進一步弱化,要求由某一個使用者完成的寫操作可以被其他所有的使用者按照順序的感知到,而從不同使用者中來的寫操作則無需保證順序,就像一個一個的管道一樣. 相對來說比較容易實現.
e、弱一致性(weak consistency):只要求對共享數據結構的訪問保證順序一致性.對於同步變數的操作具有順序一致性,是全局可見的,且只有當沒有寫操作等待處理時才可進行,以保證對於臨界區域的訪問順序進行.在同步時點,所有使用者可以看到相同的數據.
f、 釋放一致性(release consistency):弱一致性無法區分使用者是要進入臨界區還是要出臨界區, 釋放一致性使用兩個不同的操作語句進行了區分.需要寫入時使用者acquire該對象,寫完後release,acquire-release之間形成了一個臨界區,提供 釋放一致性也就意味著當release操作發生後,所有使用者應該可以看到該操作.
g、最終一致性(eventual consistency):當沒有新更新的情況下,更新最終會通過網路傳播到所有副本點,所有副本點最終會一致,也就是說使用者在最終某個時間點前的中間過程中無法保證看到的是新寫入的數據.可以採用最終一致性模型有一個關鍵要求:讀出陳舊數據是可以接受的.
h、delta consistency:系統會在delta時間內達到一致.這段時間內會存在一個不一致的窗口,該窗口可能是因為log shipping的過程導致.這是書上的原話.我也搞不很清楚.資料庫完整性(Database Integrity)是指資料庫中數據的正確性和相容性.資料庫完整性由各種各樣的完整性約束來保證,因此可以說資料庫完整性設計就是資料庫完整性約束的設計.包括實體完整性.域完整性.參照完整性.用戶定義完整性.可以主鍵.check約束.外鍵來一一實現.這個使用較多.

4. 大數據開發工程師Hadoop(HDFS是如何保證數據可靠性的)

HDFS是如何保證數據可靠性的?

(1)安全模式

① HDFS剛啟動時,NameNode進入安全模式,處於安全模式的NameNode不能做任何的文件操作,甚至內部的副本創建也是不允許的,NameNode這時需要和各個DataNode進行通信,獲得DataNode存儲的數據塊信息,並對數據塊信息進行檢查,只有通過了NameNode的檢查,一個數據塊才被認為是安全的。當認為安全的數據塊所佔比例達到了某個閾值,NameNode才會開始啟動;

(2)SecondaryNamenode備份機制

① 在Hadoop中使用SecondaryNameNode來備份NameNode的元數據,以防止在NameNode宕機的時候,能從SecondaryNameNode中恢復出NameNode上的元數據;

② NameNode中保存了整個文件系統的元數據,而SecondaryNameNode的作用就是周期性保存NameNode的元數據。元數據中包括FSImage鏡像文件數據和EditLog編輯日誌。FSImage相當於HDFS的檢查點,NameNode啟動時候會讀取FSImage的內容到內存,並將其與EditLog日誌中的所有修改信息合並生成新的FSImage。在NameNode運行過程中,所有關於HDFS的修改都將寫入EditLog日誌文件中。這樣,如果NameNode宕機,可以通過SecondaryNameNode中保存的FSImage和EditLog數據恢復出NameNode最近的狀態,盡量減少數據的損失;

(3)心跳機制和副本重新創建

① 為了保證NameNode和各個DataNode的聯系,HDFS採用了心跳機制。NameNode周期性的向各個DataNode發送心跳包,而收到心跳包的DataNode要進行回復。因為心跳包是定時發送的,所以NameNode就把要執行的命令也通過心跳包發送給DataNode,而DataNode收到心跳包,一方面要回復NameNode,另一方面就要開始應用數據的傳輸;

② 如果檢測到DataNode失效,NameNode之前保存在這個DataNode上的數據就變成不可用數據。如果有的副本存儲在失效的DataNode上,那麼需要重新創建這個副本,放到另外可用的地方去;

(4)數據一致性

① 一般來講,DataNode與應用交互的大部分情況都是通過網路進行的,而網路數據傳輸帶來的一大問題就是數據是否原樣到達。為了保證數據的一致性,HDFS採用了數據校驗和(checkSum)機制。創建文件時,HDFS會為這個文件生成一個校驗和,校驗和文件和文件本身保存在同一空間中。傳輸數據時會將數據與校驗和數據一起傳輸,應用收到數據後可以進行校驗,如果兩個校驗的結果不同,則文件出錯了,這個數據塊就變成無效的。如果判定為無效,則需要從其他DataNode上讀取副本數據;


(每日1小題,進步1點點)

5. 什麼是網路大數據

大數據應用程序需要處理大規模信息,而且在出於彈性的考慮將數據復制到多個位置時,信息的規模變得越來越大。但是,大數據的最重要屬性並不在於它的規模,而在於它將大作業分割成許多小作業的能力,它能夠將處理一個任務的資源分散到多個位置變為並行處理。
關鍵因素
1.網路彈性與大數據應用程序
如果有一組分布式資源必須通過互聯網路進行協調時,可用性就變得至關重要。如果網路出現故障,那麼造成的後果是出現不連續的壞計算資源與數據集。
2.解決大數據應用中的網路擁塞問題
大數據應用程序不僅僅是規模大,而且還有一種我稱為突發性的特性。當一個作業啟動之後,數據就開始流轉。在高流量時間段里,擁塞是一個嚴重的問題。然而,擁塞可能引起更多的隊列延遲時間和丟包率。此外,擁塞還可能觸發重轉,這可能讓本身負載繁重的網路無法承受。因此,網路架構設計時應該盡可能減少擁塞點。按照可用性的設計標准,減少擁塞要求網路具有較高的路徑多樣性,這樣才能允許網路將流量分散到大量不同的路徑上。
3.大數據中網路一致性要比遲延性更重要
實際上,大多數大數據應用程序對網路延遲並不敏感。如果計算時間的數量級為幾秒鍾或幾分鍾,那麼即使網路上出現較大延遲也是無所謂的——數量級大概為幾千毫秒。然而,大數據應用程序一般具有較高的同步性。這意味著作業是並行執行的,而各個作業之間較大的性能差異可能會引發應用程序的故障。因此,網路不僅要足夠高效,而且要在空間和時間上具有一致的性能。
4.現在就要准備大數據未來的可伸縮性
可能讓人有點意外的是,大多數大數據集群實際上並不大。
可伸縮性並不在於現在集群現在有多大規模,而是說如何平衡地擴展支持未來的部署規模。如果基礎架構設計現在只適合小規模部署,那麼這個架構將如何隨著節點數量的增加而不斷進化?在將來某一個時刻,它是否需要完全重新設計架構?這個架構是否需要一些近程數據和數據位置信息?關鍵是要記住,可伸縮性並不在於絕對規模,而是更關注於實現足夠規模解決方案的路徑。
5.通過網路分割來處理大數據
網路分割是創建大數據環境的重要條件。在最簡單的形式上,分割可能意味著要將大數據流量與其他網路流量分離,這樣應用程序產生的突發流量才不會影響其他關鍵任務工作負載。除此之外,我們還需要處理運行多個作業的多個租戶,以滿足性能、合規性和/或審計的要求。這些工作要求在一些場合中實現網路負載的邏輯分離,一些場合則還要實現它們的物理分離。架構師需要同時在兩個方面上進行規劃,但是初始需求最好統一在一起。
6.大數據網路的應用感知能力
雖然大數據的概念與Hadoop部署關系密切,但是它已經成為集群環境的代名詞。根據不同應用程序的特點,這些集群環境的需求各不同相同。有一些可能對對帶寬要求高,而有一些則可能對延遲很敏感。總之,一個網路要支持多應用程序和多租戶,它就必須要能夠區分自己的工作負載,並且要能夠正確處理各個工作負載。

6. 如何進行大數據處理

大數據處理之一:收集


大數據的收集是指運用多個資料庫來接收發自客戶端(Web、App或許感測器方式等)的 數據,而且用戶能夠經過這些資料庫來進行簡略的查詢和處理作業,在大數據的收集進程中,其主要特色和應戰是並發數高,因為同時有可能會有成千上萬的用戶 來進行拜訪和操作


大數據處理之二:導入/預處理


雖然收集端本身會有許多資料庫,但是假如要對這些海量數據進行有效的剖析,還是應該將這 些來自前端的數據導入到一個集中的大型分布式資料庫,或許分布式存儲集群,而且能夠在導入基礎上做一些簡略的清洗和預處理作業。導入與預處理進程的特色和應戰主要是導入的數據量大,每秒鍾的導入量經常會到達百兆,甚至千兆等級。


大數據處理之三:核算/剖析


核算與剖析主要運用分布式資料庫,或許分布式核算集群來對存儲於其內的海量數據進行普通 的剖析和分類匯總等,以滿足大多數常見的剖析需求,在這方面,一些實時性需求會用到EMC的GreenPlum、Oracle的Exadata,以及根據 MySQL的列式存儲Infobright等,而一些批處理,或許根據半結構化數據的需求能夠運用Hadoop。 核算與剖析這部分的主要特色和應戰是剖析觸及的數據量大,其對系統資源,特別是I/O會有極大的佔用。


大數據處理之四:發掘


主要是在現有數據上面進行根據各種演算法的核算,然後起到預測(Predict)的作用,然後實現一些高等級數據剖析的需求。主要運用的工具有Hadoop的Mahout等。該進程的特色和應戰主要是用於發掘的演算法很復雜,並 且核算觸及的數據量和核算量都很大,常用數據發掘演算法都以單線程為主。


關於如何進行大數據處理,青藤小編就和您分享到這里了。如果您對大數據工程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關於數據分析師、大數據工程師的技巧及素材等內容,可以點擊本站的其他文章進行學習。

閱讀全文

與大數據的一致性相關的資料

熱點內容
國產電腦字體庫在哪個文件夾 瀏覽:322
AQQ網路語是什麼意思 瀏覽:715
蘋果版本虎虎直播下載 瀏覽:348
電腦日期和時間找不到文件 瀏覽:204
360手機自動同步文件夾 瀏覽:12
找不到c盤某某文件彈窗 瀏覽:256
蘋果手機文件存儲icloud 瀏覽:503
微信備份找不到文件 瀏覽:168
如何使用網路運動 瀏覽:757
文件夾選項找不到有幾種辦法 瀏覽:126
數據線放久了黏黏的怎麼除 瀏覽:179
更改文件夾名稱提示找不到指定文件 瀏覽:425
哪個app看電影最全免費 瀏覽:868
數控機床手動編程怎麼用 瀏覽:276
如何關閉文件共享埠 瀏覽:921
衛生健康文件有哪些 瀏覽:568
單個應用怎麼關閉數據 瀏覽:653
韓版6sa1688網路支持 瀏覽:716
java中如何新建數組 瀏覽:302
電腦打開文件的軟體 瀏覽:369

友情鏈接