簡體   English   中英

Azure 管道運行失敗時數據工廠上傳數據到數據庫

[英]Azure Data Factory uploads data to database when pipeline run fails

我的 ADF 中運行着一個管道,我從 json 文件中獲取字段並將它們保存到數據庫中的多個表中。 當文件上傳到我的存儲帳戶中的容器時,管道開始運行,運行后文件將被刪除。 手頭的問題是,當管道由於某種原因失敗時,文件不會被刪除(因為它沒有到運行結束),並且由於某種原因,SQL 記錄仍保存到某些表中這意味着我的表被數據塞滿了。 如果管道成功,有什么方法可以只上傳數據?

我沒有看到任何允許我這樣做的選項,並且在問題發生時必須手動解決問題

通常當我們從另一個活動觸發一個活動時,我們使用成功路線。 您還可以在活動失敗時使用 catch 塊來執行其他活動。 請參閱此文檔

因此,萬一某個活動發生故障,請使用此方法執行另一個活動,這將清除您的 SQL 記錄。

添加到@Anupam Chand 的回答中,

沒有直接的方法可以回滾或刪除在當前管道運行中插入的 SQL 表中的記錄。 您應該在 SQL 表中有一些標志或水印列字段來標識在當前運行中插入的記錄。 在流水線活動失敗時,可以在失敗路徑中添加刪除記錄的邏輯。 我試圖重現這一點。 下面是方法。

  • 最初取一個字符串類型的變量,並使用set variable activity 設置它以獲取管道開始執行的時間。

在此處輸入圖像描述

  • 然后添加復制活動。 復制時,將記錄插入SQL表的時間加上。

在此處輸入圖像描述

  • 如果此活動失敗,腳本活動將添加到復制活動的失敗路徑中。

在此處輸入圖像描述

  • 然后添加腳本活動以刪除記錄。 查詢給出為
Delete from tgt_table where Inserted_Datetime >='@{variables('initial_time')}'

通過這種方式,我們可以回滾在管道故障期間部分加載的記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM