天天看點

資料如何變成知識,第 2 部分 資料湖和資料沼澤

資料湖概念已存在多年。它最初引起了一些争議,而且被貼上了營銷炒作的标簽。術語資料湖不是任何傳統資料存儲架構的一部分,是以供應商可以自由地使用它來表示許多不同的事物。

資料存儲術語,比如流、池、儲備庫和雲,在資料科學中也得到廣泛使用。不可避免地,人們開始将其與天然水生态系統進行類比,是以現在我們還有了資料湖和資料沼澤。

類比對解釋概念很有幫助,但始終存在着過度類比導緻失敗的危險。如果您是該領域的新人,不知道該術語的真實含義,類比還會讓該術語變得混亂。但是,随着資料湖的概念慢慢被人們接受,一些人已經開始嘗試定義一個架構來規範化這些概念。

盡管如此,我将使用另一種類比來解釋這些概念。邊欄給出了該術語的标準定義;後面的類比從概念上解釋了它們。我的類比基于制作三明治(我為自己辯解一下,我是在午飯前寫的這篇文章,而且我很餓)。我從一家食品雜貨店開始類比,我們大部分人都是在食品雜貨店購買三明治制作材料的。

一些定義

資料倉庫:資料倉庫是一種存儲架構,旨在儲存從多個資料源提取的資料,這些資料源包括操作資料存儲、事務資料存儲,以及企業内的部門資料集市。資料倉庫将資料組合為一種聚合、摘要形式,适合于進行企業級資料分析以及針對業務需求定制報告。

資料湖:資料湖是一種存儲庫,它以原生格式儲存大量原始資料或細化的資料,以供按需通路。這個詞有時與 Apache Hadoop 對象存儲有關,但資料科學家越來越多地開始使用資料湖這個詞來描述任何具有不明确的模式和資料需求的大型資料池。分析師僅在查詢資料時定義這些參數。

資料沼澤:資料沼澤是一種設計不良、未充分歸檔或未有效維護的資料湖。這些缺陷損害了檢索資料的能力,使用者無法有效地分析和利用資料。盡管資料已經存在,但如果沒有上下文中繼資料,資料沼澤就無法檢索資料。

一種簡單類比

一個食品雜貨店的員工在過道和貨架上按類别分類和整齊地存放食品雜貨。您可以輕松地選擇和購買您想要的食品雜貨。食品雜貨店類似于将資料資産存儲在表行和列中以友善檢索的資料庫。

商店存放的食品雜貨是在不同時間從許多來源和供貨商送來的,而且具有不同的保存期限。類似地,資料可能在不同時間從多個資料源傳入。資料也可能變得過時,就像食品雜貨一樣。像來自食品雜貨店的組成三明治的許多原料一樣,資訊是在一個特定上下文中編目的資料集合。換言之,三明治類似于資訊。

完整的綠色蔬菜類似于非結構化資料,切成小塊的綠色蔬菜類似于結構化資料。(為了有效地類比,我假設完整的蔬菜是非結構化資料。)

現在,假設當地的三明治店從這家食品雜貨店選擇和購買食品雜貨,清理并清洗食品雜貨,将它們切碎以供在三明治中使用,并将它們分開存放 — 就像在用于分析之前對資料執行清理、結構化和規範化。

當您想吃一個三明治時,您會前往三明治店。三明治店還可以用不同的櫃台來提供三明治、包裹物或色拉 — 類似于資料集市和資料倉庫。就像一個櫃台是三明治店的子集一樣,資料集市是資料倉庫的子集。一個資料集市對應于一個部門,而一個資料倉庫對應于整個企業。

在三明治店,您會檢視菜單并決定想要購買哪種三明治;然後訂購它。三明治制作者按照相同的重複流程制作每個三明治;實際上,您可以找到一些已做好的、打包好的、可以立即享用的三明治。三明治店類似于與資料倉庫相內建的商業智能 (BI) 工具的菜單。分析工具也使用重複性流程來生成報告,為使用者提供一些封裝好的報告供立即使用。

大部分人喜歡定制他們的三明治,要求更改原料份量,更改配菜,或者不放某些原料。類似地,通過 BI 工具,您可以選擇特定資料來定制報告。就像可以向三明治制作者指定原料來制作自己的三明治那樣,您也可以在 BI 菜單中指定資料和算法來建立定制分析報告。

現在,設想您是一位食品檢查員,希望確定為制作三明治而準備的所有食品雜貨都是未受污染的。另外,您還想確定用于準備食品的流程(包括清洗、清理和切塊)是一緻的,而且是在合格的衛生條件下執行的。在這種情況下,您需要對用于準備食品的流程進行稽核,并定期檢查食品準備區。

類似地,稽核人員需要通路原始資料,驗證資料準備流程中的資料沒有由于轉錄、清理、格式化和規範化而受到污染。不同于三明治店中的食品雜貨的情形,您可以複制和克隆資料。是以為了實作合規和執行稽核,可以存儲原始資料。

最初,資料湖指的是儲存原始資料和非結構化資料(比如文本、圖像、音頻和視訊)的資料儲備庫。但是,前面已經提到過,供應商為資料湖提供了其他定義。

繼續前面的類比,設想一位挑剔的顧客對三明治櫃台的容器中的原料來源和新鮮度産生懷疑。顧客可能還想在三明治中加點這家三明治店裡沒有的蔬菜或肉類。三明治店肯定不允許顧客到櫃台後面準備自己的三明治,是以顧客沒有選擇,隻能前往食品雜貨店購買食品雜貨并在自己的廚房中制作三明治。通常,專業分析師和資料科學家希望通路原始資料,而不是存儲在資料倉庫中的已準備好的聚合摘要資料:他們更願意從來源擷取最新的資料,以確定它的有效性和相關性。他們可能還希望看到資料的傳入速度,這可能受準備過程中的屏蔽操作的影響。如果分析師希望看到資料倉庫中未考慮的其他資料,他們可能想要直接通路原始資料庫。資料湖不會直接通路原始資料,它保留原始資料庫的克隆版本來滿足這些通路需求,并在沙箱中執行新分析。

有時,一位美味三明治制作者可能會堅持從農民那裡而不是食品雜貨店擷取新鮮的原料。在這種情況下,這位美味三明治制作者必須複制食品雜貨店采購者的功能,這類似于來自物聯網 (IoT) 裝置等來源的實時資料。在這種情況下,資料湖必須對這些實時資料流執行提取、轉換、加載 (ETL) 功能。

最後,設想一家低檔的三明治店。櫃台上的容器沒有标簽。蔬菜和肉胡亂混在一起,甚至三明治制作者也不确定最後一個容器中存放了哪種肉。客戶可能會離開,因為他們不确定會獲得哪種三明治。這類似于一個資料沼澤,也就是一種未得到有效維護的資料湖。資料就像無法辨識的肉,沒有人可以确認一些資料的血統。使用者無法通路有用的資料,因為資料沼澤沒有适當地對中繼資料标簽進行歸檔(或者更糟的是錯誤地進行了歸檔),或者一些資料的格式無法被內建的工具讀取或被查詢檢索。

為什麼我們真的需要資料湖?

您現在已知道我們需要資料湖有多種原因:

  • 用作原始資料存儲庫來滿足合規和稽核用途(例如錄音和錄像、文檔掃描、文本和日志檔案)
  • 作為一個平台,供資料科學家和分析師通路結構化和非結構化資料來進行驗證,并在沙箱中運作新的分析模型
  • 作為一個平台,內建來自操作或事務系統的實時資料,并越來越多地內建來自 IoT 裝置的傳感器資料

資料倉庫提供的聚合和摘要資料對大部分 BI 使用者已足夠。資料湖的使用者可以是稽核人員、專業分析師和資料科學家(占少數)。有什麼其他令人信服的讓企業選擇建立資料湖的原因?是以,了解資料湖與資料倉庫有何不同是值得的。

資料倉庫與資料湖之間有何差別?

資料倉庫是一種具有正式架構的成熟的、安全的技術。它們存儲經過全面處理的結構化資料,以便完成資料治理流程。資料倉庫将資料組合為一種聚合、摘要形式,以在企業範圍内使用,并在執行資料寫入操作時寫入中繼資料和模式定義。資料倉庫通常擁有固定的配置;它們是高度結構化的,是以不太靈活和靈活。資料倉庫成本與在存儲前處理所有資料相關,而且大容量存儲的費用相對較高。

相較而言,資料湖是較新的技術,擁有不斷演變的架構。資料湖存儲任何形式(包括結構化和非結構化)和任何格式(包括文本、音頻、視訊和圖像)的原始資料。根據定義,資料湖不會接受資料治理,但專家們都認為良好的資料管理對預防資料湖轉變為資料沼澤不可或缺。資料湖在資料讀取期間建立模式。與資料倉庫相比,資料湖缺乏結構性,而且更靈活;它們還提供了更高的靈活性。在檢索資料之前無需執行任何處理,而且資料湖特意使用了便宜的存儲。

盡管有這些優勢,但資料湖在安全、治理和管理方面仍需要完善。但是,它還有一個重要優勢,這也是一個富有吸引力的驅動因素。

機器學習和深度學習都是驅動因素

在采用資料湖的原因中,讨論最少但或許最有吸引力的是資料挖掘和分析中越來越多地開始采用機器學習和深度學習技術。傳統搜尋和分析方面的軟體稽核是一個成熟領域,但用于資料挖掘和分析的機器學習和深度學習技術的軟體稽核還處于起步階段。

語音轉錄、光學字元識别、圖像和視訊識别等等,現在經常使用機器學習或深度學習技術。資料科學家需要通路原始的非結構化資料來訓練這些系統,以便執行系統驗證,并確定審計跟蹤。類似地,深度學習執行資料挖掘等任務來查找次元與時序資料之間的模式和關系。

另一種深度學習應用是提取以前無法通路的、無法通過查詢來檢索的資料。這些資料稱為暗資料,是本系列下一期的主題。在資料挖掘和分析應用中,機器學習和深度學習的出現是遷移到資料湖架構的一個非常有吸引力的理由。

資料湖的優勢

資料湖有衆多優勢:

  • 輕松地收集和攝入資料:企業中的所有資料源都可以送入資料湖中。是以,資料湖成為了存儲在企業内部伺服器或雲伺服器中的結構化和非結構化資料的無縫通路點。通過資料分析工具可以輕松地獲得整個無孤島的資料集合。此外,資料湖可以用多種檔案格式存儲多種格式的資料,比如文本、音頻、視訊和圖像。這種靈活性簡化了舊有資料存儲的內建。
  • 支援實時資料源:資料湖支援對實時和高速資料流執行 ETL 功能,這有助于将來自 IoT 裝置的傳感器資料與其他資料源一起融合到資料湖中。
  • 更快地準備資料:分析師和資料科學家不需要花時間直接通路多個來源,可以更輕松地搜尋、查找和通路資料,這加速了資料準備和重用流程。資料湖還會跟蹤和确認資料血統,這有助于確定資料值得信任,還會快速生成可用于資料驅動的決策的 BI。
  • 更好的可擴充性和靈活性:資料湖可以利用分布式檔案系統來存儲資料,是以具有很高的擴充能力。開源技術的使用還降低了存儲成本。資料湖的結構沒那麼嚴格,是以天生具有更高的靈活性,進而提高了靈活性。資料科學家可以在資料湖内建立沙箱來開發和測試新的分析模型。
  • 具有人工智能的進階分析:通路原始資料,建立沙箱的能力,以及重新配置的靈活性,這些使得資料湖成為了一個快速開發和使用進階分析模型的強大平台。資料湖非常适合使用機器學習和深度學習來執行各種任務,比如資料挖掘和資料分析,以及提取非結構化資料。

資料湖的演變

與其說資料湖在演變,不如說是一種技術融合。資料倉庫是從其前身(關系資料庫)演化而來,邁出了革命性的一步,但對于資料湖和資料倉庫,我們不能這麼說。

資料湖彙集了各種技術,包括資料倉庫、實時和高速資料流技術、資料挖掘、深度學習、分布式存儲和其他技術。但是,人們感覺資料湖在專業資料科學家或分析師中擁有有限的使用者群。另一種常見的誤解是,将資料湖概念與一種特定的支援技術(比如 Hadoop)聯系起來。

資料湖概念擁有比任何一種基礎技術更大的潛力,而且還在不斷演化,供應商也在不斷在添加特性和功能。潛在的增長領域包括:

  • 架構标準化和互操作性
  • 資料治理、管理和綜合處理
  • 整體資料安全性

與大部分不斷演化的技術一樣,供應商之間的競争和業務驅動因素擴大了應用邊界。資料湖在諸多資料存儲技術中獲得廣泛接受隻是時間問題。

資料湖的應用

資料湖的一些特性使它們非常适合某些應用。本節将解釋其中兩種應用。

醫療和生命科學

資料湖可以幫助解決電子醫療記錄 (EMR) 的互操作性問題。聯邦任務的意圖是,通過使用 EMR,讓醫生能夠通路跨多個系統的患者醫療記錄,并在各個醫院之間輕松地交接患者護理。在實際中,許多記錄(包括保險索賠和臨床資料)要麼無法互操作,要麼具有機器不可讀的資料格式。在檢索前,資料湖會存儲任何格式的記錄。是以,患者記錄可能也包含醫生手寫的筆記、醫學圖像等。随着醫療領域中越來越多地開始使用醫學裝置遙測和 IoT,資料湖還能夠從實時資料流中提取和存儲資料。

銀行和金融

銀行和金融業通常會處理多個資料源。它也會處理高速的交易資料(從股票市場到信用卡)和其他銀行交易。銀行和金融機構經常存儲法律和其他文檔,以滿足合規性和稽核需求。資料湖非常适合存儲這些混合資料格式,并以數字方式存儲舊有資料,以友善檢索。資料湖充當着一個靈活平台來攝入多個資料流,以供這個行業垂直領域中的大量分析工具進行使用。

結束語

隻要正确地設計和實作,資料湖是存儲大量的多格式資料而不需要孤島的一種強大方法。它們減少了資料攝取和轉換的時間和成本,進而使使用者可以及時獲得資料。它們還允許使用更低成本的分布式存儲。資料湖在架構上還不成熟,而且各個供應商産品之間目前缺乏标準化。資料湖仍在不斷演化和增添新的功能,以改善通路控制、安全性、資料管理、綜合處理等特性。随着用于資料挖掘和分析的機器學習和深度學習技術的出現,需要引入一個平台,提供對原始資料的輕松通路,以便訓練這些系統,進而實作系統驗證,并確定審計跟蹤。資料湖是這一需求的巧妙解決方案。深度學習還支援通路以前攝入到資料湖中的舊有資料,這些資料無法通過标準查詢機制進行通路。這種所謂的“暗資料”是本系列第 3 部分介紹的主題。

相關主題

  • 分析和資料湖深入剖析
  • 來自 IBM Analytics 的資料湖解決方案
  • Amazon Web Services 上的資料湖解決方案
  • Microsoft Azure 上的資料湖解決方案

繼續閱讀