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

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

  簡介

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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章