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

錯誤當使用DLT SCD 1型

AB_MN
新的貢獻者三世

我正在努力加載數據使用DLT和SCD 1,我跑到錯誤消息“檢測到源表中的數據更新版本x。這是目前不支持。如果你想忽略更新,設置選項“ignoreChanges”到“真正的”。

我有一個命名的DLT憲章》和另一個分支。憲章分支表有關係,所以我加入charter_key管道中查找。數據的初始負載運行很好,但第二天,當我運行增量部分,當我得到錯誤消息。這個數據是相當靜態的,所以沒有數據實際上改變了初始載荷和增量加載。然而,在憲章DLT創建表,__apply_changes_storage_charter __UpsertVersion有最近的文件名稱和一個__Timestamp更新。是說它的地方發現一個改變?

圖像我的代碼從下麵的DLT管道。_bronze表隻是原始的鑲花的文件並把它進臨時現場直播表,所以我不包括代碼。

創建或更新直播表憲章(charter_key長整型數字生成的總是作為身份(從1增加1),charter_number int, charter_name字符串,charter_address1字符串,charter_address2字符串,charter_zip_code字符串)應用到生活變化。從流憲章(LIVE.charter_bronze)鍵(charter_number)序列通過file_name列*除了(file_name)創建或刷新臨時現場直播表branch_stage選擇c。charter_key b。branch_number b。branch_name b。branch_address1 b。branch_address2 b。branch_zip_code b。file_name從流(LIVE.charter) c內連接流(LIVE.branch_bronze) b c。charter_number = b。charter_number創建或刷新流住表分支(branch_key長整型數字生成的總是作為身份(從1增加1),charter_key bigint, branch_number int, branch_name字符串,branch_address1字符串,branch_address2字符串,branch_zip_code字符串)應用到生活變化。分支的流(LIVE.branch_stage)鍵(charter_key branch_number)序列通過file_name列*除了(file_name)

我讀過,它將文件添加,但隨後SCD究竟是如何工作的呢?正在我有這兩個設置為true:

pipelines.applyChangesPreviewEnabled

spark.databricks.delta.schema.autoMerge.enabled

任何幫助都是感激。

5回複5

Hubert_Dudek1
尊敬的貢獻者三世

問題是,你加入表的表由應用變化和理論上可以更新記錄。

AB_MN
新的貢獻者三世

@Hubert杜德克,我的思想以及我開始鑽研它。你知道推薦的解決方案是在試圖使用下遊應用更改表的表嗎?

Hubert_Dudek1
尊敬的貢獻者三世

當表發表在metastore Python(目標選擇管道)我用spark.read.table()加入的dlt表,所以我打賭在SQL是類似的:

從流(LIVE.branch_bronze) b內連接TARGET_DB。憲章c

AB_MN
新的貢獻者三世

由於@Hubert杜德克。之前我在同樣的位置,但是我不能把它引用相同的筆記本,甚至同一管道。如果我把它在相同的筆記本那麼target_db以來在初始加載失敗。憲章表不存在。如果我把它們放在不同的筆記本但相同的管道則沒有發現的依賴。所以我必須有多個管道,我希望避免的。

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

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

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

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

Baidu
map