Netflix如何使用bulldozer從資料倉儲批處理資料轉移到鍵值儲存?
Netflix擁有超過1.95億使用者,每天生成數PB的資料。資料科學家和工程師從我們的訂戶和影片中收集這些資料,並實施資料分析模型以發現客戶行為,以最大程度地提高使用者滿意度。
通常,資料科學家和工程師使用大資料計算技術(例如Spark或Presto)編寫Extract-Transform-Load(ETL)作業和管道,以處理此資料並定期計算成員或影片的關鍵資訊。處理後的資料通常儲存為AWS S3中的資料倉儲表。Iceberg在Netflix中作為資料倉儲表格式被廣泛採用,該格式解決了Hive表的許多可用性和效能問題。
在Netflix,我們還廣泛採用強調關注點分離的微服務架構。這些服務中的許多服務通常都需要對定期生成的細粒度資料進行快速查詢。例如,為了增強我們的使用者體驗,一個線上應用程式獲取訂戶的首選項資料來推薦電影和電視節目。
但是資料倉儲的目標不是為了以低延遲服務於微服務的點請求。
因此,我們必須有效地將資料從資料倉儲轉移到全域性,低延遲和高度可靠的鍵值儲存中。
Bulldozer是一個自助式資料平臺,可將資料從資料倉儲表高效地批次轉移到鍵值儲存中。它利用Netflix Scheduler來排程Bulldozer作業。Netflix Scheduler建立在Meson之上,Meson是一個通用的工作流程編排和計劃框架,用於執行和管理資料工作流程的生命週期。Bulldozer使資料倉儲表更易於被不同的微服務訪問,並減輕了每個團隊構建自己的解決方案的負擔。圖1顯示了我們如何使用Bulldozer在Netflix上移動資料。
作為將資料移至鍵值儲存的鋪裝路徑,Bulldozer提供了可擴充套件且高效的無程式碼解決方案。使用者只需要在YAML檔案中指定資料來源和目標群集資訊。Bulldozer提供了自動生成protobuf檔案中定義的資料模式的功能。protobuf架構用於Bulldozer和資料使用者對資料進行序列化和反序列化。Bulldozer使用Spark將資料倉儲中的資料讀取到DataFrames中,使用protobuf中定義的架構將每個資料條目轉換為鍵值對,然後將鍵值對分批傳遞到鍵值儲存中。
我們在2020年初將Bulldozer投入生產。目前,Bulldozer每天都將數十億條記錄從資料倉儲轉移到Netflix中的鍵值儲存。這些用例包括我們成員的預測分數資料以幫助改善個性化體驗,用於資料生命週期管理的Airtable和Google Sheets的後設資料,用於訊息傳遞個性化的訊息傳遞建模資料等等。
相關文章
- TIDB儲存TiKV的鍵值對資料TiDB
- 資料儲存(1):從資料儲存看人類文明-資料儲存器發展歷程
- 儲存崩潰導致資料丟失如何處理
- 維度處理-資料倉儲-讀書筆記(四)筆記
- 資料儲存--檔案儲存
- ETL資料倉儲的使用方式
- 如何構建資料倉儲模型?模型
- JavaScript使用localStorage儲存資料JavaScript
- PayPal如何將Teradata資料倉儲遷移到BigQuery實現產品分析
- 資料庫倉庫系列:(一)什麼是資料倉儲,為什麼要資料倉儲資料庫
- 資料成本:雲端儲存成本高嗎如何節省資料儲存成本
- 資料倉儲 - ER模型模型
- 使用PostgreSQL作為資料倉儲 - narratorSQL
- TiDB資料儲存TiDB
- 資料儲存:CoreData
- iOS 資料儲存iOS
- Netflix實戰指南:規模化時序資料儲存
- Python資料儲存方式有幾種?如何使用?Python
- 資料倉儲之大規模並行處理架構原理NY並行架構
- 資料湖 vs 資料倉儲 vs 資料庫資料庫
- 淺談資料倉儲和大資料大資料
- 資料湖會取代資料倉儲嗎?
- 談談資料湖和資料倉儲
- 資料倉儲應該用什麼方案——資料倉儲實施方案概述
- Kubernetes 資料儲存:從理論到實踐的全面指南
- 什麼是資料倉儲
- 什麼是資料倉儲?
- 資料倉儲經驗概念
- 資料倉儲建模方法論
- 使用資料倉儲BI的6種策略
- 資料倉儲主題域如何劃分
- [數倉]資料倉儲設計方案
- 【儲存資料恢復】NetApp儲存誤刪資料夾的資料恢復案例資料恢復APP
- Flutter持久化儲存之資料庫儲存Flutter持久化資料庫
- 資料儲存(歸檔解檔,沙河儲存)
- 從一條資料說起——InnoDB儲存資料結構資料結構
- 資料湖+資料倉儲 = 資料湖庫架構架構
- 儲存資料之SharedPreference