跳轉到主要內容
公司博客上

5大理由將雲數據湖三角洲湖

2020年8月21日 公司博客上

分享這篇文章

得到的早期預覽O ' reilly的新電子書一步一步的指導你需要開始使用三角洲湖。


如果你檢查任何議程火花峰會在過去的五年裏,你會發現沒有討論如何最好地師短缺的數據在雲中湖使用Apache火花™ETL和查詢引擎和Apache拚花作為首選的文件格式。有談判,提供建議如何,如何不分區數據,如何計算理想的文件大小,如何處理不斷變化的模式,如何建立壓實例程,如何從失敗中恢複ETL作業如何原始數據到數據流湖,等等。

磚一直在與客戶在這個時候來封裝所有的最佳實踐數據實現湖成三角洲湖,beplay体育app下载地址這是開源火花+人工智能在2019年峰會。有很多好處數據轉換一個Apache拚花湖三角洲湖,但這個博客將關注的5大理由:

  1. 防止數據損壞
  2. 更快的查詢
  3. 增加數據新鮮度
  4. 繁殖毫升模型
  5. 實現遵從性

從根本上講,三角洲湖一起維護一個事務日誌數據。這使得每個三角洲湖表符合acid讀寫將。

防止數據損壞

本地數據湖泊最初作為一個大數據補充數據倉庫HDFS上而不是在雲中。當相同的設計模式複製到一個blob數據存儲,像亞馬遜網絡服務(AWS) S3,獨特的挑戰接踵而至,因為最終一致性屬性。最初的Hadoop的事務提交協議假定重命名功能,它存在於HDFS但不是在S3中。這迫使工程師選擇從兩個不同的Hadoop提交協議是安全但緩慢,或快速但不安全。釋放三角洲湖之前,磚開發了他們自己的提交協議首先解決這個問題。這火花峰會表示從2017年開始,事務寫入雲存儲的挑戰和我們解釋說,那麼方法來解決它。

三角洲湖設計從一開始適應blob存儲和最終一致性和數據質量屬性。如果一個ETL作業失敗對三角洲湖表完全完成之前,它不會腐敗的任何疑問。每個SQL查詢將總表的引用一個一致的狀態。這允許一個企業數據工程師解決為什麼ETL工作可能失敗,修複它,並重新運行它,而不需要擔心提醒用戶,清除部分書麵文件,或調和到先前的狀態。

三角洲湖之前,一個常見的設計模式是分區數據批處理的第一階段id,如果故障發生在攝入,分區可以刪除並創建一個新的重試。盡管這種模式有助於ETL可恢複性,這通常會導致許多分區一些小鋪文件;從而阻礙下遊查詢性能。這通常是通過將數據複製到其他表與更廣泛的分區。三角洲湖仍然支持分區,但你隻需要匹配他們預期的查詢模式,且僅當每個分區包含大量的數據。這最終消除了很多您的數據分區和少提高性能通過掃描文件。

火花允許你合並不同的鑲花模式一起mergeSchema選擇。與常規鋪數據湖,跨分區模式可以不同,但不是在分區。然而,三角洲湖表沒有同樣的約束。三角洲湖給工程師一個選擇允許表的模式發展,或者執行一個模式在寫。如果檢測到不兼容的模式變化,三角洲湖將拋出異常,防止損壞表和列不兼容的類型。此外,三角洲湖表可能包含非空約束列,不能執行常規鋪表。這可以防止記錄被裝滿NULL值列需要數據(和可以打破下遊流程)。

最後一種三角洲湖防止腐敗的數據支持合並聲明。許多表結構的擴展,然而,它並不少見重複的記錄進入管道。通過使用MERGE語句,管道可以配置為插入新記錄或忽略記錄中已經形成的三角洲表。

更快的查詢

三角洲湖有幾個屬性,可以使相同的查詢相比常規鋪快得多。而不是執行一個昂貴的操作blob存儲為每個查詢列表,這是常規鋪讀者,三角洲事務日誌作為清單。

鑲花的事務日誌不僅跟蹤文件名也集中他們的統計數據。這些是每一列的最小和最大價值,在鋪中找到文件頁腳。這允許三角洲湖跳過文件如果能確定它們的攝入不匹配的查詢謂詞。

另一種方法跳過不必要的數據的攝入是身體組織數據的方式查詢謂詞映射到一個小數量的文件。這是ZORDER重組數據背後的概念。這個表設計提供快速查詢列不分區鍵的一部分。這些數據跳過技術的結合是解釋在2018博客:

處理海量數據與磚δ在幾秒鍾內

在2020年引發+人工智能峰會上,磚宣布我們的新三角洲引擎增加更多的性能增強。它有一個智能緩存層緩存集群的SSD / NVME硬盤驅動器上的數據,因為它是攝入;從而使後續查詢相同的數據更快。它有一個增強的查詢優化器加速常見的查詢模式。然而,最大的創新是實現光子,一個本地向量化發動機用c++寫的。一起,這些組件交付三角洲引擎Apache引發顯著的性能改進,同時仍然保持相同的開放api。

因為三角洲湖是一個開源項目,社區已經形成,其他查詢引擎已經建立了對它的支持。如果你已經使用一個查詢引擎,你可以開始利用三角洲湖和立即獲得的一些好處。

增加數據新鮮度

許多鋪數據湖泊每天都在刷新,有時每小時,但很少每一分鍾。有時這是鏈接到一個聚合的糧食,但通常這是由於技術的挑戰,能夠實時數據到數據流湖。三角洲湖從一開始就被設計來適應兩個批處理和流攝入的用例。利用結構化與三角洲湖流,自動得到內置檢查點時,將數據從一個三角洲表到另一個地方。用一個配置的變化觸發,攝入可以改變從批處理流。

一個挑戰是適應流媒體攝入是更頻繁的生成許多非常小的文件寫道,從而對下遊造成負麵影響查詢性能。作為一般規則,是更快的查詢數量較小的大文件比查詢大量的小文件。每個表應該試圖實現均勻鋪文件大小;通常介於128 mb - 512 mb。多年來,工程師們已經開發出自己的壓實工作緊湊的這些小文件到大文件。然而,由於blob存儲缺乏交易,這些程序通常運行在半夜防止下遊查詢失敗。三角洲湖可以用一個緊湊的這些文件優化命令,因為酸遵從性,它可以同時運行,用戶查詢的表。同樣,三角洲湖可以利用自動最優化在最優規模,不斷寫文件。

繁殖毫升模型

為了提高機器學習模型,數據科學家必須首先複製模型的結果。這可能特別艱巨的如果數據科學家訓練模型已經離開了公司。這就要求相同的邏輯、參數庫,必須使用和環境。磚發達MLflow2018年來解決這個問題。

需要跟蹤的其他元素再現性的訓練和測試數據集。的時間旅行特性使查詢數據的能力是在某個時間點上使用數據版本控製。所以你可以複製一個機器學習模型的結果與相同的數據,而不需要再培訓複製數據。

實現遵從性

新法律如GDPR和CCPA要求公司能夠清除數據與客戶應該由個人請求。刪除或更新數據在一個常規拚花湖是計算密集型的數據。所有的文件,屬於被請求的個人資料必須被識別,吸收、過濾、寫入新文件,原始的刪除。這必須在某種程度上,不破壞或腐敗的查詢在桌子上。

三角洲湖包括刪除和更新操作的簡單操作的數據表中。有關更多信息,請參考本文最佳實踐:GDPR並使用三角洲湖CCPA合規該技術和解決GDPR和CCPA場景與三角洲湖和Apache引發™

總結

總之,有很多好處從數據交換你的拚花湖三角洲湖,但前5名:

  1. 防止數據損壞
  2. 更快的查詢
  3. 增加數據新鮮度
  4. 繁殖毫升模型
  5. 實現遵從性

最後一個原因要考慮切換你的拚花數據湖三角洲湖是簡單而快速改變的表轉換命令,同樣簡單的撤銷轉換。今天嚐試三角洲湖!

免費試著磚

相關的帖子

看到所有公司博客上的帖子
Baidu
map