0
存儲事務時,通常會有幾個不同的密鑰用於過濾不同用例的查詢。例如。卡ID,帳號,客戶沒有,日期針對多個密鑰的星火獸獸分區策略
該交易可以按日期進行分配爲:
jdbcDF.write.format("orc").partitionBy("TX_Date").save("transactions")
現在我可以爲特定的幾個月迅速聚集交易,但如果我想要聚合的交易基礎在例如客戶沒有?
將事務ID存儲在每個事務行中,並保存由最常見的密鑰分區的單獨查找表(鏈接表)是否更好? 例如以下查找表:
卡ID | TransID
客戶編號| TransID
帳號| TransID
TX_Date | TransID
這是一個反模式的火花& orc開發還是有更好的方法來「索引」不同的鍵?從docs(在ORC-文件我已使用行索引)
partitionBy通過該鍵將數據分割到文件夾中。這意味着,如果我搜索特定的範圍或特定的按鍵,則即使沒有讀取文件夾中的orc文件,spark也會跳過所有其他按鍵。 現在的問題是,我可以通過按照建議創建查找表來實現由多個鍵分區的數據。或者更具體地說它會提高性能。 – user979899
由於我在答案中寫了什麼,你可能不會得到速度提升 – raam86