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

Asurion大規模ETL和Lakehouse實現

2021年9月16日 公司博客上

分享這篇文章

這篇文章從Tomasz Magdanski Sr工程主任Asurion。

保險、安裝、修理、更換和24/7支持服務,Asurion幫助人們保護、連接和享受最新的科技,讓我們的生活更容易一些。每天我們的10000名專家組成的團隊幫助世界各地的近3億人解決最常見和罕見的技術問題。我們隻是一個電話,自來水,點擊或者訪問了從獲得當天更換你的智能手機幫助你流或連接沒有緩衝,腫塊或困惑。

我們認為你應該保持聯係,獲得技術的最你愛…無論科技或者你購買它的類型。

數據Lakehouse上升探索為什麼lakehouses未來的數據架構和數據倉庫的父親,Bill Inmon。

背景和挑戰

Asurion企業數據服務團隊是負責收集超過3500個數據資產從整個組織,提供一個地方所有的數據可以清洗,加入時,創建數據產品分析,豐富和杠杆。

前一次迭代的數據平台,主要是建立在傳統的數據庫和數據倉庫Beplay体育安卓版本的解決方案,遇到的挑戰與擴展和成本由於缺少計算和存儲分離。在數據量不斷增加的情況下,各種各樣的數據類型(結構化數據庫表和api數據流),要求更低的延遲和增加速度,平台工程團隊開始考慮整個生態係統遷移到Apache火花™和三角洲湖使用Beplay体育安卓版本lakehouse架構隨著新基礎。

是基於前麵的平台Beplay体育安卓版本λ架構介紹了難的問題,如:

  • 數據複製和同步
  • 邏輯重複,通常使用不同的批處理和層速度的技術
  • 不同的方法來處理數據
  • 數據後處理困難由於缺少事務層,這迫使非常接近編製之間改寫更新或刪除
  • 讀者試圖訪問該數據,迫使平台停機維護時間。Beplay体育安卓版本

使用傳統的提取、轉換和加載(ETL)工具對大型數據集Day-Minus-1處理頻率限製,技術堆棧是巨大的和複雜的。

Asurion的遺留數據平台在大規模操作,處Beplay体育安卓版本理超過8000表,10000年的觀點,2000年2500年報告和儀表板。攝入數據源多樣從數據庫中心提要,api和平麵文件從運動流,卡夫卡,SNS和SQS。平台包括Beplay体育安卓版本數據倉庫將數百個表與很多複雜的依賴關係和接近600數據集市。下次lakehouse必須解決所有的這些用例真正統一在一個單一的平台。Beplay体育安卓版本

磚Lakehouse的解決方案

lakehouse架構簡化了平台通過消除批處理和層速度,提供接近實時的延遲,支持Beplay体育安卓版本多種數據格式和語言,簡化技術堆棧到一個綜合的生態係統。

確保平台的可擴展性和Beplay体育安卓版本未來我們的開發生命周期的效率,我們集中我們最初設計階段確保平台脆弱和剛度下降。

Beplay体育安卓版本平台脆弱時可以觀察到的變化在一個地方休息功能在另一個生態係統的一部分。這通常是在緊密耦合係統。Beplay体育安卓版本平台剛性平台接受的電阻變化。例如,添加一個新列一份報告,許多工作和表必須改變,改變生命周期長,大,更容易出錯。的磚Lakehouse平台Beplay体育安卓版本簡化我們的架構和設計方法的底層代碼,允許一個統一的方法從傳統ETL數據移動到三角洲之間的流數據管道表。

磚Lakehouse平台簡化我們的架構和設計方法潛Beplay体育安卓版本在的代碼庫,允許一個統一的方法從傳統ETL數據移動到三角洲之間的流數據管道表

ETL作業設計

在前麵的平台版本,成千上萬的攝取Beplay体育安卓版本表中的每一個都有自己的ETL映射,使他們和改變周期的管理非常嚴格。新架構的目標是創建一個單一的工作足夠靈活和不同的配置運行成千上萬次。為了實現這一目標,我們選擇火花結構化流,因為它提供了“隻有一次”和“至少一次”語義,以及自動加載程序,大大簡化了狀態管理的工作。有說,有超過3500個人火花工作將不可避免地導致類似的國家3500 ETL映射。為了避免這個問題,我們構建了一個框架使用Scala火花和麵向對象編程的基本原理。(編者按:這個解決方案實施以來,三角洲生活表在磚平台上引入了ETL過程大大簡化。Beplay体育安卓版本)

我們已經創建了一組豐富的讀者,轉換和作家,以及工作類接受細節通過運行時依賴注入。多虧了這個解決方案,我們可以配置攝入工作讀卡夫卡,拚花,JSON,運動和SQS成一個數據幀,然後應用一組常見的轉換,最後注入的步驟被應用在火花結構化流的“foreachBatch”API將數據保存到三角洲表。

ETL作業調度

磚建議使用臨時性集群運行結構化流作業,但有一個限製的每工作1000並發運行的工作。此外,即使沒有限製,讓我們考慮最小的集群由一個主節點和兩個工人。三個節點為每個任務將總共加起來超過10000個節點,因為這些都是流媒體工作,這些集群必須熬夜。我們需要製定一個解決方案,將在這些約束平衡成本和管理開銷。
為了實現這一點,我們把表基於他們更新的頻率源和捆綁成工作小組,分別分配給短暫的筆記本。

筆記本電腦讀取配置數據庫,收集所有的工作屬於分配組,並在短暫的集群並行執行它們。加快處理速度,我們使用Scala並行集合,允許我們在並行運行作業司機的核心節點的數量。因為不同的工作是處理不同數量的數據,運行一次16或32工作提供平等和完整的集群的CPU利用率。這個設置允許我們跑到1000年變化緩慢的表在一個25節點集群,包括附加和合並成銅和銀層foreachBatch內部API。

數據集市與磚SQL

我們有一個應用程序,業務用戶定義基於sql的數據轉換,他們想要存儲數據集市。我們把基本SQL和處理的執行和維護表。這個應用程序必須24 x7可用,即使我們不積極運行任何東西。我們喜歡磚,但不是激動對閑置支付集群互動利率計算。輸入磚的SQL。這個解決方案、SQL端點暴露給了我們一個更有吸引力的價格點和一個簡單的JDBC連接我們的麵向用戶的SQL應用程序。我們現在有600個數據集市和lakehouse越來越在生產。

總結

我們的工程團隊Asurion實現大規模lakehouse架構,包括結構化流火花、三角洲湖和自動加載程序。在即將到來的博文中,我們將討論我們如何遇到和解決問題相關的擴展我們的解決方案,以滿足我們的需要。

免費試著磚
看到所有公司博客上的帖子
Baidu
map