使用進階規則類型建立規則型比對工作流程 - AWS Entity Resolution

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用進階規則類型建立規則型比對工作流程

下列程序示範如何使用 AWS Entity Resolution 主控台或 CreateMatchingWorkflow API 建立具有進階規則類型的規則型比對工作流程。

Console
使用主控台建立具有進階規則類型的規則型比對工作流程
  1. 登入 AWS Management Console 並在 https://https://console.aws.amazon.com/entityresolution/ 開啟 AWS Entity Resolution 主控台。

  2. 在左側導覽窗格中的工作流程下,選擇相符

  3. 相符工作流程頁面上的右上角,選擇建立相符工作流程

  4. 針對步驟 1:指定相符的工作流程詳細資訊,執行下列動作:

    1. 輸入相符的工作流程名稱和選用的描述

    2. 針對資料輸入,選擇 AWS 區域AWS Glue 資料庫AWS Glue 資料表,然後選擇對應的結構描述映射

      您最多可以新增 19 個資料輸入。

      注意

      若要使用進階規則,您的結構描述映射必須符合下列要求:

      1. 除非欄位分組在一起,否則每個輸入欄位都必須對應至唯一的相符索引鍵。

      2. 如果輸入欄位分組在一起,它們可以共用相同的相符索引鍵。

        例如,下列結構描述映射對進階規則有效:

        firstName: { matchKey: 'name', groupName: 'name' }

        lastName: { matchKey: 'name', groupName: 'name' }

        在此情況下, firstNamelastName 欄位會分組在一起,並共用相同的名稱相符索引鍵,這是允許的。

        檢閱您的結構描述映射,並更新它們以遵循此one-to-one比對規則,除非欄位已正確分組,以便使用進階規則。

      3. 如果您的資料表具有 DELETE 資料欄,結構描述映射的類型必須是 String,而且您無法擁有 matchKeygroupName

    3. 預設會選取標準化資料選項,以便在比對之前標準化資料輸入。如果您不想標準化資料,請取消選取標準化資料選項。

      注意

      只有建立結構描述映射中的下列案例才支援標準化:

      • 如果將下列名稱子類型分組:名字中間名姓氏

      • 如果將下列地址子類型分組:街道地址 1街道地址 2街道地址 3城市國家郵遞區號

      • 如果將下列電話子類型分組:電話號碼電話國家/地區代碼

    4. 若要指定服務存取許可,請選擇 選項並採取建議的動作。

      選項 建議的動作
      建立和使用新的服務角色
      • AWS Entity Resolution 會建立具有此資料表所需政策的服務角色。

      • 預設的服務角色名稱entityresolution-matching-workflow-<timestamp>

      • 您必須具有建立角色和連接政策的許可。

      • 如果您的輸入資料已加密,您可以選擇使用此 KMS 金鑰選項加密此資料,然後輸入將用於解密您資料輸入的AWS KMS 金鑰

      使用現有的服務角色
      1. 從下拉式清單中選擇現有的服務角色名稱

        如果您有列出角色的許可,則會顯示角色清單。

        如果您沒有列出角色的許可,您可以輸入要使用的角色的 Amazon Resource Name (ARN)。

        如果沒有現有的服務角色,則無法使用使用現有服務角色的選項。

      2. 選擇 IAM 外部連結中的檢視,以檢視服務角色。

        根據預設, AWS Entity Resolution 不會嘗試更新現有的角色政策來新增必要的許可。

    5. (選用) 若要為資源啟用標籤,請選擇新增標籤,然後輸入金鑰對。

    6. 選擇下一步

  5. 針對步驟 2:選擇相符的技術

    1. 針對比對方法,選擇規則型比對

    2. 針對規則類型,選擇進階

      選擇比對技術畫面,並選取進階規則型比對選項。
    3. 針對處理節奏,選取下列其中一個選項。

      • 選擇手動以隨需執行工作流程進行大量更新

      • 選擇自動,在 S3 儲存貯體中有新資料時立即執行工作流程

      注意

      如果您選擇 自動,請確定已針對 S3 儲存貯體開啟 Amazon EventBridge 通知。如需使用 S3 主控台啟用 Amazon EventBridge 的說明,請參閱《Amazon Amazon S3啟用 Amazon EventBridge

    4. 針對相符規則,輸入規則名稱,然後根據您的目標,從下拉式清單中選擇適當的相符函數和運算子來建置規則條件

      您最多可以建立 25 個規則。

      您必須使用 AND 運算子將模糊比對函數 (CosineLevenshteinSoundex) 與精確比對函數 (ExactExactManyToMany) 結合。

      您可以使用下表,根據您的目標,協助決定要使用的函數或運算子類型。

      您的目標 建議的函數或運算子 建議的選用修飾詞 優點
      比對準確資料上的相同字串,但不符合空值。 精確 EmptyValues=Process
      比對準確資料上的相同字串,並忽略空值。 Exact(matchKey) EmptyValues=忽略
      跨比對索引鍵比對多個記錄。適合彈性配對。限制:15 個比對金鑰 ExactManyToMany(matchKeymatchKey, ...) N/A
      測量資料數值表示法之間的相似性,但與空值不相符。適用於文字、數字或兩者的混合。 餘弦 EmptyValues=Process

      簡單、有效率。

      與 TF-IDF 權重結合時,適用於長文字。

      適用於確切以字詞為基礎的比對。

      測量資料數值表示法之間的相似性,並忽略空值。 Cosine(matchKeythreshold, ...) EmptyValues=忽略

      妥善處理錯別字、拼字錯誤和轉位。

      適用於各種 PII 類型。

      適用於短字串 (例如,名稱或電話號碼)。

      計算將一個單字變更為另一個單字所需的最小變更數,但與空值不相符。適用於拼字有些微差異的文字。 Levenshtein EmptyValues=Process
      計算將一個單字變更為另一個單字並忽略空值所需的變更數目下限。 Levenshtein(matchKeythreshold, ...) EmptyValues=忽略
      根據文字字串聽起來的相似程度來比較和比對文字字串,但在空值上不相符。適用於具有拼寫或發音變化的文字。 Soundex EmptyValues=Process

      適用於音標比對,識別類似聲音的單字。

      快速且運算成本低廉。

      適合搭配具有類似發音但拼寫不同的名稱。

      根據文字字串聽起來的相似程度來比較和比對文字字串,並忽略空值。 Soundex(matchKey) EmptyValues=忽略
      合併 函數。 N/A
      分隔函數。 N/A
      建立巢狀條件的群組條件。 (…) N/A
      範例 符合電話號碼和電子郵件的規則條件

      以下是符合電話號碼 (電話配對金鑰) 和電子郵件地址 (電子郵件地址配對金鑰) 記錄的規則條件範例:

      Exact(Phone,EmptyValues=Process) AND Levenshtein("Email address",2)

      符合電話號碼和電子郵件地址記錄的規則條件範例。

      電話比對金鑰使用精確比對函數來比對相同的字串。電話比對金鑰會使用 EmptyValues=Process 修飾詞處理比對中的空值。

      電子郵件地址比對金鑰使用 Levenshtein 比對函數,來比對使用預設 Levenshtein Distance 演算法閾值 2 的拼寫錯誤資料。電子郵件比對金鑰不會使用任何選用修飾詞。

      AND 運算子結合了精確比對函數和 Levenshtein 比對函數。

      範例 使用 ExactManyToMany 執行比對金鑰比對的規則條件

      以下是符合三個地址欄位 (HomeAddress 比對金鑰、BillingAddress 比對金鑰和 ShippingAddress 比對金鑰) 記錄的規則條件範例,透過檢查是否有任何相符項目具有相同的值來尋找潛在相符項目。

      ExactManyToMany 運算子會評估指定地址欄位的所有可能組合,以識別任何兩個或多個地址之間的完全相符。例如,它會偵測 是否HomeAddressBillingAddress或 相符ShippingAddress,或這三個地址是否完全相符。

      ExactManyToMany(HomeAddress, BillingAddress, ShippingAddress)
      範例 使用叢集的規則條件

      在具有模糊條件的進階規則型比對中,系統會根據完全相符將記錄分組為叢集。形成這些初始叢集後,系統會套用模糊比對篩選條件,以識別每個叢集內的其他相符項目。為了獲得最佳效能,您應該根據資料模式選取完全相符的條件,以建立定義明確的初始叢集。

      以下是將多個完全相符項目與模糊相符項目需求結合的規則條件範例。它使用AND運算子來檢查三個欄位 - FullName、出生日期 (DOB) 和 Address- 在記錄之間完全相符。它也允許使用 Levenshtein 距離的 InternalID 欄位中的次要變化1。Levenshtein 距離會測量將一個字串變更為另一個字串所需的單一字元編輯次數下限。距離 1 表示它將只比對一個字元 InternalIDs (例如單一錯別字、刪除或插入)。這種條件組合有助於識別非常可能代表相同實體的記錄,即使識別符中存在小差異。

      Exact(FullName) AND Exact(DOB) AND Exact(Address) and Levenshtein(InternalID, 1)
    5. 選擇下一步

  6. 針對步驟 3:指定資料輸出和格式

    1. 針對資料輸出目的地和格式,選擇資料輸出的 Amazon S3 位置,以及資料格式標準化資料還是原始資料

    2. 對於加密,如果您選擇自訂加密設定,請輸入AWS KMS 金鑰 ARN。

    3. 檢視系統產生的輸出

    4. 對於資料輸出,決定您要包含、隱藏或遮罩的欄位,然後根據您的目標採取建議的動作。

      您的目標 建議的動作
      包含欄位 將輸出狀態保留為已包含
      隱藏欄位 (從輸出中排除) 選擇輸出欄位,然後選擇隱藏
      遮罩欄位 選擇輸出欄位,然後選擇雜湊輸出
      重設先前的設定 選擇 Reset (重設)
    5. 選擇下一步

  7. 針對步驟 4:檢閱並建立

    1. 檢閱您針對先前步驟所做的選擇,並視需要編輯。

    2. 選擇 Create and run (建立並執行)

      訊息隨即出現,指出已建立相符的工作流程,且任務已開始。

  8. 在相符的工作流程詳細資訊頁面的指標索引標籤上,檢視最後一個任務指標下的下列項目:

    • 任務 ID

    • 相符工作流程任務的狀態已佇列進行中已完成失敗

    • 工作流程任務的完成時間

    • 處理的記錄數量。

    • 未處理的記錄數目。

    • 產生的唯一比對 IDs

    • 輸入記錄的數量。

    您也可以檢視先前已在任務歷史記錄下執行之相符工作流程任務的任務指標。

  9. 比對工作流程任務完成後 (狀態已完成),您可以前往資料輸出索引標籤,然後選取您的 Amazon S3 位置以檢視結果。

  10. (僅限手動處理類型) 如果您已使用手動處理類型建立規則型比對工作流程,您可以在比對工作流程詳細資訊頁面上選擇執行工作流程,隨時執行比對工作流程。

  11. (僅限自動處理類型) 如果您的資料表具有 DELETE 資料欄,則:

    • DELETE 欄中設定為 true 的記錄會被刪除。

    • DELETE 欄中設定為 false 的記錄會擷取至 S3。

    如需詳細資訊,請參閱步驟 1:準備第一方資料表

API
使用 API 建立具有進階規則類型的規則型比對工作流程
注意

根據預設,工作流程會使用標準 (批次) 處理。若要使用增量 (自動處理,您必須明確設定。

  1. 開啟終端機或命令提示以提出 API 請求。

  2. 建立對下列端點的 POST 請求:

    /matchingworkflows
  3. 在請求標頭中,將 Content-type 設定為 application/json。

    注意

    如需支援程式設計語言的完整清單,請參閱 AWS Entity Resolution API 參考

  4. 針對請求內文,請提供下列必要的 JSON 參數:

    { "description": "string", "incrementalRunConfig": { "incrementalRunType": "string" }, "inputSourceConfig": [ { "applyNormalization": boolean, "inputSourceARN": "string", "schemaName": "string" } ], "outputSourceConfig": [ { "applyNormalization": boolean, "KMSArn": "string", "output": [ { "hashed": boolean, "name": "string" } ], "outputS3Path": "string" } ], "resolutionTechniques": { "providerProperties": { "intermediateSourceConfiguration": { "intermediateS3Path": "string" }, "providerConfiguration": JSON value, "providerServiceArn": "string" }, "resolutionType": "RULE_MATCHING", "ruleBasedProperties": { "attributeMatchingModel": "string", "matchPurpose": "string", "rules": [ { "matchingKeys": [ "string" ], "ruleName": "string" } ] }, "ruleConditionProperties": { "rules": [ { "condition": "string", "ruleName": "string" } ] } }, "roleArn": "string", "tags": { "string" : "string" }, "workflowName": "string" }

    其中:

    • workflowName (必要) – 必須唯一且介於 1–255 個字元之間的相符模式 【a-zA-Z_0-9-】*

    • inputSourceConfig (必要) – 1–20 個輸入來源組態的清單

    • outputSourceConfig (必要) – 確切有一個輸出來源組態

    • resolutionTechniques (必要) – 設定為 "RULE_MATCHING" 做為規則型比對的 resolutionType

    • roleArn (必要) – 用於工作流程執行的 IAM 角色 ARN

    • ruleConditionProperties (必要) – 規則條件清單和相符規則的名稱。

    選用參數包括:

    • description – 最多 255 個字元

    • incrementalRunConfig – 增量執行類型組態

    • tags – 最多 200 個鍵值對

  5. (選用) 若要使用增量處理而非預設標準 (批次) 處理,請將下列參數新增至請求內文:

    "incrementalRunConfig": { "incrementalRunType": "AUTOMATIC" }
  6. 傳送 請求。

  7. 如果成功,您會收到狀態碼為 200 的回應,以及包含下列項目的 JSON 內文:

    { "workflowArn": "string", "workflowName": "string", // Plus all configured workflow details }
  8. 如果呼叫失敗,您可能會收到下列其中一個錯誤:

    • 400 – 如果工作流程名稱已存在,則為 ConflictException

    • 400 – 如果輸入驗證失敗,則 ValidationException

    • 402 – 如果超過帳戶限制,則超出 ExceedsLimitException

    • 403 – 如果您沒有足夠的存取權,則為 AccessDeniedException

    • 429 – 如果請求已調節,則 ThrottlingException

    • 500 – 如果發生內部服務故障,則為 InternalServerException