取消
顯示的結果
而不是尋找
你的意思是:

如何分區修剪工作並入聲明嗎?

ghofigjong
新的因素

我有一個差值表,分區的日期和月份。我想合並數據,這在所有三個分區列+一個額外的列(ID)。我的merge語句如下:

合並成三角洲。<路徑δ表> oldData oldData上使用df newData。年= ' 2023 '和oldData。月=“10”和oldData。一天=“12”和oldData.clientid = newData。clientid當匹配然後刪除

當我做一個解釋在這個查詢我得到這個計劃:

= = = =物理計劃執行MergeIntoCommandEdge + - MergeIntoCommandEdge SubqueryAlias newData, SubqueryAlias oldData,δ(version = 4,……(((# 3761220 = 2023年)和# 3761221 = 10)(月)和((# 3761222 = 12天)和(clientid # 3761212 = clientid # 3761212)))

這個查詢運行很長一段時間考慮我認為數據我想過程是小(小於1 m)。還在此基礎上鏈接我應該看到某種提到物理分區的計劃,但我不喜歡。任何想法為什麼看起來我的merge語句不是執行merge語句時使用分區?

1接受解決方案

接受的解決方案

匿名
不適用

@Joceph莫雷諾:根據你提供的信息,看來你指定分區鍵在merge語句的條件。然而,您應該使用分區列在merge語句的使用條款。

Csn檢查以下是否適合你嗎?

合並成三角洲。<路徑δ表> oldData使用(SELECT *從df = =“10”和“2023”和月天= 12)newData oldData。clientid = newData。clientid當匹配然後刪除;

在這個例子中,分區列(年、月、日)使用子查詢中使用條款來過濾數據被合並。不包括分區列條件,因為他們已經被用來過濾數據。相反,clientid列用於新舊之間的條件相匹配的記錄數據。使用這種方法,合並操作應隻適用於包含篩選條件相匹配的數據分區的使用條款,這將提高性能。

請讓我們知道這有幫助。

在原帖子查看解決方案

2回答2

匿名
不適用

@Joceph莫雷諾:根據你提供的信息,看來你指定分區鍵在merge語句的條件。然而,您應該使用分區列在merge語句的使用條款。

Csn檢查以下是否適合你嗎?

合並成三角洲。<路徑δ表> oldData使用(SELECT *從df = =“10”和“2023”和月天= 12)newData oldData。clientid = newData。clientid當匹配然後刪除;

在這個例子中,分區列(年、月、日)使用子查詢中使用條款來過濾數據被合並。不包括分區列條件,因為他們已經被用來過濾數據。相反,clientid列用於新舊之間的條件相匹配的記錄數據。使用這種方法,合並操作應隻適用於包含篩選條件相匹配的數據分區的使用條款,這將提高性能。

請讓我們知道這有幫助。

Umesh_S
新的貢獻者二世

不是建議想法隻過濾輸入dataframe(導致較小的數據量匹配整個三角洲表),而不是刪除三角洲表相關分區掃描?

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map