一如既往,最短的回答是“看情況。”
首先,它應該清楚的重複數據本身並不是一個大問題——存儲在lakehouse超級便宜!
問題是更多的在維護之間的權衡,重複的數據和用戶的好處得到,從數據的預先計算更快的檢索。
它取決於什麼?
- 數據新鮮度需求——當我查詢這些數據,有多新鮮?
- 性能需求=當我查詢這些數據,我需要多快的結果嗎?
- 數據查詢和檢索模式=當我查詢這些數據,我想找海裏撈針嗎?我隻是試圖讓“大局”?或介於兩者之間?
- 成本管理需求=正如老話所說,“天下沒有免費的午餐。”Pushing freshness and performance requirements higher also drives up the underlying cost of maintaining materialized views.
根據這些問題的答案會告訴你是否最好支持視圖和物化視圖與三角洲生活表,產生一種特殊的自更新物化視圖(類似於一個*索引視圖*雪花在SQL Server或物化視圖)。
一些一般規則:
- 越頻繁的底層數據源更新(即您的數據新鮮度的要求是製約上遊),理由越多是昂貴的連接和查詢轉換成物化視圖。
- 同樣地,實際數據,作為變化的一部分,理由越多使用物化視圖和DLT因為這些增量數據點可以(理智地!)維護。
- 再一次,如果它是好的對你的“定向正確”或有一些數據不精確,然後物化視圖的性能優勢更大。
- 最後,如果一個特定的查詢模式主導你的整體使用(想想80/20規則),有更多的理由向用戶提供物化視圖的結果。
不管怎樣,這些選擇時的重要考慮事項是否lakehouse實現視圖。