我正在努力加載數據使用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
任何幫助都是感激。