當前位置:首頁 » 存儲配置 » 海量數據存儲演算法

海量數據存儲演算法

發布時間: 2023-07-03 08:44:45

❶ 雲計算的海量數據挖掘工作是怎樣實現的

雲計算屬於新興技術領域,群英雲計算轉一篇關於問題的學術報告吧。對您應該有所幫助。

1引言

目前,人們正處於一個「無處不網、無時不網,人人上網、時時在線」的時代,圖靈獎獲得者吉姆·格雷(Jim Gray)認為,網路環境下每18個月產生的數據量等於過去幾千年的數據量之和。目前互聯網的數據具有海量增長、用戶廣泛、動態變化等特徵。2010年,QQ同時在線的用戶超過1億人,淘寶一年交易次數比上年增長150%,視頻服務Animoto在3天內通過Amazon將其服務能力迅速擴展至75萬用戶。

數據挖掘能夠發現隱含在大規模數據中的知識,提高信息服務的質量。如伊朗事件中twitter快速傳播假消息的識別、Amazon和淘寶網中商品關聯關系分析,以及優酷網中視頻個性化推薦等。海量數據挖掘在國家安全、國民經濟和現代服務業中具有廣泛應用,有助於提升網路環境下信息服務的質量,實現以人為本的信息服務。

從數據挖掘技術的發展歷史看,隨著互聯網的蓬勃發展,數據的規模越來越大,從KB級發展到TB甚至PB級海量數據;數據挖掘的對象也變得越來越復雜,從資料庫、到多媒體數據和復雜社會網路;數據挖掘的需求也從分類、聚類和關聯到復雜的演化和預測分析;挖掘過程中的交互方式從單機的人機交互發展到現在社會網路群體的交互。這種發展給數據挖掘帶來了巨大的挑戰:對於網路環境下產生的TB級和PB級的復雜數據,需要有高效的海量數據挖掘演算法;網路環境下大眾的廣泛參與,需要在數據挖掘演算法中能夠融入群體智慧;同時社會網路的迅速發展使得信息服務的個性化成為必然,要求能夠滿足即時組合的個性化挖掘服務。

雲計算是一種基於互聯網的、大眾參與的計算模式,其計算資源(包括計算能力、存儲能力、交互能力等)是動態、可伸縮、被虛擬化的,並以服務的方式提供 [1] 。具體表現在:雲計算的動態和可伸縮的計算能力為高效海量數據挖掘帶來可能性;雲計算環境下大眾參與的群體智能為研究集群體智慧的新的數據挖掘方法研究提供了環境;雲計算的服務化特徵使面向大眾的數據挖掘成為可能。同時,雲計算發展也離不開數據挖掘的支持,以搜索為例,基於雲計算的搜索包括網頁存儲、搜索處理和前端交互三大部分。數據挖掘在這幾部分中都有廣泛應用,例如網頁存儲中網頁去重、搜索處理中網頁排序和前端交互中的查詢建議,其中每部分都需要數據挖掘技術的支持。

因此,雲計算為海量和復雜數據對象的數據挖掘提供了基礎設施,為網路環境下面向大眾的數據挖掘服務帶來了機遇,同時也為數據挖掘研究提出了新的挑戰性課題。

下面將對並行編程模型、基於並行編程模型高效海量數據挖掘演算法,以及基於雲計算的海量數據挖掘服務相關研究進行綜述。

2並行編程模型相關方法

為了使用戶能夠通過簡單的開發來方便地達到並行計算的效果,研究人員提出了一系列的並行計算模型。並行計算模型在用戶需求和底層的硬體系統之間搭建橋梁使得並行演算法的表示變得更加直觀,對大規模數據的處理更加便捷。根據用戶使用硬體環境的不同,並行編程模型又可以分為在多核機器、GPU計算、大型計算機以及計算機集群上的多種類型。目前比較常用的並行編程介面和模型包括:

pThread介面[2]。pThread是在類Unix系統上進行多線程編程的通用API,為用戶提供了一系列對線程進行創建、管理和各類操作的函數,使用戶能夠方便地編寫多線程程序。

MPI模型[3]。MPI的全稱為消息傳遞介面(Message Passing Interface),它為用戶提供了一系列的介面,使用戶利用消息傳遞的方式來建立進程間的通信機制,從而方便地對各種演算法進行並行實現。

MapRece模型[4]。MapRece模型是由谷歌公司提出的並行編程框架,它首先為用戶提供分布式的文件系統,使用戶能方便地處理大規模數據;然後將所有的程序運算抽象為Map和Rece兩個基本操作,在Map階段模型將問題分解為更小規模的問題,並在集群的不同節點上執行,在Rece階段將結果歸並匯總。MapRece是一個簡單,但是非常有效的並行編程模型。

Pregel模型[5]。Pregel同樣是由谷歌公司提出的專門針對圖演算法的編程模型,能夠為大規模數據的圖演算法提供並行支持。一個典型的Pregel計算過程將在圖上進行一系列的超級步驟(SuperSteps),在每個超級步驟中,所有頂點的計算都並行地執行用戶定義的同一個函數,並通過一個「投票」機制來決定程序是否停止。

CUDA模型①。CUDA是由NVIDIA公司提出的一個基於GPU的並行計算模型。由於GPU在設計需求上與普通CPU不同,GPU通常被設計為能較慢地執行許多並發的線程,而不是較快的連續執行多個線程,這使得GPU在並行計算上有先天的優勢。CUDA為用戶提供了利用GPU計算的各種介面,使程序員能夠像在普通電腦上進行CPU編程那樣進行GPU程序的編寫。

此外還有OpenMP、PVM、OpenCL等各種並行編程模型和方法。這些並行編程和方法一般都提供了主流編程語言的實現,從而使得用戶能根據自身編程習慣來選用。

另一方面,隨著雲計算的不斷推廣,還出現了各種商用的並行計算/雲計算平台,為用戶提供並行計算服務。這其中比較著名的包括微軟的Azure平台、Amazon公司的EC2平台、IBM公司的藍雲平台、谷歌公司的Google App Engine等。各大IT公司也紛紛開發自己的並行計算模型/框架作為自身技術服務的基本平台,這使得並行計算技術得到了更加快速的發展。

3基於並行編程模型高效海量數據挖掘演算法研究

為了實現海量數據上的數據挖掘,大量分布式並行數據挖掘演算法被提出。Bhari et al[6]整理了一個十分詳盡的並行數據挖掘演算法文獻目錄,包含了關聯規則學習、分類、聚類、流數據挖掘四大類分布式數據挖掘演算法,同時還包括分布式系統、隱私保護等相關的研究工作。

MapRece並行編程模型具有強大的處理大規模數據的能力,因而是海量數據挖掘的理想編程平台。數據挖掘演算法通常需要遍歷訓練數據獲得相關的統計信息,用於求解或優化模型參數。在大規模數據上進行頻繁的數據訪問需要耗費大量運算時間。為了提高演算法效率,斯坦福大學Chu et al[7]提出了一種適用於大量機器學習演算法的通用並行編程方法。通過對經典的機器學習演算法進行分析可以發現,演算法學習過程中的運算都能轉化為若干在訓練數據集上的求和操作;求和操作可以獨立地在不同數據子集上進行,因此很容易在MapRece編程平台上實現並行化執行。將大規模的數據集分割為若乾子集分配給多個Mapper節點,在Mapper節點上分別執行各種求和操作得到中間結果,最後通過Rece節點將求和結果合並,實現學習演算法的並行執行。在該框架下,Chu et al實現了十種經典的數據挖掘演算法,包括線性回歸、樸素貝葉斯、神經網路、主成分分析和支持向量機等,相關成果在NIPS 2006會議上發表。

Ranger et al[8]提出了一個基於MapRece的應用程序編程介面Phoenix,支持多核和多處理器系統環境下的並行程序設計。Phoenix能夠進行緩存管理、錯誤恢復和並發管理。他們使用Phoenix實現了K-Means、主成分分析和線性回歸三種數據挖掘演算法。

Gillick et al[9]對單程學習(Single-pass)、迭代學習(Iterative Learning)和基於查詢的學習(Query-based Learning)三類機器學習演算法在MapRece框架下的性能分別做了評測。他們對並行學習演算法涉及到的如何在計算節點之間的共享數據、如何處理分布式存儲數據等問題進行了研究。

Mahout①是APS(Apache Software Foundation)旗下的一個開源數據挖掘項目,通過使用Apache Hadoop庫,可以實現大規模數據上的並行數據挖掘,包括分類、聚類、頻繁模式挖掘、回歸、降維等演算法,目前已經發布了四個版本。

4基於雲計算的海量數據挖掘服務研究

雲計算除了給用戶提供通用的並行編程模型和大規模數據處理能力之外,另一個重要的特點是為用戶提供開放的計算服務平台。在數據挖掘方向,現在也有一系列的系統被開發出來,面向公眾提供數據挖掘服務雲計算平台。

Talia et al[10]提出可以從四個層次提供雲計算數據挖掘服務:底層為組成數據挖掘演算法的基本步驟;第二層為單獨的數據挖掘服務,例如分類、聚類等;第三層為分布式的數據挖掘模式,例如並行分類、聚合式機器學習等;第四層為之前三層元素構成的完整的數據挖掘應用。在此設計基礎上,他們設計了基於雲計算的數據挖掘開放服務框架,並開發了一系列的數據挖掘服務系統,例如Weka4WS、Knowledge Grid、Mobile Data Mining Services、Mining@home等,用戶可以利用圖形界面定義自己的數據挖掘工作流,然後在平台上執行。

PDMiner[11]是由中國科學院計算技術研究所開發的基於Hadoop的並行分布式數據挖掘平台,該系統現在已經用於中國移動通信企業TB級實際數據的挖掘。PDMiner提供了一系列並行挖掘演算法和ETL操作組件,開發的ETL演算法絕大多數達到了線性加速比,同時具有很好的容錯性。PDMiner的開放式架構可以使用戶將演算法組件經過簡單配置方便地封裝載入到系統中。

此外,商業智能領域的各大公司也提供面向企業的大規模數據挖掘服務,例如微策略、IBM、Oracle等公司都擁有自己的基於雲計算的數據挖掘服務平台。

5總結和展望

通過雲計算的海量數據存儲和分布計算,為雲計算環境下的海量數據挖掘提供了新方法和手段,有效解決了海量數據挖掘的分布存儲和高效計算問題。開展基於雲計算特點的數據挖掘方法的研究,可以為更多、更復雜的海量數據挖掘問題提供新的理論與支撐工具。而作為傳統數據挖掘向雲計算的延伸和豐富,基於雲計算的海量數據挖掘將推動互聯網先進技術成果服務於大眾,是促進信息資源的深度分享和可持續利用的新方法、新途徑。

❷ 海量RS232/485串口數據採集存儲(備份)解決方案

RS232/485串口轉SD卡數據存儲器是一種超大容量的數據存儲設備。採用嵌入式系統控制晶元,將串口RS232/485輸入的數據透明存儲在SD卡中。該數據存儲器採用模塊化設計,不需要用戶對現有設備進行改造,實現數據實時存儲。可內置鋰電池,獨立工作於工業現場,將採集到的重要數據進行備份或移動存儲。為眾多系統集成商、自動化公司和研究所採用,是一種具有極高性價比、穩定可靠的數據存儲產品
採用工業級ARM系列32位高性能嵌入式處理器,速度更快,更穩定;採用工業級ARM系列32位高性能嵌入式處理器,速度更快,更穩定;串口數據包全透明1:1真實存儲 ;串口數據100%可靠存儲;採用獨特的動態內存分配演算法,以此管理文件系統對內存的消耗和釋放,提高數據的傳輸效率,避免數據丟失;數據存儲文件自動創建文件名,自動編號,不重復覆蓋;文件夾名稱自定義,方便用戶管理;支持定時創建數據存儲文件(默認24個小時創建一個新的數據存儲文件)進行存儲,有利於對數據進行更有效的管理,更好的分析處理;具有USB拷貝數據功能,U盤式管理,高速USB2.0介面;更多資料網路,樂誠科技,攜帶型數據存儲器。

❸ 海量空間數據存儲

(一)空間數據存儲技術

隨著地理信息系統的發展,空間資料庫技術也得到了很大的發展,並出現了很多新的空間資料庫技術(黃釗等,2003),其中應用最廣的就是用關系資料庫管理系統(RDBMS)來管理空間數據。

用關系資料庫管理系統來管理空間數據,主要解決存儲在關系資料庫中的空間數據與應用程序之間的數據介面問題,即空間資料庫引擎(SpatialDatabase Engine)(熊麗華等,2004)。更確切地說,空間資料庫技術是解決空間數據對象中幾何屬性在關系資料庫中的存取問題,其主要任務是:

(1)用關系資料庫存儲管理空間數據;

(2)從資料庫中讀取空間數據,並轉換為GIS應用程序能夠接收和使用的格式;

(3)將GIS應用程序中的空間數據導入資料庫,交給關系資料庫管理。

空間資料庫中數據存儲主要有三種模式:拓撲關系數據存儲模式、Oracle Spatial模式和ArcSDE模式。拓撲關系數據存儲模式將空間數據存在文件中,而將屬性數據存在資料庫系統中,二者以一個關鍵字相連。這樣分離存儲的方式由於存在數據的管理和維護困難、數據訪問速度慢、多用戶數據並發共享沖突等問題而不適用於大型空間資料庫的建設。而OracleSpatial實際上只是在原來的資料庫模型上進行了空間數據模型的擴展,實現的是「點、線、面」等簡單要素的存儲和檢索,所以它並不能存儲數據之間復雜的拓撲關系,也不能建立一個空間幾何網路。ArcSDE解決了這些問題,並利用空間索引機制來提高查詢速度,利用長事務和版本機制來實現多用戶同時操縱同一類型數據,利用特殊的表結構來實現空間數據和屬性數據的無縫集成等(熊麗華等,2004)。

ArcSDE是ESRI公司開發的一個中間件產品,所謂中間件是一個軟體,它允許應用元素通過網路連接進行互操作,屏蔽其下的通訊協議、系統結構、操作系統、資料庫和其他應用服務。中間件位於客戶機/伺服器的操作系統之上,管理計算資源和網路通訊,並營造出一個相對穩定的高層應用環境,使開發人員可以集中精力於系統的上層開發,而不用過多考慮系統分布式環境下的移植性和通訊能力。因此,中間件能無縫地連入應用開發環境中,應用程序可以很容易地定位和共享中間件提供的應用邏輯和數據,易於系統集成。在分布式的網路環境下,客戶端的應用程序如果要訪問網路上某個伺服器的信息,而伺服器可能運行在不同於客戶端的操作系統和資料庫系統中。此時,客戶機的應用程序中負責尋找數據的部分只需要訪問一個數據訪問中間件,由該中間件完成網路中數據或服務的查找,然後將查找的信息返回給客戶端(萬定生等,2003)。因此,本系統實現空間資料庫存儲的基本思想就是利用ArcSDE實現各類空間數據的存儲。

目前,空間數據存儲技術已比較成熟,出現了許多類似ArcSDE功能的中間件產品,這些軟體基本上都能實現空間數據的資料庫存儲與管理,但對於海量空間數據的存儲,各種軟體性能差別較大。隨著數據量的增長,計算機在分析處理上會產生很多問題,比如數據不可能一次完全被讀入計算機的內存中進行處理。單純依賴於硬體技術,並不能滿足持續增長的數據的處理要求。因此需要在軟體上找到處理海量數據的策略,並最終通過軟硬體的結合完成對海量數據的處理。在海量數據存儲問題上,許多專家從不同側面進行過研究,Lindstrom在地形簡化中使用了外存模型(Out-of-core)技術;鍾正採用了基於數據分塊、動態調用的策略;汪國平等人在研究使用高速網路進行三維海量地形數據的實時交互瀏覽中,採用了分塊、多解析度模板建立模型等方法。這些技術、方法已經在各自系統上進行了研究和實現。本系統採用的ArcSDE軟體基本上也是採用分塊模型的方法,具體存儲和操作不需要用戶過多了解,已經由ArcSDE軟體實現。因此,對海量數據的存儲管理,更需要從數據的組織方式等方面進行設計。塔里木河流域生態環境動態監測系統採集了大量的遙感影像、正射影像等柵格結構的數據,這些數據具有很大的數據量,為適應流域空間基礎設施的管理需要,採取一種新的方式來管理、分發這些海量數據以適應各部門的快速瀏覽和管理需要。

(二)影像金字塔結構

影像資料庫的組織是影像資料庫效率的關鍵,為了獲得高效率的存取速度,在數據的組織上使用了金字塔數據結構和網格分塊數據結構。該技術主導思想如下:

(1)將資料庫中使用到的紋理處理成為大小一致的紋理塊;

(2)為每塊紋理生成5個細節等級的紋理,分別為0、1、2、3、4,其中1級紋理通過0級紋理1/4壓縮得到,2級紋理通過1級紋理1/4壓縮得到,…,以此類推;

(3)在顯示每個塊數據之前,根據顯示比例的大小,並以此決定該使用那一級的紋理;

(4)在內存中建立紋理緩沖池,使用LRU演算法進行紋理塊的調度,確保使用頻率高的紋理調度次數盡可能少。

(三)影像數據壓縮

影像數據壓縮有無損壓縮和有損壓縮兩個方法,具體採取哪種壓縮方法需根據具體情況確定。對於像元值很重要的數據,如分類數據、分析數據等採用無損壓縮(即LZ77演算法),否則採用有損壓縮(即JPEG演算法)。通過對影像數據的壓縮,一方面可以節約存儲空間,另一方面可以加快影像的讀取和顯示速度。影像數據的壓縮一般與構建金字塔同時進行,在構建影像金字塔過程中自動完成數據的壓縮。

❹ 海量數據存儲結構和演算法

下面的存儲過程不僅含有分頁方案,還會根據頁面傳來的參數來確定是否進行數據總數統計。

-- 獲取指定頁的數據

CREATE PROCEDURE pagination3

@tblName varchar(255), -- 表名

@strGetFields varchar(1000) = '*', -- 需要返回的列

@fldName varchar(255)='', -- 排序的欄位名

@PageSize int = 10, -- 頁尺寸

@PageIndex int = 1, -- 頁碼

@doCount bit = 0, -- 返回記錄總數, 非 0 值則返回

@OrderType bit = 0, -- 設置排序類型, 非 0 值則降序

@strWhere varchar(1500) = '' -- 查詢條件 (注意: 不要加 where)

AS

declare @strSQL varchar(5000) -- 主語句

declare @strTmp varchar(110) -- 臨時變數

declare @strOrder varchar(400) -- 排序類型

if @doCount != 0

begin

if @strWhere !=''

set @strSQL = "select count(*) as Total from [" + @tblName + "] where "+@strWhere

else

set @strSQL = "select count(*) as Total from [" + @tblName + "]"

end

--以上代碼的意思是如果@doCount傳遞過來的不是0,就執行總數統計。以下的所有代碼都是@doCount為0的情況

else

begin

if @OrderType != 0

begin

set @strTmp = "<(select min"

set @strOrder = " order by [" + @fldName +"] desc"

--如果@OrderType不是0,就執行降序,這句很重要!

end

else

begin

set @strTmp = ">(select max"

set @strOrder = " order by [" + @fldName +"] asc"

end

if @PageIndex = 1

begin

if @strWhere != ''

set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from [" + @tblName + "] where " + @strWhere + " " + @strOrder

else

set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["+ @tblName + "] "+ @strOrder

--如果是第一頁就執行以上代碼,這樣會加快執行速度

end

else

begin

--以下代碼賦予了@strSQL以真正執行的SQL代碼

set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["

+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["+ @fldName + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)"+ @strOrder

if @strWhere != ''

set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["

+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["

+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["

+ @fldName + "] from [" + @tblName + "] where " + @strWhere + " "

+ @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder

end

end

exec (@strSQL)

GO

上面的這個存儲過程是一個通用的存儲過程,其注釋已寫在其中了。

❺ 海量分布式存儲系統Doris原理概述

Doris( https://github.com/itisaid/Doris )是一個海量分布式 KV 存儲系統,其設計目 標是支持中等規模高可用可伸縮的 KV 存儲集群。
Doris可以實現海量存儲,線性伸縮、平滑擴容,自動容錯、故障轉移,高並發,且運維成本低。部署規模,建議部署4-100+台伺服器。

Doris採用兩層架構,Client 和 DataServer+Store。
有四個核心組件,Client、DataServer、Store、Administration。
應用程序通過Client SDK進行Doris的訪問,
每台伺服器上部署一個Data Sever做伺服器的管理,每台伺服器上有自己的存儲Store,整個集群的數據存儲,每台機器獨立部署。數據通過路由選擇寫入到不同的機器中。
Administration為管理中心,提供配置、管理和監控。
config指,應用程序啟動一個Data Server,在啟動時要配置管理中心的ip地址,通關管理中心。管理中心會修改配置項感知到集群中加了新機器,對新機器管理,擴容等。待機器處於可用狀態,將該機器的配置項通知給KV Client。從而KV Client進行新的路由選擇。
擴容、下線機器等的控制台界面通過Management管理。
Monitor監控機器是否正常。

client寫數據,綁定產品的namespace(邏輯隔離),構成新key,路由到具體機器上讀寫。

路由解析演算法是設計的一個關鍵點,決定集群的管理方式,也決定了集群擴容的復雜性和難度。
Doris的演算法類似redis,有桶的概念,key映射到1w個虛擬節點,虛擬節點在映射到物理節點。
由於Doris設計時,用於4-100+規模的集群。因此,Doris分了1w個虛擬節點,當伺服器超過100會導致負載不均衡,1000會更差,相當於每一個集群上有10個虛擬節點,虛擬節點會有10%的影響。
擴容時,需要調節虛擬節點指向新的位置。具體過程為,暴利輪詢新節點添加後,一個伺服器上應該承載的虛擬節點個數,將超出的虛擬節點遷移到新機器即可。如上圖左圖有2個物理節點,擴容後,有3個物理節點,變為右圖。

為了保證高可用。doris所有服務分成2個組,兩組伺服器對等。兩個group是可以有不同數量的伺服器。
寫操作時,client的路由演算法在兩個group分別選2個伺服器,分別(同時)寫入,兩個伺服器全部返回後,再繼續向下進行。讀操作時,從兩個伺服器隨機選一個讀。這樣,提高可用性,數據持久性,不會丟失。

集群管理的重要角色Config Server,有一個功能是負責發現故障伺服器。
發現故障的方式有2種:

節點失效分為:瞬間失效、臨時失效、永久失效
應用伺服器向伺服器寫,如果寫失敗,為 瞬間失效 。接著應用伺服器進行3次重試。3次都失敗,通知管理伺服器,進行服務的失效判斷。
管理伺服器再寫一次,如果寫成功,認為是客戶端自己通信通信問題。如果寫入失敗,判斷為 臨時失效 ,通知所有client,伺服器失效,不要寫,也不讀。
如果2小時恢復,則節點為臨時失效。如果2小時沒有恢復,認為是 永久失效

如圖,如果節點2失效,進入臨時失效階段。

如圖,節點2臨時失效2個小時還未恢復,判定為永久失效。進入永久失效的恢復。

設計中,有臨時日誌節點(備份節點),有空白節點。實際使用中沒有節點3空白節點。原因:1 自動遷移有風險,還是需要手動遷移。2 幾年宕機1台,一直有一個空白節點standby浪費。一般晚上報警失效也沒有事情,第二天,找機器擴容即可。認為24小時之內,同樣編號的2台機器連續down掉,概率很低。

物理節點分成2個group,寫的時候,向2個group同時寫。當其中一個group擴容機器時,該group上的所有節點進入臨時失效狀態。停止讀寫,將數據遷移到新的伺服器上。
由於是虛擬節點的映射在調整,所以遷移是按照虛擬節點調整。為了遷移方便,虛擬節點物理化,一個虛擬節點對應一個文件。遷移時其實就是拷貝文件。這時,如果group1有節點失效也會出現不一致,但是,通常擴容的過程很快,因為,是scp拷貝文件,瓶頸為網路帶寬,通常幾十T數據,幾分鍾遷移完成,十來分鍾進行數據恢復。

❻ 大數據存儲與應用特點及技術路線分析

大數據存儲與應用特點及技術路線分析

大數據時代,數據呈爆炸式增長。從存儲服務的發展趨勢來看,一方面,對數據的存儲量的需求越來越大;另一方面,對數據的有效管理提出了更高的要求。大數據對存儲設備的容量、讀寫性能、可靠性、擴展性等都提出了更高的要求,需要充分考慮功能集成度、數據安全性、數據穩定性,系統可擴展性、性能及成本各方面因素。

大數據存儲與應用的特點分析

「大數據」是由數量巨大、結構復雜、類型眾多數據構成的數據集合,是基於雲計算的數據處理與應用模式,通過數據的整合共享,交叉復用形成的智力資源和知識服務能力。其常見特點可以概括為3V:Volume、Velocity、Variety(規模大、速度快、多樣性)。

大數據具有數據規模大(Volume)且增長速度快的特性,其數據規模已經從PB級別增長到EB級別,並且仍在不斷地根據實際應用的需求和企業的再發展繼續擴容,飛速向著ZB(ZETA-BYTE)的規模進軍。以國內最大的電子商務企業淘寶為例,根據淘寶網的數據顯示,至2011年底,淘寶網最高單日獨立用戶訪問量超過1.2億人,比2010年同期增長120%,注冊用戶數量超過4億,在線商品數量達到8億,頁面瀏覽量達到20億規模,淘寶網每天產生4億條產品信息,每天活躍數據量已經超過50TB.所以大數據的存儲或者處理系統不僅能夠滿足當前數據規模需求,更需要有很強的可擴展性以滿足快速增長的需求。

(1)大數據的存儲及處理不僅在於規模之大,更加要求其傳輸及處理的響應速度快(Velocity)。

相對於以往較小規模的數據處理,在數據中心處理大規模數據時,需要服務集群有很高的吞吐量才能夠讓巨量的數據在應用開發人員「可接受」的時間內完成任務。這不僅是對於各種應用層面的計算性能要求,更加是對大數據存儲管理系統的讀寫吞吐量的要求。例如個人用戶在網站選購自己感興趣的貨物,網站則根據用戶的購買或者瀏覽網頁行為實時進行相關廣告的推薦,這需要應用的實時反饋;又例如電子商務網站的數據分析師根據購物者在當季搜索較為熱門的關鍵詞,為商家提供推薦的貨物關鍵字,面對每日上億的訪問記錄要求機器學習演算法在幾天內給出較為准確的推薦,否則就丟失了其失效性;更或者是計程車行駛在城市的道路上,通過GPS反饋的信息及監控設備實時路況信息,大數據處理系統需要不斷地給出較為便捷路徑的選擇。這些都要求大數據的應用層可以最快的速度,最高的帶寬從存儲介質中獲得相關海量的數據。另外一方面,海量數據存儲管理系統與傳統的資料庫管理系統,或者基於磁帶的備份系統之間也在發生數據交換,雖然這種交換實時性不高可以離線完成,但是由於數據規模的龐大,較低的數據傳輸帶寬也會降低數據傳輸的效率,而造成數據遷移瓶頸。因此大數據的存儲與處理的速度或是帶寬是其性能上的重要指標。

(2)大數據由於其來源的不同,具有數據多樣性的特點。

所謂多樣性,一是指數據結構化程度,二是指存儲格式,三是存儲介質多樣性。對於傳統的資料庫,其存儲的數據都是結構化數據,格式規整,相反大數據來源於日誌、歷史數據、用戶行為記錄等等,有的是結構化數據,而更多的是半結構化或者非結構化數據,這也正是傳統資料庫存儲技術無法適應大數據存儲的重要原因之一。所謂存儲格式,也正是由於其數據來源不同,應用演算法繁多,數據結構化程度不同,其格式也多種多樣。例如有的是以文本文件格式存儲,有的則是網頁文件,有的是一些被序列化後的比特流文件等等。所謂存儲介質多樣性是指硬體的兼容,大數據應用需要滿足不同的響應速度需求,因此其數據管理提倡分層管理機制,例如較為實時或者流數據的響應可以直接從內存或者Flash(SSD)中存取,而離線的批處理可以建立在帶有多塊磁碟的存儲伺服器上,有的可以存放在傳統的SAN或者NAS網路存儲設備上,而備份數據甚至可以存放在磁帶機上。因而大數據的存儲或者處理系統必須對多種數據及軟硬體平台有較好的兼容性來適應各種應用演算法或者數據提取轉換與載入(ETL)。

大數據存儲技術路線最典型的共有三種:

第一種是採用MPP架構的新型資料庫集群,重點面向行業大數據,採用Shared Nothing架構,通過列存儲、粗粒度索引等多項大數據處理技術,再結合MPP架構高效的分布式計算模式,完成對分析類應用的支撐,運行環境多為低成本 PC Server,具有高性能和高擴展性的特點,在企業分析類應用領域獲得極其廣泛的應用。

這類MPP產品可以有效支撐PB級別的結構化數據分析,這是傳統資料庫技術無法勝任的。對於企業新一代的數據倉庫和結構化數據分析,目前最佳選擇是MPP資料庫。

第二種是基於Hadoop的技術擴展和封裝,圍繞Hadoop衍生出相關的大數據技術,應對傳統關系型資料庫較難處理的數據和場景,例如針對非結構化數據的存儲和計算等,充分利用Hadoop開源的優勢,伴隨相關技術的不斷進步,其應用場景也將逐步擴大,目前最為典型的應用場景就是通過擴展和封裝 Hadoop來實現對互聯網大數據存儲、分析的支撐。這裡面有幾十種NoSQL技術,也在進一步的細分。對於非結構、半結構化數據處理、復雜的ETL流程、復雜的數據挖掘和計算模型,Hadoop平台更擅長。

第三種是大數據一體機,這是一種專為大數據的分析處理而設計的軟、硬體結合的產品,由一組集成的伺服器、存儲設備、操作系統、資料庫管理系統以及為數據查詢、處理、分析用途而特別預先安裝及優化的軟體組成,高性能大數據一體機具有良好的穩定性和縱向擴展性。

以上是小編為大家分享的關於大數據存儲與應用特點及技術路線分析的相關內容,更多信息可以關注環球青藤分享更多干貨

❼ 如何進行java海量數據處理,下面一段是我摘抄的問題及處理方法

你理解應該錯了吧,即使再怎麼分布不均,他求出來的都是每個文件中訪問次數最多的,所有的都是最大的情況下做比較之後,得到的值一定是最大的啊,還是說每個IP的登錄記錄都不在同一個文件中?如果是這樣的話,那麼這樣做應該得不到一個精確的結果。
我是個菜鳥,本來想圍觀的。。。
但是我感覺樓主的問題用BitMap演算法應該是可以解決的。BloomFilter也可以,但是會誤判,有大神看見了而且覺得我說的不對的話勿噴,我不是很懂大數據量開發。

熱點內容
演算法導論對數 發布:2025-03-19 07:30:58 瀏覽:144
sql字元串日期 發布:2025-03-19 07:30:52 瀏覽:730
編程求距離 發布:2025-03-19 07:30:52 瀏覽:979
win8無法訪問共享 發布:2025-03-19 07:30:49 瀏覽:28
個人電腦怎麼把伺服器放到公網 發布:2025-03-19 07:19:35 瀏覽:785
linux配置網路界面 發布:2025-03-19 07:10:10 瀏覽:900
安卓哪個手機最小 發布:2025-03-19 07:09:08 瀏覽:621
電腦無線網路怎麼打開伺服器 發布:2025-03-19 06:53:09 瀏覽:925
網頁緩存視頻下載 發布:2025-03-19 06:52:19 瀏覽:987
演算法實戰 發布:2025-03-19 06:52:14 瀏覽:515