n8n 移除重複項(Remove Duplicates)(11) 跨執行去重實戰:Keep 條件、Scope、History Size 一次到位

當你的流程是定期跑、連續吃資料(RSS 匯入、CRM 同步、批次信件…),最怕「上一輪處理過的東西又來一次」。移除重複項節點(Remove Duplicates)的「移除在先前執行中處理過的項」模式,能把已處理的鍵值記起來,下一輪進來就直接剔除,或只保留更晚/更大/全新的那一筆。你可以指定:

  • Keep Items Where
    • 值是新的(完全沒見過的鍵才保留)
    • 值高於任何先前值(適合數值型增量,如版本、分數)
    • 值是晚於任何先前日期的日期(適合時間戳遞增)
  • Value to Dedupe On:對應的比對欄位(ID、數值或日期)
  • Scope:記憶只給此節點(Node)或整個工作流共享(Workflow)
  • History Size:要保留多少歷史鍵值用來比對

設定好這四件事,你的工作流就具備跨執行冪等能力:不重複、不漏接、可預期。

data filtering process with some items passing through a filter while others are blocked

移除重複項節點 (Remove Duplicates Node) 操作模式

移除當前輸入中重複的項 (Remove Items Repeated Within Current Input)

識別並移除當前輸入中在所有字段或字段子集中的重複項

移除在先前執行中處理過的項 (Remove Items Processed in Previous Executions)

將當前輸入中的項與先前執行中的項進行比較並移除重複項

清除去重歷史 (Clear Deduplication History)

清除先前執行中項的記憶

根據您的需求選擇適當的操作模式,可以有效地管理和處理重複數據。

timeline showing data processing with previous executions being compared to current data

移除在先前執行中處理過的項 (Remove Items Processed in Previous Executions)

當您將「操作」字段設置為「移除在先前執行中處理過的項」時,移除重複項節點會將當前輸入中的項與先前執行中的項進行比較。

這種操作模式特別適用於需要跨多次執行維護數據唯一性的場景,例如定期導入數據時避免重複記錄。

移除在先前執行中處理過的項參數

保留項目條件 (Keep Items Where)

選擇 n8n 如何決定保留哪些項:

  • 值是新的 (Value Is New)
  • 值高於任何先前值 (Value Is Higher than Any Previous Value)
  • 值是晚於任何先前日期的日期 (Value Is a Date Later than Any Previous Date)

去重值 (Value to Dedupe On)

要比較的輸入字段或字段。您為「保留項目條件」參數選擇的選項決定了您需要的確切格式

移除在先前執行中處理過的項選項

範圍 (Scope)

設置 n8n 如何存儲和使用去重數據進行比較:

  • 節點 (Node):(默認)獨立於工作流中的其他移除重複項實例存儲此節點的數據
  • 工作流 (Workflow):在工作流級別存儲去重數據,與設置為使用「工作流」範圍的任何其他移除重複項節點共享去重數據

歷史大小 (History Size)

n8n 存儲以跟踪跨執行重複項的項數。「範圍」選項的值決定此歷史大小是特定於此單個移除重複項節點實例還是與工作流中的其他實例共享

Data streams being filtered and reduced, showing a large funnel narrowing down to a small output, symbolizing data limitation and control

移除重複項節點 (Remove Duplicates Node) 應用場景

客戶數據清理

識別並移除客戶數據庫中的重複記錄,確保每個客戶只有一個記錄

電子郵件營銷

確保同一收件人不會在短時間內收到多封相同的電子郵件

數據導入

在定期導入數據時,防止已處理的記錄被重複導入

移除重複項節點在處理大型數據集時特別有價值,可以顯著提高數據質量和處理效率。

總結

  • 先選正確的 Keep 規則
    • 全新值→ 去重鍵不重複即可;
    • 更高值→ 確保欄位是數字,並先做型別正規化;
    • 更晚日期→ 用標準時間(ISO/UTC),避免時區誤差。
  • 挑對去重鍵(Value to Dedupe On):用能穩定唯一或單調遞增的欄位(如 idupdated_at)。必要時先在上游組合複合鍵(例如 source + external_id)。
  • 規劃記憶邊界
    • Scope=Node:各節點各自管理;
    • Scope=Workflow:多節點/多來源共享同一套去重庫。
    • History Size 依資料量與回頭窗長度設定,避免過小導致誤放行,過大造成不必要佔用。
  • 流程小心法
    • 需要只留最新/最大的一筆時,可先 Sort 再去重,結果更可控。
    • 規則或鍵值設計變更時,先用「清除去重歷史」重置,再重新啟用流程。
    • 在要留痕的流程,加上日誌/計數節點,觀察「被剔除與保留」比例,便於驗證。
  • 典型場景:客戶資料清理、電子報防重發、定期資料匯入去重——凡是需要跨多次執行維持唯一性的地方,都該上這一關。

把跨執行去重設好,你的 n8n 工作流就能長期運行而不積累重複雜訊,維持數據品質與行為一致性。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端