向數據湖屋的演進
2021年5月19日 在數據策略
本文是由Forest Rim Technology的數據團隊撰寫的客座文章。我們感謝森林邊緣技術的首席執行官比爾·英蒙和首席數據戰略官瑪麗·萊文斯的貢獻。
原始數據挑戰
隨著應用程序的激增,出現了數據完整性問題。隨著大量應用程序的出現,問題是相同的數據出現在許多地方,值不同。為了做出決定,用戶必須在眾多應用程序中找到哪個版本的數據是正確的。如果用戶沒有找到和使用正確的數據版本,就可能做出錯誤的決定。
人們發現他們需要一種不同的體係結構方法來找到用於決策的正確數據。因此,數據倉庫誕生了。
數據倉庫
數據倉庫導致不同的應用程序數據被放置在單獨的物理位置。設計人員必須圍繞數據倉庫構建一個全新的基礎設施。
圍繞數據倉庫的分析基礎設施包含以下內容:
- 元數據——關於什麼數據位於哪裏的指南
- 數據模型——數據倉庫中數據的抽象
- 數據沿襲——倉庫中數據的起源和轉換的故事
- 摘要-對用於創建數據的算法工作的描述
- 關鍵績效指標——關鍵績效指標
- 將啟用ETL的應用程序數據轉換為企業數據
隨著企業中數據(文本、物聯網、圖像、音頻、視頻等)種類的增加,數據倉庫的局限性變得明顯起來。此外,機器學習(ML)和AI的興起引入了迭代算法,這些算法需要直接訪問數據,而不是基於SQL。
公司的所有數據
與數據倉庫同樣重要和有用的是,在大多數情況下,以結構化數據為中心的數據倉庫。但是現在公司中有許多其他的數據類型。為了了解公司中存在哪些數據,可以考慮一個簡單的圖表:
結構化數據通常是組織為執行日常業務活動而生成的基於事務的數據。文本數據是由公司內部的信件、電子郵件和對話產生的數據。其他非結構化數據是具有其他來源的數據,如物聯網數據、圖像、視頻和基於模擬的數據。
數據湖
數據湖是公司中所有不同類型數據的合並。它已經成為企業卸載所有數據的地方,因為它的低成本存儲係統帶有一個文件API,以通用和開放的文件格式保存數據,如Apache Parquet和ORC。開放格式的使用也使得數據湖的數據可以直接被廣泛的其他分析引擎訪問,比如機器學習係統。
在最初構想數據湖時,人們認為所需要的隻是提取數據並將其放入數據湖。一旦進入數據湖,最終用戶就可以潛入其中,查找數據並進行分析。然而,企業很快發現,使用數據湖中的數據與僅僅將數據放在湖中完全是兩碼事。
由於缺乏一些關鍵特性,數據湖的許多承諾都沒有實現:不支持事務、不執行數據質量或治理以及糟糕的性能優化。因此,企業中的大部分數據都變成了“數據湖”數據沼澤.
當前數據架構的挑戰
由於數據湖和數據倉庫的局限性,一種常見的方法是使用多個係統——一個數據湖、幾個數據倉庫和其他專門的係統,從而導致三個常見問題:
1.缺乏開放性:數據倉庫將數據鎖定為專有格式,這增加了將數據或工作負載遷移到其他係統的成本。由於數據倉庫主要提供僅sql的訪問,因此很難運行任何其他分析引擎,例如機器學習係統。此外,使用SQL直接訪問倉庫中的數據非常昂貴且緩慢,這使得與其他技術的集成非常困難。
2.有限的機器學習支持:盡管有很多關於ML和數據管理融合的研究,但沒有一個領先的機器學習係統(如TensorFlow、PyTorch和XGBoost)在倉庫之上工作得很好。與BI提取少量數據不同,ML係統使用複雜的非sql代碼處理大型數據集。對於這些用例,倉庫供應商建議將數據導出到文件,這進一步增加了複雜性和過時性。
3.數據湖和數據倉庫之間的強製權衡:超過90%的企業數據存儲在數據湖中,因為它可以靈活地開放直接訪問文件,而且使用廉價的存儲,成本很低。為了克服數據湖缺乏性能和質量的問題,企業將數據湖中的一小部分數據ETLed到下遊數據倉庫,用於最重要的決策支持和BI應用。這種雙係統架構需要在湖泊和倉庫之間進行連續的ETL數據工程。每個ETL步驟都有導致失敗或引入降低數據質量的錯誤的風險,同時保持數據湖和倉庫的一致性是困難和昂貴的。除了為連續的ETL付費外,用戶還要為複製到倉庫的數據支付兩倍的存儲成本。
數據湖屋的出現
我們正在看到一種新的數據架構的出現,稱為數據lakehouse這是由一種新的開放和標準化係統設計實現的:直接在用於數據湖的低成本存儲上實現與數據倉庫中的數據結構和數據管理功能相似的數據結構和數據管理功能。
數據湖屋架構解決了上一節中討論的當前數據架構的主要挑戰:
- 通過使用開放格式(如Apache Parquet)來實現開放的直接訪問
- 為數據科學和機器學習提供原生類支持
- 提供一流的性能和低成本存儲的可靠性
以下是使湖屋建築的主要優點成為可能的各種功能:
開放:
- 打開文件格式:構建在開放和標準化的文件格式上,如Apache Parquet和ORC
- 開放API:提供一個開放的API,可以直接有效地訪問數據,而不需要專有引擎和供應商鎖定
- 語言支持:不僅支持SQL訪問,還支持各種其他工具和引擎,包括機器學習和Python/R庫
機器學習支持:
- 支持多種數據類型:為許多新應用程序存儲、細化、分析和訪問數據,包括圖像、視頻、音頻、半結構化數據和文本。
- 高效的非sql直接讀取:使用R和Python庫直接有效地訪問大量數據以運行機器學習實驗。
- 支持DataFrame API:內置聲明式DataFrame API,用於ML工作負載中的數據訪問查詢優化,因為TensorFlow、PyTorch和XGBoost等ML係統已經采用DataFrame作為操作數據的主要抽象。
- ML實驗的數據版本控製:提供數據快照,使數據科學和機器學習團隊能夠訪問並恢複到早期版本的數據,以進行審計和回滾,或重現ML實驗。
一流的性能和低成本的可靠性:
- 性能優化:啟用各種優化技術,如緩存,多維集群和數據跳過,利用文件統計和數據壓縮來適當大小的文件。
- 模式實施和治理:支持星型/雪花模式等DW模式體係結構,並提供健壯的治理和審計機製。
- 事務支持:利用ACID事務來確保一致性,因為多方同時讀取或寫入數據,通常使用SQL。
- 存儲成本低:Lakehouse架構使用低成本的對象存儲構建,如Amazon S3、Azure Blob storage或穀歌Cloud storage。
比較數據倉庫、數據湖和數據湖屋
數據倉庫 | 數據湖 | 數據lakehouse | |
數據格式 | 封閉的專有格式 | 開放格式 | 開放格式 |
數據類型 | 結構化數據,對半結構化數據的支持有限 | 所有類型:結構化數據、半結構化數據、文本數據、非結構化(原始)數據 | 所有類型:結構化數據、半結構化數據、文本數據、非結構化(原始)數據 |
數據訪問 | 僅sql,不能直接訪問文件 | 使用SQL、R、Python和其他語言直接訪問文件的開放api | 使用SQL、R、Python和其他語言直接訪問文件的開放api |
可靠性 | 具有ACID事務的高質量、可靠數據 | 質量低,數據沼澤 | 具有ACID事務的高質量、可靠數據 |
治理和安全 |
表的行/列級的細粒度安全性和治理 | 作為安全性的糟糕治理需要應用於文件 | 表的行/列級的細粒度安全性和治理 |
性能 | 高 | 低 | 高 |
可伸縮性 | 擴大規模的成本將呈指數級增長 | 擴展以低成本保存任意數量的數據,而不考慮類型 | 擴展以低成本保存任意數量的數據,而不考慮類型 |
用例支持 | 僅限於BI, SQL應用程序和決策支持 | 僅限於機器學習 | 一個BI、SQL和機器學習的數據架構 |
湖屋的影響
我們相信,數據湖屋架構提供了一個與我們在數據倉庫市場早期所看到的機會相當的機會。湖屋在開放環境中管理數據的獨特能力,混合來自企業各個部分的各種數據,並將數據湖的數據科學重點與數據倉庫的最終用戶分析相結合,將為組織釋放難以置信的價值。
想了解更多嗎?加入數據+人工智能峰會這是數據社區的全球盛會,與Bill Inmon和Databricks聯合創始人兼首席執行官Ali Ghodsi在爐邊聊天。這個免費的虛擬活動有數據+人工智能遠見者,思想領袖和專家-查看完整的演講者陣容在這裏.
森林邊緣技術由Bill Inmon創立,是將文本非結構化數據轉換為結構化數據庫以進行更深入的洞察和有意義的決策的世界領導者。