0

我有一個dwh收集4個系統,現在它已加入不同的客戶主鍵。 一個實際客戶可能出現在所有4個系統中,或者只有其中一個。 作爲進行業務邏輯查找的最佳解決方案,您會看到什麼? 鏈接是星期,因此常規聯接僅適用於一小部分客戶。 有沒有一個很好的工作流程我可以使用,或者你會怎麼做?結合客戶主鍵

回答

1

我爲一家大型健康保險公司工作,我們最近不得不做一個有點類似的項目。我們有來自不同業務部門的包含會員信息的多個源系統。我們有一個大的成員人口,成員可能在多個系統中。系統中的數據質量如此之高:每個系統可能有也可能沒有有效的SSN,Medicare ID,當前和/或拼寫正確的地址信息,有效的出生日期等。我們的目標是創建一個唯一標識符我們可以與源系統PK配對,以便我們可以在多個系統中唯一標識一個成員。

結果不僅僅是一段代碼或SSIS任務的過程。我們的流程會跟蹤每一位來自我們系統的成員,以及我們識別他們的主要領域(姓名,地址,SSN,Medicare ID等)的快照。在每個版本中,我們添加新的成員,以前還沒有進入我們的系統,並更新歷史記錄表。然後我們通過比較,並試圖找出哪些成員匹配。我們儘可能地嘗試完全匹配(firstname = firstname,lastname = lastname,ssn = ssn),但如果這些匹配失敗,我們必須使用部分匹配系統。我們通常所做的是嘗試將標識符(如SSN或Medicare ID)與部分名稱和地址進行匹配。如果我們沒有有效的SSN或Medicare ID,我們最終會在我們可用的所有字段中使用部分匹配。

該過程有點反覆試驗。在我們第一次發佈之後,用戶發現了同一個成員具有不同ID的所有類型的實例(我們的匹配邏輯錯過了有效匹配),或者顯然不相同的成員具有相同的唯一標識符(我們的匹配邏輯產生了不匹配的匹配)。每次發佈後,我們通常會根據發現的錯誤編寫代碼,並且通常會修復幾乎所有錯誤。我們現在到了一個能夠匹配我們可靠的一切的地步。

就你而言,我猜你沒有任何政府發行的ID或SSN可供你使用。我可能會嘗試直接JOIN您的信息(名稱,送貨地址,帳單地址,電子郵件,信用卡號碼等)。之後,轉到部分匹配。如果我們不能直接穿過JOIN,我們使用所有字段的左4個字符。之後,根據數據的質量,您可能只需要做一些工作就可以減少其餘的邏輯。我會試着去看看你找不到任何匹配的所有客戶,看看他們中的任何一個是否有相同的電子郵件,或類似的地址或類似的名字。如果是這樣,比較這些成員,看看是什麼導致匹配不起作用。

編輯:如果此數據持續更新,請記住,您還必須將新記錄與先前識別的客戶進行比較,以確定它們是否與您系統中已有的客戶匹配。

祝你好運。我們的項目有點令人頭疼,仍然沒有完全完成,但它的狀態良好,我們每次運行都會繼續改進。

+0

感謝您的好投入,我覺得你的做法是真的好。我從一開始就提出了一系列不同的查詢,從業務角度從不同角度加入客戶。我將查詢結果標記爲1到5的驗證級別分數。分數取決於聯接的強度。如果我在多個查詢中找到相同的客戶關係。分數會更新,然後我會繼續與非分數或低分數的客戶合作。 – Beesure