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

如何激活ignoreChanges三角洲表read_stream生活嗎?

adrianlwn
新的貢獻者三世

大家好,

我用DLT(δ生活表)和我實現的一些變化數據捕獲用於重複數據刪除。現在我創建一個下遊表讀取DLT作為流(dlt.read_stream(“<表>”))。

我一直收到這個錯誤:

>檢測數據更新(例如部分- 00000 - 6723832 - a - b8ca - 4表達a20 b576 - d69bd5e42652 c000.snappy.parquet)在源表版本11。這是目前不支持。如果你想忽略更新,設置選項“ignoreChanges”到“真正的”。如果你想反映的數據更新,請重啟該查詢以全新的關卡目錄。

我試過這些選項激活配置:

@dlt。視圖(name = " _wp_strategies_dup "評論=“此表包含測試策略表”,spark_conf = {“ignoreChanges”: "真正的"})
spark.readStream.option (“ignoreChanges”,“真正的”).table (“LIVE.wp_parameters”)
dlt.option (“ignoreChanges”,“真正的”).read_stream (“wp_parameters”)

到目前為止沒有任何工作。是因為與DLT這個配置是不可能的?或者是因為有另一種方式設置此配置?

18日回複18

TH
新的貢獻者二世

嗨@Swapnil Kamle,

我們還實現變化數據捕獲dlt重複數據刪除的目的。我們用SQL使用應用更改命令。你的解決方案如何解決更新在這種情況下的問題?你介意解釋嗎?

謝謝

SRK
貢獻者三世

你好,

如果你看我的代碼共享的,這是我使用append先編寫Json的數據然後我使用自動裝卸機讀取Json文件。

df_table.write.mode(“追加”)。json (“/ mnt / temp_table /員工”,ignoreNullFields = False)

所以,這隻是附加的數據沒有更新,這樣幫助我解決相關問題的更新。

謝謝

TH
新的貢獻者二世

謝謝你的回答。但你沒有做變化數據捕獲(用於重複數據刪除)最初問道。我在尋找一個解決方案,還讓我做重複數據刪除…

gopinath
新的貢獻者二世

在DLT read_stream,我們不能使用ignoreChanges / ignoreDeletes。這些配置有助於避免失敗,但它實際上是忽視了對上遊操作完成。所以你需要手動執行刪除或更新在下遊。(火花結構化流僅支持越來越多/附加來源)。

如果你有使用情況下,上遊可以有更新/刪除你想通過這些操作自動下遊您可以遵循以下建議DLT架構。在這兩個設置使用生活表從上遊有助於處理更新/刪除。

建築1:

您可以使用生活表處理這個問題。使用的情況下,您在青銅上執行更新/刪除表來反映這些銀表中刪除/更新,您可以創建銀表作為生活表

參考下麵的圖:

圖像

架構2:

其他方式來處理更新/刪除和通過下遊是可以使用的DLT疾病預防控製中心。疾控中心建築看起來像下麵。

DLT青銅表- - > DLT銀使用CDC apply_changes——> DLT金住表

這裏銀表選擇改變數據從銅(更新或刪除)並做必要的操作。

在這兩個設置,如果你刪除/更新任何記錄在銅表GDPR等用例,這刪除/更新會自動流向銀表(您不需要手動刪除/更新從銀,然後金)。現在黃金將選擇這個銀表並執行刷新。(生活表)。

還DLT有著特殊的功能enžyme。Enžyme有助於避免完整re-computation現場表和提高性能。

enžyme是什麼?

比現有的方法完全驗算生活表中的所有行,甚至行不需要改變——enžyme可能顯著降低資源利用率和提高整體管道延遲僅更新必要的生活表中的行實現結果。

更多細節enžyme您可以參考這個博客://www.eheci.com/blog/2022/06/29/delta-live-tables-announces-new-capabilities-and-performa..。

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

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

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

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

Baidu
map