Skip to content

比對、合併與存續規則

另有 28 種語言版本

English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

Two nearly identical brass keys side by side on a locksmith's bench, a loupe and a padlock beside them to compare the cuts.
圖片由 AI 生成

第 3 個模組,共 6 個,屬於 Data Architect 課程第 6 章主資料與身分。每個模組都可以單獨閱讀。 上一篇:主控資料的四種方式 · 下一篇:地圖不是決定

**本模組回答的問題:**如何找出重複,並決定哪些值存活下來?

Salesforce 裡有兩個連絡人:Daniel Reyes,達拉斯,d.reyes@example.com;以及 Dan Reyes,達拉斯,d.reyes@example.com。是同一個人嗎?多半是。我們應該合併它們嗎?那是另一個問題。而如果合併,哪個電話號碼、地址和職位存活下來?這又是另一個問題。架構師需要把三個決定分開:

  • **比對:**這些記錄代表的是同一樣東西嗎?
  • **合併:**它們應該變成一條記錄嗎?
  • **存續規則:**如果我們合併資料,哪些值勝出?

第 3 章講過 Salesforce 的重複規則和比對規則,所以我不再重複機制。架構問題是:**什麼證據強到足以說這些可能是同一個?**對一個人來說:電子郵件、電話、姓名加地址、一個客戶編號,或者某種組合。對一家公司來說:法定名稱、稅號、ERP 客戶 ID、地址、網站域名。問題不是「Salesforce 能比較這些欄位嗎?」,而是「什麼組合能給我們足夠的信心去採取行動?」

而且完全一致也不等於確定。一個共用的電子郵件是一個強訊號,但不是證明:家人會共用地址,企業會用 purchasing@company.com,電話號碼屬於整個家庭,姓名和地址都不唯一,即使是很強的識別符號也會被重複使用、輸錯或回收。比對不是字串比較,而是一個關於身分的宣告。

講到這裡時,我會換一個領域。在汽車營銷資料中,我們錯誤地認定兩個 Daniel Reyes 是同一個人,結果錯誤的那個人收到了一份 SUV 的優惠。不好,但風險很低。現在在醫療資料中犯同樣的錯誤比對:兩個不同的人的病史被合併在一起。同樣的比對錯誤,完全不同的後果。這就是為什麼不存在一個通用的「好」比對閾值。有時更大的風險是漏掉一個比對;有時是把兩個不是同一個人的人合併在一起。在錯誤比對代價高昂的地方,我會有意少比對。

比對也取決於資料的形態。AZ、Arizona、Ariz.;6025550198、(602) 555-0198、+1 602 555 0198。協調讓值變得可以比較:標準格式、規範化的縮寫、對映後的程式碼。然後才去比對。只有在知道記錄屬於一起之後,才把它們的資訊整合成一個表示。協調不是比對,比對不是合併,而整合也不一定是主控。

身分決定是分階段做出的 四個階段,從左到右編號,每個階段回答自己的問題。一,協調:我們能比較它們嗎?標準格式、規範化的縮寫和對映後的代碼,讓 AZ、Arizona 和 Ariz. 變成同一個值。二,比對:這些是同一樣東西嗎?衡量證據,判定相符、不相符,或由人工審查,例如電子郵件相同的 Daniel Reyes 和 Dan Reyes。三,關聯或合併:它們應該成為一筆記錄嗎?關聯表示它們屬於一起;合併表示它們現在是一筆了;例如,關聯兩套舊系統的記錄,合併昨天的重複記錄。四,存續規則:哪些值保留下來?在來源不一致時挑選一個值,而且每條規則都有一個所有者;例如,ERP 的信用額度勝出。下方寫著:原始記錄進去,一個檢視出來;協調不是比對,比對不是合併。 1 協調 我們能比較它們嗎? 做什麼 標準格式 規範化的縮寫 對映後的代碼 範例 AZ、Arizona、Ariz. 變成同一個值 2 比對 這些是同一樣東西嗎? 做什麼 衡量證據 相符、不相符,或由人工審查 範例 Daniel Reyes 和 Dan Reyes,同一個電子郵件 3 關聯或合併 它們應該成為一筆記錄嗎? 做什麼 關聯:它們屬於一起 合併:它們現在是一筆了 範例 關聯兩套舊系統的記錄 合併昨天的重複記錄 4 存續規則 哪些值保留下來? 做什麼 在來源不一致時挑選一個值 每條規則都有一個所有者 範例 ERP 的信用額度勝出 原始記錄進去,一個檢視出來。協調不是比對,比對不是合併。 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

身分決定是分階段做出的。

這是本章最重要的區別之一。我們確信來自兩個舊系統的兩條客戶記錄是同一家公司。我們必須合併它們嗎?不必。每一條可能都帶有一個源系統的身分;歷史交易可能分別指向它們;稽核人員可能需要這條軌跡;我們可能還在遷移中;我們可能需要確切知道舊系統當時是怎麼說的。知道兩條記錄是同一樣東西,並不會迫使我們把它們合二為一。我們可以把它們關聯起來,而這往往是更安全的架構。

我的合併規則:有明確的勝出者

Section titled “我的合併規則:有明確的勝出者 ”

我的立場是:**只有當有明確的勝出者、而且重複記錄裡沒有任何你需要保留的東西時,才合併。**一位銷售代表昨天建立了一個重複的客戶;原來那條顯然是已經確立的記錄。很好的合併候選。現在換一種情況:我們從一個遺留系統匯入了客戶,帶著它自己的 ID、較舊的值,也許還有與之相關的交易或稽核要求。我就會謹慎得多。**當你可能需要回溯到較舊的值時,保留來自外部載入的重複記錄,**因為合併會毀掉那份歷史。

關聯說的是「這些屬於一起」。合併說的是「這些現在是一個了」,而在 Salesforce 上這是一次真正的改變。對於客戶,你選擇最多三條記錄,並選其中一條作為主記錄;你挑選要保留其他記錄的哪些欄位值,而隱藏欄位和只讀欄位來自主記錄。合併後的記錄保留最早那條記錄的建立人和建立日期,不管哪條是主記錄。**非主記錄會進入資源回收筒。**活動等相關記錄會移到合併後的記錄上,但有例外。在 Lightning 中,合併作用於你的重複規則檢測到的重複記錄。而對於個人帳戶,**聯絡點物件不支援合併:**它們的關係會丟失(Considerations for Merging Duplicate Accounts (opens in a new tab);Merge Duplicate Accounts in Lightning Experience (opens in a new tab),英文)。

考點。掌握 Salesforce 客戶合併做了什麼:最多三條記錄;一條主記錄(principal),保留它的隱藏欄位和只讀欄位;保留最早那條記錄的建立人和建立日期(Created By、Created Date),無論哪條是主記錄;其他記錄進入資源回收筒;對於個人帳戶,聯絡點物件不會被合併。

你不需要了解每一個邊緣情況才能做出決定。你需要的是後果:合併之後,你最初擁有的那些獨立記錄就沒了。第 1 章的可逆性測試適用:關聯很容易撤銷;合併則不然。而且一個客戶很少是孤立存在的:連絡人、案例、商機、檔案、同意記錄、自訂子記錄、外部 ID、整合引用。在合併父記錄之前,先弄清楚掛在它上面的一切會怎樣。當重複記錄隨一次載入進來時,我會就子記錄給團隊三個選擇:把它們移到存活的記錄上;如果沒人需要,乾脆不載入;或者把它們留在另一條記錄上,並標記為不活躍,讓它們仍然能在搜尋中出現。第一種正是合併替你做的事。另外兩種保留了痕跡,而這往往正是關鍵所在。

記錄屬於一起,但它們的值不一致:Salesforce 和計費系統說 602-555-0100,ERP 說 602-555-0188。存續規則挑選勝出者。常見的有:最新(最近的一次更新)、最常見(大多數來源一致認同的值)、來源優先順序(相信這個來源勝過那個來源),以及它們的組合、閾值、權重和特定於業務的規則。沒有哪一條本身就是對的。

「最新」不是一個技術設定,而是一個關於信任的宣告:**當系統之間不一致時,最新的值更有可能是正確的。**對於手機號碼來說這很合理。對於法定名稱來說就很糟糕:如果 ERP 擁有它,我才不在乎五分鐘前有人改了 Salesforce 裡的副本。「最常見」假定一致就是證據,但三份過時的下游副本並不能以多勝少地壓過記錄來源。「來源優先順序」直截了當地說:**我們更信任這個來源。所以存續規則屬於架構和治理,而且每一條規則都需要一個所有者。**是誰決定最新的地址勝出,或者 ERP 的優先順序高於 Salesforce?

如果模組 1 的權威系統圖已經說明 ERP 擁有信用額度,存續規則就很簡單:ERP 勝出,不需要任何巧妙的評分。難的情況是那些權威是共用的、不清晰的,或者基於證據而不是某個單一主控方的屬性。那才是存續規則發揮作用的地方。

存續規則是關於信任的宣告 同一個客戶的三條源記錄互不一致。Salesforce:電話 555-0100,兩年前修改;地址 12 Oak Street;信用額度 50,000,是副本。計費系統:電話 555-0100,兩年前修改;地址 12 Oak Street;信用額度 45,000,是副本。ERP:電話 555-0188,上週修改;地址 40 Elm Avenue;信用額度 60,000,是主控值。存活的值,每個欄位一條規則:電話按最新,555-0188;地址按最常見,12 Oak Street;信用額度以 ERP 優先,60,000。下方寫著:每條規則都說明我們信任誰,而每條規則都需要一個所有者。 Salesforce 一個客戶 電話 555-0100,2 年前修改 地址 12 Oak Street 信用額度 50,000(副本) 計費系統 同一個客戶 電話 555-0100,2 年前修改 地址 12 Oak Street 信用額度 45,000(副本) ERP 同一個客戶 電話 555-0188,上週修改 地址 40 Elm Avenue 信用額度 60,000(主控) 存活的值 每個欄位一條規則 電話:最新 555-0188 地址:最常見 12 Oak Street 信用額度:ERP 優先 60,000 每條規則都說明我們信任誰,而每條規則都需要一個所有者。 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

存續規則是關於信任的宣告。

有些比對會權衡證據:客戶 ID 一致是非常強的證據,電子郵件一致是強證據,電話是中等,相似的姓名是弱證據,相似的地址是輔助證據。高於某個分數,算作比對;低於另一個分數,算作不同;介於兩者之間,由人來稽核。演算法不是重點。**閾值就是你對錯誤的容忍度,**而它應該跟隨業務風險。當證據提出了問題卻沒有給出定論時,不要假裝系統知道答案。把它轉給人稽核。這會慢一些,沒關係:自動化如果信心十足地合併了兩個不同的客戶,就毫無價值了。

資料豐富又帶來了一個來源問題。郵政參考資料、行業程式碼、企業資訊、外部風險評分能改善主資料,但每個值從哪裡來,有多可靠、多新,我們可以把它用於這個目的嗎,它是否包含個人資料?來自資料供應商的「行業 = 運輸」,和客戶親口告訴你的,不是一回事。要保留這種區別。

兩個零售合作夥伴都向 John Smith,123 Main Street,哥倫布,配送貨物,電話號碼也相同。是同一個人嗎?多半是。Steve Trucking 應該把他們統一起來嗎?記住他們是誰的:這些收貨人是合作夥伴的客戶,而一個合作夥伴絕不能看到另一個合作夥伴的。一次錯誤比對會讓資料跨越那條邊界混在一起。突然之間,這就不再是一個資料品質問題,而是一個隱私和隔離問題,而這正是為什麼閾值取決於後果。檢查點會做出決定。現在請記住:不要讓比對上的便利去替你做業務決定。

有時保留這份混亂本身就能告訴你一些東西。這條記錄來自舊系統,那條來自 Salesforce,這條來自被收購的公司;它們的 ID、它們的歷史,以及它們彼此不一致這個事實,可能都很重要。乾淨的資料很有價值。可追溯性也是。由架構師來決定,對於這種用途,哪個更重要。

**考試之外:AI 改變了什麼。**過去,一次糟糕的比對意味著兩封電子郵件或一份被拆開的服務歷史。現在,一個代理程式找到它認為的那個客戶,然後拉出他們的訂單、案例、地址和備註。如果兩個人被錯誤地比對了,它就可能把一個人的資訊用在另一個人身上。比對決定已經成為安全邊界的一部分,而在混合代價高昂的地方,更嚴格的比對是更安全的設計。

  • 在每個資料領域中,什麼證據足以標記一個可能的重複。
  • 一個確認的比對是變成合並、關聯,還是交給人稽核。
  • 值不一致時哪些值存活,以及誰擁有每一條存續規則。
  • 相對於漏掉比對的風險,業務能容忍多大的錯誤比對風險。
  • 在任何合併之前,必須保留哪些源身分、歷史和相關記錄。

謹慎地比對,有意識地合併,有目的地選擇存續規則。一條幹淨的客戶記錄,如果是靠合併錯誤的客戶得來的,就沒什麼價值。