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

δ住表合並/插入

RLH
新的因素

你好,

我想創建一個基本的DLT管道增量加載。第一次運行完全沒有任何問題。然而當記錄被更新時,管道失敗有以下錯誤:

“流銀沒有致命。發生一個錯誤,因為我們檢測到一個更新或刪除一個或多個源表中的行。流表可能隻使用擴展流源。如果你希望刪除或更新行源表將來,請表silver_Employee轉換為一個生活表而不是現場直播表。為了解決這個問題,執行全表刷新銀。全麵刷新將試圖清除所有數據從表銀,然後加載所有數據流源。在版本2 non-append變化可以找到。操作:寫用戶名(未指定):源表名稱:銅”

的代碼我使用DLT腳本如下:

@dlt。create_table (name = bronze_tablename評論=“原始曆史交易”,路徑= f“{path_target_bronze} /{係統}/{表}”)def bronze_incremental (): df = spark.read.format (csv)。選項(頭= True, inferSchema = True,分隔符=‘;’,ignoreChanges = True) .load (f " {path_source} / ")返回df dlt。= f create_target_table (name = silver_tablename路徑“{path_target_silver} /{係統}/{表}”,)# sequence_by和鑰匙是apply_changes dlt的必填字段。apply_changes(源= bronze_tablename目標= silver_tablename鍵= [“EmpId”], sequence_by =坳(“modified_date”), stored_as_scd_type = 1)

你能請讓我知道如何執行插入或合並?

提前謝謝。

RLH

2回答2

匿名
不適用

@Ram韓:

錯誤信息表明有更新或刪除源表,不支持在流表。流表中數據磚是擴展和任何更新或刪除源表可能導致數據流表中不一致。

為了解決這個問題,您可以執行一個完整的刷新目標表而不是增量加載。同時,你應該將目標表轉換成一個生活表而不是現場直播表如果你期望更新或刪除源表。

你也可以考慮實現變化數據捕獲(CDC)機製來捕獲隻有改變數據從源表和增量地將這些更改應用到目標表。

請確保源表添加隻和沒有更新和刪除完成。

Vidula_Khanna
主持人
主持人

嗨@Ram LH

謝謝你的問題!幫助你更好的,請花一些時間來檢查答案,讓我知道它是否最適合您的需要。

請幫助我們選擇最好的解決方案通過點擊“選擇最佳”如果它。

您的反饋將幫助我們確保我們提供最好的服務給你。謝謝你!

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

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

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

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

Baidu
map