大資料架構和模式(四)——瞭解用於大資料解決方案的原子模式和複合模式

developerWorks 中國發表於2015-01-31

摘要:本文中介紹的模式有助於定義大資料解決方案的引數。本文將介紹最常見的和經常發生的大資料問題以及它們的解決方案。原子模式描述了使用、處理、訪問和儲存大資料的典型方法。複合模式由原子模式組成,並根據大資料解決方案的範圍進行分類。由於每個複合模式都有若干個維度,所以每個模式都有許多變化。複合模式使得業務和技術使用者可以應用一個結構化方法為大資料問題建立範圍,並定義高階的解決方案。

大資料架構和模式(一)——大資料分類和架構簡介

大資料架構和模式(二)——如何知道一個大資料解決方案是否適合您的組織

大資料架構和模式(三)——理解大資料解決方案的架構層

大資料架構和模式(五)——對大資料問題應用解決方案模式並選擇實現它的產品

簡介

本系列的 第 3 部分 介紹了大資料解決方案的邏輯層。這些層定義了各種元件,並對它們進行分類,這些元件必須處理某個給定業務用例的功能性和非功能性需求。本文基於層和元件的概念,介紹瞭解決方案中所用的典型原子模式和複合模式。通過將所提出的解決方案對映到此處提供的模式,讓使用者瞭解需要如何設計元件,以及從功能角度考慮,應該將它們放置在何處。模式有助於定義大資料解決方案的架構。利用原子模式和複合模式可以幫助進一步完善大資料解決方案的每個元件的角色和責任。

本文介紹原子模式和複合模式。本系列的最後一篇文章將介紹解決方案模式。

圖 1. 模式的類別

該圖顯示了一下模式:原子模式、複合模式和解決方案模式

原子模式

對於大資料上下文中經常出現的問題,原子模式 有助於識別資料如何是被使用、處理、儲存和訪問的。它們還有助於識別所需的元件。訪問、儲存和處理來自不同資料來源的多種資料需要不同的方法。每種模式都用於滿足特定的需求:例如,視覺化、歷史資料分析、社交媒體資料和非結構化資料的儲存。可以將多種原子模式結合使用,組成一個複合模式。這些原子模式沒有進行分層或排序。例如,視覺化模式可以與社交媒體的資料訪問模式直接互動,視覺化模式還可以與高階分析處理模式進行互動。

圖 2. 用於資料使用、處理、資料訪問和儲存的原子模式的示例

該圖顯示了每種原子模式下的樣例模式的列表

資料使用模式

這種型別的模式處理使用資料分析結果的各種方式。本節包括的資料使用模式可以滿足幾個需求。

視覺化模式

視覺化資料的傳統方式以圖表、儀表板和摘要報告為基礎。這些傳統的方法並不總是用來視覺化資料的最佳方式。

大資料視覺化的典型需求(包括新出現的需求)如下所示:

  • 執行流資料的實時分析和顯示
  • 基於上下文,以互動方式挖掘資料
  • 執行高階搜尋,並獲得建議
  • 並行視覺化資訊
  • 獲得先進的硬體,支援未來的視覺化需求

正在進行研究,以確定人類和機器如何使用大資料洞察。這些挑戰包括所涉及的資料量,並且需要將資料與上下文相關聯。必須在適當的上下文中顯示洞察。

視覺化資料的目的是為了更容易、更直觀地使用資料,因此報告和儀表板可能提供全高清的觀看效果和 3-D 互動視訊,並且可以為使用者提供使用應用程式控制業務活動和結果的能力。

即席發現模式

建立滿足所有業務需求的標準報告往往是不可行的,因為企業的業務資料查詢會有不同的需求。使用者在查詢特定資訊時,可能需要獲得根據問題的上下文執行即席查詢的能力。

即席分析可以幫助資料科學家和關鍵業務使用者瞭解業務資料的行為。即席處理中涉及的複雜性來自多種因素:

  • 多個資料來源可用於相同的域。
  • 單一的查詢可以有多個結果。
  • 輸出可以是靜態的,並具有多種格式(視訊、音訊、圖形和文字)。
  • 輸出可以是動態和互動式的。

加強傳統的資料儲存

在大資料的初步探索中,許多企業選擇使用現有的分析平臺來降低成本,並依賴於現有的技能。加強現有的資料儲存有助於拓寬可用於現有分析的資料的範圍,包括駐留在組織邊界內外的資料,比如社交媒體資料,它可以豐富主資料。通過拓寬資料範圍,使之包含現有儲存中的新事實表、維度和主資料,並從社交媒體獲取客戶資料,組織可以獲得更深入的客戶洞察。

但要牢記的是,新的資料集通常比較大,而現有的提取、轉換和載入工具可能不足以處理它。您可能需要使用具有大規模並行處理能力的高階工具來解決資料的數量、多樣性、真實性和速度特徵。

通知模式

大資料洞察使人類、企業和機器可以通過使用事件通知而立即採取行動。通知平臺必須能夠處理及時傳送出去的預計數量的通知。這些通知與大量郵件或群發簡訊不同,因為內容一般是特定於使用者的。例如,推薦引擎可以提供有關世界各地的龐大客戶群的洞察,而且可以將通知傳送給這樣的客戶。

啟動一個自動響應模式

從大資料獲得的業務洞察,可用於觸發或啟動其他業務流程或事務。

處理模式

無論資料是處於靜止狀態還是在運動中,都可以處理大資料。具體情況取決於分析的複雜性,有可能不需要對資料進行實時處理。這種模式解決了對大資料進行實時、近實時或批量處理的方式。

以下高階的大資料處理類別適用於大多數分析。這些類別通常也適用於基於 RDBMS 的傳統系統。惟一的區別是龐大規模的資料、多樣性和速度。在處理大資料時,要使用機器學習、複雜事件處理、事件流處理、決策管理和統計模型管理等技術。

歷史資料分析模式

傳統的歷史資料分析僅限於預定義的資料時間段,這通常取決於資料保留策略。由於處理和儲存的限制,超出此時間段的資料通常會被歸檔或清除。基於 Hadoop 的系統和其他等效的系統可以克服這些限制,因為它們具有豐富的儲存以及分散式大規模並行處理能力。運營、業務和資料倉儲的資料被移動到大資料儲存,您通過使用大資料平臺功能對它們進行處理。

歷史分析包括分析給定時間段、季節組合和產品的歷史趨勢,並與最新的可用資料進行比較。為了能夠儲存和處理如此龐大的資料,您可以使用 HDFS、NoSQL、SPSS® 和 InfoSphere® BigInsights™。

高階分析模式

大資料提供了很多實現創意洞察的機會。不同的資料集可以在多種上下文中存在關聯。發現這些關係需要創新的複雜演算法和技術。

高階分析包括預測、決策、推理過程、模擬、上下文資訊標識和實體解析。高階分析的應用包括生物統計資料分析(例如,DNA 分析)、空間分析、基於位置的分析、科學分析、研究,等等。高階分析要求大量的計算來管理大量的資料。

資料科學家可以指導您識別合適的技術、演算法和資料集,以及在給定上下文中解決問題所需的資料來源。比如 SPSS、InfoSphere Streams 和 InfoSphere BigInsights 等工具提供了這類功能。這些工具訪問儲存在大資料儲存系統(比如 BigTable、HBase,等等)中的非結構化資料和結構化資料(例如,JSON 資料)。

預處理原始資料模式

大資料解決方案主要由基於 MapReduce 的 Hadoop 系統和技術組成,MapReduce 是開箱即用的分散式儲存和處理解決方案。然而,從非結構化資料提取資料(例如,影像、音訊、視訊、二進位制提要,甚至是文字)是一項複雜的任務,需要具有機器學習能力並掌握自然語言處理等技術。另一個主要挑戰是如何驗證這些技術和演算法的輸出的準確度和正確性。

要對任何資料執行分析,資料都必須是某種結構化格式。從多個資料來源訪問的非結構化資料可以按原樣儲存,然後被轉化成結構化資料(例如 JSON),並被再次儲存到大資料儲存系統中。非結構化文字可以轉換成半結構化或結構化資料。同樣,影像、音訊和視訊資料需要轉換成可用於分析的格式。此外,使用預測和統計演算法的高階分析的準確性和正確性取決於用來訓練其模型的資料和演算法的數量。

下面的列表顯示了將非結構化資料轉換成結構化資料所需的演算法和活動:

  • 文件和文字分類
  • 特徵提取
  • 影像和文字分割
  • 關聯特徵、變數和時間,然後提取包含時間的值
  • 輸出的準確度檢查使用了混淆矩陣(confusion matrix)等技術和其他手動活動

資料科學家可以幫助使用者選擇合適的技術和演算法。

即席分析模式

處理大資料的即席查詢所帶來的挑戰不同於對結構化資料執行即席查詢時所面臨的挑戰,由於資料來源和資料格式不是固定的,所以需要使用不同的機制來檢索和處理資料。

雖然大資料供應商可以處理簡單的即席查詢,但在大多數情況下,查詢是複雜的,因為必須在執行時動態地發現資料、演算法、格式和實體解析。所以需要利用資料科學家和業務使用者的專業知識來定義下列任務所需的分析:

  • 識別並發現計算和演算法
  • 識別並發現資料來源
  • 定義所需的可以由計算使用的格式
  • 對資料執行平行計算

訪問模式

在大資料解決方案中,有許多資料來源,還有很多訪問資料的方式,本節將介紹最常見的幾種。

Web 和社交媒體訪問模式

Internet 是提供許多目前可以獲得的洞察的資料來源。在幾乎所有分析中,都會用到 Web 和社交媒體,但獲得這種資料需要不同的訪問機制。

在所有資料來源中,因為 Web 和社交媒體的多樣性、速度和數量,所以 Web 和社交媒體是最為複雜的。網站大約有 40-50 個類別,每一個類別都需要使用不同的方式來訪問資料。本節將列出這些類別,並介紹一些訪問機制。從大資料的角度講,高階的類別是商業站點、社交媒體站點,以及具有特定和通用元件的站點。有關的訪問機制見圖 3。如果需要的話,在完成預處理後,可將所訪問的資料儲存在資料儲存中。

圖 3. Web 和社交媒體訪問

該圖顯示了 Web 和社交媒體資料訪問

需要執行以下步驟來訪問 Web 媒體資訊。

圖 4. 大資料訪問步驟

  非結構化資料儲存中的 Web 媒體訪問
  1. 步驟 A-1. 爬網程式讀取原始資料。
  2. 步驟 A-2. 資料被儲存在非結構化儲存中。
  Web 媒體訪問為結構化儲存預處理資料
  1. 步驟 B-1. 爬網程式讀取原始資料。
  2. 步驟 B-2. 對資料進行預處理。
  3. 步驟 B-3. 資料被儲存在結構化儲存中。
  Web 媒體訪問預處理非結構化資料
  1. 步驟 C-1. 在極少數情況下,來自供應商的資料可以是非結構化資料。
  2. 步驟 C-2. 對資料進行預處理。
  3. 步驟 C-3. 資料被儲存在結構化儲存中。
  非結構化或結構化資料的 Web 媒體訪問
  1. 步驟 D-1. 資料供應商提供結構化或非結構化資料。
  2. 步驟 D-2. 資料被儲存在結構化或非結構化儲存中。
  Web 媒體訪問預處理非結構化資料
  1. 步驟 E-1. 不能使用在儲存時未經過預處理的非結構化資料,除非它是結構化格式的資料。
  2. 步驟 E-2. 對資料進行預處理。
  3. 步驟 E-3. 經過預處理的結構化資料被儲存在結構化儲存中。

如圖所示,資料可以直接儲存在儲存器中,或者可以對它們進行預處理,並將它們轉換成一箇中間格式或標準格式,然後再儲存它們。

在可以分析資料之前,資料格式必須可用於實體解析或用於查詢所需資料。這種經過預處理的資料可以儲存在一個儲存系統中。

雖然預處理通常被認為是微不足道的,但這項處理可能非常複雜和耗時。

裝置生成的資料模式

裝置生成的內容包括來自感測器的資料資料是從天氣資訊、電氣儀表和汙染資料等資料來源檢測到的,並且由感測器捕獲。這些資料可以是照片、視訊、文字和其他二進位制格式。

下圖說明了處理機器生成的資料的典型過程。

圖 5. 裝置生成的資料訪問

該圖顯示了裝置生產的資料已被處理

圖 5 說明了訪問來自感測器的資料的過程。由感測器捕獲的資料可以傳送到裝置閘道器,裝置閘道器會對資料執行一些初始預處理,並緩衝高速資料。機器生成的資料大多為二進位制格式(音訊、視訊和感測器讀數)或文字格式。這樣的資料最初可以儲存在儲存系統中,也可以對它們進行預處理,然後再儲存它們。對於分析來說,要求執行預處理。

事務、運營和倉庫資料模式

可以儲存現有的事務、運營和倉庫資料,避免清除或歸檔資料(因為儲存和處理的限制),或減少在資料被其他使用者訪問時對傳統儲存的負載。

對於大多數企業而言,事務、運營、主資料和倉庫資訊都是所有分析的核心。如果用在 Internet 上,或者通過感測器和智慧裝置提供的非結構化資料以及外部資料來增強此資料,那麼可以幫助組織獲得準確的洞察,並執行高階分析。

使用由多個資料庫廠商提供的標準聯結器,事務和倉庫資料可以被推入儲存。預處理事務性資料要容易得多,因為資料大多是結構化的。可以使用簡單的提取、轉換和載入流程將事務資料移動到儲存中。事務資料可以很容易地轉換成 JSON 和 CSV 等格式。使用 Sqoop 等工具可以更容易將事務資料推入儲存系統,如 HBase 和 HDFS。

資料訪問模式的特殊變化:生物特徵資料訪問

此資訊的資料訪問與對機器生成的資料的訪問非常相似。生物特徵資料被歸類為生理和行為資料,可以通過許多方式對大量資料進行分析。

有些資料可通過感測器來獲取,有些資料則需要身體樣品(血液、尿液等)。處理生物特徵資料(如 DNA 資料)需要更長的時間。

生理資料包括指紋、掌紋、氣味和香味的資訊,以及面部、聲音、視網膜和虹膜特徵。行為資料包括打字模式、打位元組奏、說話、走路、簽名匹配和步態。

儲存模式

儲存模式有助於確定適當的儲存各種資料的型別和格式。資料可以按原樣儲存,根據鍵值對儲存,或者以預定義的格式儲存。

分散式檔案系統(如 GFS 和 HDFS)都能夠儲存任何型別的資料。但是,高效地檢索或查詢資料的能力會影響效能。技術的選擇很重要。

分散式非結構化資料的儲存模式

大部分大資料是非結構化資料,而且可以通過不同的方式針對不同的上下文提取它所擁有的資訊。大多數時候,非結構化資料必須按原樣並以其原始格式進行儲存。

這樣的資料可以儲存在分散式檔案系統(如 HDFS)和 NoSQL 文件儲存(如 MongoDB)中。這些系統提供了檢索非結構化資料的有效方法。

分散式結構化資料的儲存模式

結構化資料包括從資料來源到達的已經是結構化格式的資料,以及經過預處理,被轉換為 JSON 資料等格式的非結構化資料。必須儲存已經過轉換的資料,避免從原始資料到結構化資料的頻繁資料轉換。

可以使用 Google 的 BigTable 等技術來儲存結構化資料。BigTable 是一個大規模容錯式自我管理系統,包括 TB 級的記憶體和 PB 級的儲存。

Hadoop 中的 HBase 可媲美 BigTable。它使用了 HDFS 作為底層儲存。

傳統資料儲存的儲存模式

對於儲存大資料而言,傳統的資料儲存並不是最佳選擇,但在企業執行初步資料探索的情況下,企業可能會選擇使用現有的資料倉儲、RDBMS 系統和其他內容儲存。這些現有的儲存系統可用來儲存使用大資料平臺消化和過濾的資料。不要認為傳統的資料儲存系統適用於大資料。

雲端儲存的儲存模式

許多雲端計算基礎架構供應商都有分散式結構化、非結構化的儲存能力。從傳統的配置、維護、系統管理、程式設計和建模角度講,大資料技術有點不同。此外,實現大資料解決方案所需的技能既罕見又昂貴。探索大資料技術的企業可以使用雲解決方案來提供大資料的儲存、維護和系統管理。

要儲存的資料往往是敏感資料,這些資料包括醫療記錄和生物特徵資料。您需要考慮資料安全性、資料共享、資料治理,以及有關資料的其他政策,在考慮將雲作為大資料儲存庫的時候尤其如此。傳輸大量資料的能力也是雲端儲存的另一個重要考慮因素。

複合模式

原子模式 側重於提供執行各項功能所需的能力。但是,複合模式 是基於端到端的解決方案進行分類的。每個複合模式都要考慮一個或多個維度。在將複合模式應用到每個模式時,會有許多變化。可以將複合模式對映到一個或多個原子模式,以解決某個給定的業務問題。本文所述的複合模式列表是基於經常發生的典型業務問題,但這不是複合模式的完整列表。

儲存和探索模式

如果業務問題需要儲存大量新資料和現有資料,而且先前由於缺乏足夠的儲存和分析能力而一直未使用這些資料,那麼這種模式就非常有用。該模式旨在緩解對現有資料儲存的負載。所儲存的資料可用於初始勘探和即席發現。使用者可以推演報告,通過進一步的處理來分析資料的質量和價值。您可以使用 ETL 工具來預處理和淨化原始資料,然後再進行任何型別的分析。

圖 6. 儲存和探索複合模式

該圖顯示了模式的維度包括僅儲存、處理和使用

圖 6 說明了這種模式的多個維度。資料的使用目的可能只是儲存它,或處理和使用它。

僅儲存的示例是,資料的獲取和儲存只是為了將來能夠滿足合規性或法律的要求。在處理和使用的情況下,分析的結果可以被處理和使用。可以從最近發現的來源或從現有的資料儲存訪問資料。

專用和可預測的分析複合模式

使用此模式的情況是,使用多種處理技術執行分析,因此,可以用新洞察豐富現有資料,或建立可由各種使用者使用的輸出。該分析可以在事件發生的同時實時發生,或使用批量模式,根據收集到的資料獲得洞察。作為可以分析的靜態資料的示例,某電信公司可能構建客戶流失模型,包括分析呼叫資料記錄、社交資料和事務資料。作為分析運動資料的示例,預測某個給定事務正在經歷欺詐的需求必須實時或近實時地發生。

圖 7. 專用和預測分析複合模式

該圖顯示了專用和預測分析複合模式

圖 7 說明了這種模式的多個維度。所執行的處理可以是標準的或預測性的,並且可以包括決策。

此外,可以將通知傳送給與特定任務或訊息有關的系統或使用者。該通知可以使用視覺化功能。該處理可實時發生或以批量模式發生。

可操作的分析模式

大資料解決方案的最高階形式是,對資料集執行分析,並且基於可重複的過去的行動或行動矩陣來暗示行動。該操作可以是手動、半自動或全自動的。基礎分析需要高度準確。行動是預定義的,分析的結果被對映到行動。可操作分析中所涉及的典型步驟是:

  • 分析資料以獲得洞察。
  • 制定決策。
  • 啟用相應的渠道,對正確的使用者採取行動。
圖 8. 可操作的分析複合模式

該圖顯示了可操作的分析複合模式

圖 8 說明該分析可以是手動、半自動或全自動的。如圖中的說明所示,它使用了原子模式。

手動操作 意味著系統基於分析的結果來提供建議操作,並由人類決定和執行操作。半自動 意味著,分析建議操作,但不需要通過人類干預來啟動操作,或從一組建議的操作中進行選擇。全自動 表示在決策之後,系統立即執行操作。例如,在裝置被預測會發生故障之後,系統可以自動建立一個工作訂單。

下面的矩陣顯示瞭如何將原子模式對映到複合模式,複合模式是原子模式的組合。每個複合模式都被設計為針對具有一組特定特徵的資料在特定情況下使用。矩陣顯示了模式的典型組合。必須對模式進行調整,以滿足特定的情況和需求。在矩陣中,按照從最簡單到最複雜的順序列出了複合模式。“store and explore(儲存和探索)”模式是最簡單的。

圖 9. 複合模式對原子模式的對映

該圖顯示了複合模式對原子模式的對映

結束語

採用基於模式的方法可以幫助業務團隊和技術團隊在解決方案的首要目標上達成一致意見。技術團隊可以使用模式定義架構性原則,並制定一些關鍵架構決策。技術團隊可以將這些模式應用到架構層,並匯出實現解決方案所需的元件集。通常情況下,解決方案從有限的範圍開始,然後企業會變得越來越有信心,相信解決方案會帶來價值。隨著演變的發生,與解決方案一致的複合模式與原子模式將會得到細化。在初始階段,可以使用模式來定義一個基於模式的架構,並對映出在該架構中如何逐步設計元件。

圖 10. 將原子模式對映到架構層

該圖顯示了原子模式對架構層的對映

在本系列的 第 2 部分 中,我們描述了與大資料有關的複雜性,以及如何確定是否應實現或更新您的大資料解決方案。在本文中,我們討論了原子模式和複合模式,並解釋了一個解決方案可以由多種模式組成。給定一個特定的上下文,您可能會發現某些模式是比其他模式更合適。我們建議您採用端到端的解決方案檢視,並考慮所涉及的模式,然後定義大資料解決方案的架構。

對於架構師和設計師,對映到模式可以支援對架構中各元件的責任進一步細化。對於業務使用者而言,它通常有助於更好地理解大資料問題的業務範圍,從而獲得有價值的洞察,讓解決方案滿足所期望的結果。

此外,解決方案模式有助於定義最優的元件集,根據業務問題是否需要使用資料發現和探索功能、專用和可預測的分析或者可操作的分析。請記住,在實現一個解決方案時,並沒有建議的原子、複合或解決方案模式的順序或次序。在本系列的下一篇文章中,將針對此用途介紹解決方案模式。

相關文章