

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de un flujo de trabajo de coincidencia basado en reglas con el tipo de regla avanzada
<a name="rule-based-mw-advanced"></a>

**Requisitos previos**

Antes de crear un flujo de trabajo de coincidencia basado en reglas, debe:

1. Cree un mapeo de esquemas. Para obtener más información, consulte [Crear un esquema de mapeo](create-schema-mapping.md).

1. Si utiliza los perfiles de clientes de Amazon Connect como destino de salida, asegúrese de tener configurados los permisos adecuados.

El siguiente procedimiento muestra cómo crear un flujo de trabajo coincidente basado en reglas con el tipo de regla **avanzada** mediante la AWS Entity Resolution consola o la `CreateMatchingWorkflow` API.

------
#### [ Console ]

**Para crear un flujo de trabajo coincidente basado en reglas con el tipo de regla **avanzada, utilice** la consola**

1. Inicie sesión en Consola de administración de AWS y abra la AWS Entity Resolution consola en. [https://console.aws.amazon.com/entityresolution/](https://console.aws.amazon.com/entityresolution/)

1. En el panel de navegación izquierdo, en **Flujos de trabajo**, selecciona **Matching**.

1. En la página **Flujos de trabajo coincidentes**, en la esquina superior derecha, selecciona **Crear flujo de trabajo coincidente**.

1. Para el **paso 1: especificar los detalles del flujo de trabajo coincidentes**, haga lo siguiente: 

   1. Introduzca un **nombre de flujo de trabajo coincidente** y una **descripción** opcional.

   1. Para la **entrada de datos**, elija una **AWS Glue base de datos **Región de AWS****, la **AWS Glue tabla** y, a continuación, el **mapeo de esquema** correspondiente.

      Puede añadir hasta 19 entradas de datos.
**nota**  
Para utilizar las reglas **avanzadas**, las asignaciones de esquemas deben cumplir los siguientes requisitos:  
Cada campo de entrada debe asignarse a una clave de coincidencia única, a menos que los campos estén agrupados.
Si los campos de entrada están agrupados, pueden compartir la misma clave de coincidencia.  
Por ejemplo, la siguiente asignación de esquemas sería válida para las reglas **avanzadas**:  
`firstName: { matchKey: 'name', groupName: 'name' }`  
`lastName: { matchKey: 'name', groupName: 'name' }`  
En este caso, los `lastName` campos `firstName` y se agrupan y comparten la misma clave de coincidencia de nombres, lo cual está permitido.  
Revise las asignaciones de sus esquemas y actualícelas para seguir esta regla de one-to-one coincidencia, a menos que los campos estén agrupados correctamente, a fin de utilizar las reglas **avanzadas**.
Si la tabla de datos tiene una columna DELETE, el tipo de mapeo del esquema debe ser `String` y no puede tener una `matchKey` y. `groupName` 

   1. La opción **Normalizar datos** está seleccionada de forma predeterminada, de modo que las entradas de datos se normalizan antes de que coincidan. Si no desea normalizar los datos, deseleccione la opción **Normalizar datos**.
**nota**  
La normalización solo se admite en los siguientes escenarios en **Crear mapeo de esquemas**:   
**Si se agrupan los siguientes subtipos de nombres: **nombre**, **segundo nombre**, **apellido**.**
**Si se agrupan los siguientes subtipos de **direcciones: dirección 1****, dirección 2**, **dirección 3**, **ciudad**, **estado**, **país**, **código postal**.**
Si los siguientes subtipos de **teléfono** están agrupados: **número de teléfono, código de** **país del teléfono**.

   1. Para especificar los permisos **de acceso al servicio**, elija una opción y lleve a cabo la acción recomendada.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/entityresolution/latest/userguide/rule-based-mw-advanced.html)

   1. (Opcional) Para habilitar las **etiquetas** para el recurso, selecciona **Añadir nueva etiqueta** y, a continuación, introduce el par **clave** y **valor**.

   1. Elija **Siguiente**.

1. Para el **paso 2: elija una técnica de coincidencia**:

   1. Para el **método de coincidencia**, elija la coincidencia **basada en reglas**.

   1. **En **Tipo de regla**, seleccione Avanzado.**  
![\[Seleccione la pantalla de técnicas de coincidencia con la opción de coincidencia avanzada basada en reglas seleccionada.\]](http://docs.aws.amazon.com/es_es/entityresolution/latest/userguide/images/choose-matching-method-rule-based-advanced.PNG)

   1. En **Cadencia de procesamiento**, selecciona una de las siguientes opciones.
      + Seleccione **Manual** para ejecutar un flujo de trabajo bajo demanda para una actualización masiva 
      + Elija **Automático** para ejecutar un flujo de trabajo en cuanto haya nuevos datos en su bucket de S3 
**nota**  
Si eliges **Automático**, asegúrate de tener activadas EventBridge las notificaciones de Amazon para tu bucket de S3. Para obtener instrucciones sobre cómo habilitar Amazon EventBridge mediante la consola S3, consulte [Habilitar Amazon EventBridge](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications-eventbridge.html) en la *Guía del usuario de Amazon S3*.

   1. En el caso de **las reglas coincidentes**, introduzca el **nombre de una regla** **y, a continuación, cree la condición** de la regla seleccionando las funciones y operadores coincidentes adecuados de la lista desplegable en función de su objetivo.

      Puede crear hasta 25 reglas.

      ****Debe combinar una función de coincidencia parcial (**Cosine**, **Levenshtein** o **Soundex**) con una función de coincidencia exacta (Exact,) mediante el operador AND. **ExactManyToMany******

      Puede usar la siguiente tabla para decidir qué tipo de función u operador quiere usar, en función de su objetivo.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/entityresolution/latest/userguide/rule-based-mw-advanced.html)  
**Example Condición de regla que coincide con los números de teléfono y el correo electrónico**  

      El siguiente es un ejemplo de una condición de regla que hace coincidir los registros de números de teléfono (clave de coincidencia de **teléfono**) y direcciones de correo electrónico (clave de coincidencia de **direcciones de correo electrónico**):

      `Exact(Phone,EmptyValues=Process) AND Levenshtein("Email address",2)`  
![\[Ejemplo de una condición de regla que coincide con los registros de números de teléfono y direcciones de correo electrónico.\]](http://docs.aws.amazon.com/es_es/entityresolution/latest/userguide/images/matching-rule-condition-example.png)

      La tecla de coincidencia **telefónica** utiliza la función de coincidencia **exacta** para hacer coincidir cadenas idénticas. La tecla **Phone** Match procesa los valores vacíos de la coincidencia mediante el modificador **EmptyValues=Process**.

      La clave de coincidencia de **direcciones de correo electrónico** utiliza la función de coincidencia de **Levenshtein** para hacer coincidir los datos con los errores ortográficos utilizando el umbral predeterminado del algoritmo de distancia de Levenshtein, que es 2. **La clave de coincidencia de correo electrónico no utiliza ningún modificador opcional.**

      El operador **AND** combina la función de coincidencia **exacta** y la función de coincidencia de **Levenshtein**.  
**Example Condición de regla que se utiliza ExactManyToMany para realizar la coincidencia de claves coincidentes**  

      El siguiente es un ejemplo de una condición de regla que hace coincidir los registros de tres campos de direcciones (**HomeAddress**clave de **BillingAddress**coincidencia, clave de **ShippingAddress**coincidencia y clave de coincidencia) para buscar posibles coincidencias comprobando si alguna de ellas tiene valores idénticos. 

      El `ExactManyToMany` operador evalúa todas las combinaciones posibles de los campos de dirección especificados para identificar las coincidencias exactas entre dos o más direcciones. Por ejemplo, detectaría si las direcciones `HomeAddress` coinciden exactamente con la `BillingAddress` o `ShippingAddress` si las tres direcciones coinciden exactamente.

      ```
      ExactManyToMany(HomeAddress, BillingAddress, ShippingAddress)
      ```  
**Example Condición de regla que utiliza la agrupación en clústeres**  

      En la coincidencia avanzada basada en reglas con condiciones difusas, el sistema primero agrupa los registros en clústeres en función de las coincidencias exactas. Una vez que se forman estos clústeres iniciales, el sistema aplica filtros de coincidencia difusa para identificar coincidencias adicionales dentro de cada clúster. Para obtener un rendimiento óptimo, debe seleccionar las condiciones de coincidencia exactas en función de sus patrones de datos para crear clústeres iniciales bien definidos. 

      El siguiente es un ejemplo de una condición de regla que combina varias coincidencias exactas con un requisito de coincidencia parcial. Utiliza `AND` operadores para comprobar que tres campos (`FullName`, Fecha de nacimiento (`DOB`) y `Address` — coincidan exactamente entre los registros. También permite pequeñas variaciones en el `InternalID` campo utilizando una distancia de Levenshtein de. `1` La distancia de Levenshtein mide el número mínimo de ediciones de un solo carácter necesarias para cambiar una cadena por otra. Una distancia de 1 significa `InternalIDs` que coincidirá con la diferencia en un solo carácter (por ejemplo, un error tipográfico, una eliminación o una inserción). Esta combinación de condiciones ayuda a identificar los registros que es muy probable que representen la misma entidad, incluso si hay pequeñas discrepancias en el identificador.

      ```
      Exact(FullName) AND Exact(DOB) AND Exact(Address) and Levenshtein(InternalID, 1)
      ```

   1. Elija **Siguiente**.

1. Para el **paso 3: especifique la salida y el formato de los datos**:

   1. En **Destino y formato de salida de datos**, elija la **ubicación de Amazon S3** para la salida de datos y si el **formato de datos** será Datos **normalizados o Datos** **originales**.

   1. Para el **cifrado**, si elige **personalizar la configuración de cifrado**, introduzca la **AWS KMS clave** ARN.

   1. Vea la **salida generada por el sistema**.

   1. En el caso de la **salida de datos**, decide qué campos quieres incluir, ocultar o enmascarar y, a continuación, realiza las acciones recomendadas en función de tus objetivos.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/entityresolution/latest/userguide/rule-based-mw-advanced.html)

   1. Elija **Siguiente**.

1. Para el **paso 4: Revisa y crea**:

   1. Revise las selecciones que realizó en los pasos anteriores y edítelas si es necesario.

   1. Elija **Create and run**.

      Aparece un mensaje que indica que se ha creado el flujo de trabajo correspondiente y que el trabajo ha comenzado.

1. En la página de detalles del flujo de trabajo coincidente, en la pestaña **Métricas**, consulta lo siguiente en **Métricas del último trabajo**:
   + El **identificador del trabajo**. 
   + **El **estado** del trabajo de flujo de trabajo coincidente: en **cola**, **en curso**, **completado, fallido**** 
   + El **tiempo de finalización** del trabajo de flujo de trabajo.
   + El número de **registros procesados**. 
   + El número de **registros no procesados**. 
   + La **coincidencia única IDs generada**.
   + El número de **registros de entrada**.

   También puede ver las métricas de trabajo para hacer coincidir los trabajos de flujo de trabajo que se han ejecutado anteriormente en el **historial de trabajos**.

1. Cuando se complete el trabajo del flujo de trabajo correspondiente (el **estado** es **Completado**), puede ir a la pestaña **Salida de datos** y, a continuación, seleccionar su **ubicación de Amazon S3** para ver los resultados.

1. (Solo tipo de procesamiento **manual**) Si ha creado un flujo de trabajo **coincidente basado en reglas** con el tipo de procesamiento **manual**, puede ejecutar el flujo de trabajo coincidente en cualquier momento seleccionando **Ejecutar flujo de trabajo en la página de detalles del flujo de trabajo** coincidente.

1. (Solo tipo de procesamiento **automático**) Si la tabla de datos tiene una columna DELETE, entonces: 
   + Se eliminan los registros establecidos *true* en la columna DELETE.
   + Los registros establecidos *false* en la columna DELETE se incorporan a S3.

   Para obtener más información, consulte [Paso 1: Prepare tablas de datos propias](prepare-input-data.md#prepare-first-party-tables).

------
#### [ API ]

**Para crear un flujo de trabajo coincidente basado en reglas con la regla **avanzada**, escriba mediante la API**
**nota**  
De forma predeterminada, el flujo de trabajo utiliza el procesamiento estándar (por lotes). Para utilizar el procesamiento incremental (automático), debe configurarlo de forma explícita.

1. Abre una terminal o una línea de comandos para realizar la solicitud a la API.

1. Crea una solicitud POST para el siguiente punto final: 

   ```
   /matchingworkflows
   ```

1. En el encabezado de la solicitud, establece el tipo de contenido en application/json. 
**nota**  
*[Para obtener una lista completa de los lenguajes de programación compatibles, consulta la referencia de la API.AWS Entity Resolution](https://docs.aws.amazon.com/entityresolution/latest/apireference/Welcome.html)* 

1. Para el cuerpo de la solicitud, proporciona los siguientes parámetros JSON obligatorios: 

   ```
   {
      "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"
   }
   ```

   Donde:
   + `workflowName`(obligatorio): debe ser único y debe coincidir con un patrón de entre 1 y 255 caracteres [a-zA-Z\$10-9-] \$1
   + `inputSourceConfig`(obligatorio): lista de 1 a 20 configuraciones de fuentes de entrada
   + `outputSourceConfig`(obligatorio): exactamente una configuración de fuente de salida
   + `resolutionTechniques`(obligatorio): establézcalo en «RULE\$1MATCHING» como tipo de resolución para la coincidencia basada en reglas
   + `roleArn`(obligatorio): ARN del rol de IAM para la ejecución del flujo de trabajo
   + `ruleConditionProperties`(obligatorio): lista de las condiciones de la regla y el nombre de la regla coincidente.

   Los parámetros opcionales incluyen:
   + `description`— Hasta 255 caracteres
   + `incrementalRunConfig`— Configuración del tipo de ejecución incremental
   + `tags`— Hasta 200 pares clave-valor

1. (Opcional) Para utilizar el procesamiento incremental en lugar del procesamiento estándar (por lotes) predeterminado, añada el siguiente parámetro al cuerpo de la solicitud: 

   ```
   "incrementalRunConfig": {
      "incrementalRunType": "AUTOMATIC"
   }
   ```

1. Envíe la solicitud .

1. Si se ejecuta correctamente, recibirás una respuesta con el código de estado 200 y un cuerpo JSON que contiene: 

   ```
   {
      "workflowArn": "string",
      "workflowName": "string",
      // Plus all configured workflow details
   }
   ```

1. Si la llamada no se realiza correctamente, es posible que recibas uno de los siguientes errores:
   + 400: ConflictException si el nombre del flujo de trabajo ya existe
   + 400: ValidationException si la entrada no pasa la validación
   + 402: ExceedsLimitException si se superan los límites de la cuenta
   + 403: AccessDeniedException si no tienes acceso suficiente
   + 429 — ThrottlingException si la solicitud fue restringida
   + 500: InternalServerException si se produce un fallo en el servicio interno

------