全部產品
Search
文件中心

Cloud Monitor:dedup-exact(精確去重)

更新時間:May 01, 2026

dedup-exact 節點對指定欄位進行精確匹配去重,完全相同的文本僅保留最長的一條。計算代價低,適合作為 Pipeline 去重管道的第一道工序。

功能說明

dedup-exact 節點按 field 指定的欄位做精確匹配:文本完全相同的記錄歸為一組,每組僅保留文本最長(資訊量最大)的一條。

精確去重的計算開銷在所有去重節點中最低,建議在 Pipeline 中優先執行,再接近似去重語義去重逐級收斂資料量。

適用情境:

  • 日誌或資料擷取中產生的完全重複文本條目。

  • 重複提交、重複推送導致的冗餘記錄。

  • 作為近似去重或語義去重前的預先處理步驟,降低後續節點的資料量與計算開銷。

節點配置

在 Pipeline JSON 中添加 dedup-exact 節點,配置樣本如下。

{
  "id": "node_1",
  "type": "dedup-exact",
  "parameters": {
    "field": "<欄位名>",
    "output": "<輸出資料行列表>",
    "global": true,
    "workspace": "<工作空間>",
    "dataset": "<資料集>"
  }
}

參數說明

參數

類型

必填

預設值

說明

field

String

去重依據的欄位名,須為文本類型

output

String

*

輸出資料行,多列以英文逗號分隔。*(預設)保留全部列含擴充列;指定時僅輸出資料行出的列

global

Boolean

false

是否開啟全域去重(跨批次與 Dataset 做增量去重)

workspace

String

條件必填

Dataset 所在工作空間,globaltrue 時必填

dataset

String

條件必填

Dataset 名稱,globaltrue 時必填

輸入與輸出

輸入要求

  • 上遊節點輸出的任意列資料。

  • 須包含 field 指定的欄位,且為文本類型。

輸出資料行

列名

類型

來源

說明

output 控制列

--

透傳/新增

* 保留全部列(含擴充列);指定時僅輸出資料行出列

__dedup_hash

bigint

新增

文本指紋值,標識文本唯一性

__dedup_weight

integer

新增

文本長度,去重時保留最長文本

__dedup_rnk

integer

新增

組內排名(去重後恒為 1)

行數變化

M -> N(M >= N)。完全相同的文本彙總為一條,輸出行數小於等於輸入行數。

效果預覽

處理前(5 條):

question

input

output

什麼是機器學習?

請解釋

機器學習是人工智慧的一個分支...

什麼是機器學習?

請詳細解釋一下

機器學習(ML)是一種通過資料訓練模型...

如何學習Python?

入門指南

推薦從官方教程開始...

什麼是深度學習?

簡述

深度學習是機器學習的子集...

如何學習Python?

初學者

建議先學基礎文法...

處理後(3 條,field = "question"):

question

input

output

__dedup_hash

__dedup_weight

__dedup_rnk

什麼是機器學習?

請詳細解釋一下

機器學習(ML)是一種通過資料訓練模型...

8832749102

14

1

如何學習Python?

入門指南

推薦從官方教程開始...

5561023847

8

1

什麼是深度學習?

簡述

深度學習是機器學習的子集...

3347891256

7

1

兩組 question 完全相同的記錄各保留一條(取文本最長者),5 條資料縮減為 3 條。

使用樣本

批內精確去重

對當前批次資料按 question 欄位去重,保留全部列。

{
  "id": "n2",
  "type": "dedup-exact",
  "parameters": {
    "field": "question"
  }
}

全域精確去重

在批內去重基礎上,額外與 Dataset 歷史資料做精確比對,僅保留全新記錄。

{
  "id": "n2",
  "type": "dedup-exact",
  "parameters": {
    "field": "question",
    "global": true,
    "workspace": "my-ws",
    "dataset": "my-ds"
  }
}

指定輸出資料行

僅輸出 questionanswermodel 三列,丟棄其餘列。

{
  "id": "n2",
  "type": "dedup-exact",
  "parameters": {
    "field": "question",
    "output": "question,answer,model"
  }
}

管道組合(精確 + 近似級聯)

先精確去重消除完全相同項,再接近似去重消除微小差異項。

{
  "nodes": [
    { "id": "n1", "type": "project", "parameters": { "question": "a", "input": "b", "output": "c" } },
    { "id": "n2", "type": "dedup-exact", "parameters": { "field": "question" } },
    { "id": "n3", "type": "dedup-fuzzy", "parameters": { "field": "question", "threshold": "3" } }
  ]
}

使用建議與邊界行為

使用建議

  • 推薦管道順序:dedup-exact -> dedup-fuzzy -> dedup-semantic,逐級收斂資料量。

  • 全域去重(global = true)適用於增量入庫情境,確保 Dataset 中無重複資料。

  • 多欄位去重(如同時對 questionoutput 去重)時,拆分為多個 dedup-exact 節點串聯。

  • 確保 field 欄位有實際常值內容,Null 字元串可能導致意外保留。

重要

NULL 值的行不參與去重且不出現在輸出中。如需保留 NULL 行,請在上遊節點先做 NULL 值處理。

邊界與異常

情境

行為

field 缺失

校正失敗

field 指定的欄位不存在

運行時報錯

field 欄位值為 NULL

該行不參與去重,不出現在輸出中

globaltrue 但缺少 workspacedataset

校正失敗

Dataset 不存在或不可達

運行時報錯

輸入資料為空白

正常返回空結果集