Técnicas para la definición de claves de cruce

La comparación eficaz y eficiente requiere el equilibrio correcto entre precisión y rendimiento. El enfoque más preciso para la comparación sería analizar cada registro en relación con el resto de los registros, pero esto no es factible debido a que la cantidad de registros que se debería procesar produciría un rendimiento inaceptablemente lento. Un mejor enfoque es limitar la cantidad de registros involucrados en el proceso de comparación, a aquellos con mayor probabilidad de cruce. Puede hacer esto mediante el uso de las claves de cruce. Una clave de cruce es un valor que se crea por cada registro, mediante el uso de un algoritmo definido por el usuario. El algoritmo toma los valores del registro y los utiliza para generar un valor de clave de cruce, que se almacena como un nuevo campo en el registro.

Por ejemplo, si el registro entrante es:

Primer nombre: Fred
Apellido: Mertz
Código postal: 21114-1687
Código de género: M

Y define una regla de clave de cruce que genera una clave de cruce al combinar los datos del registro, de la siguiente manera:

Campo de entrada Posición de inicio Longitud
Código postal 1 5
Código postal 7 4
Apellido 1 5
Nombre 1 5
Código de género 1 1

Entonces la clave será:

211141687MertzFredM

Todo registro que contenga la misma clave de cruce se coloca en un grupo de cruce. El proceso de comparación posteriormente compara los registros en el grupo entre sí para identificar las coincidencias.

Para crear una clave de cruce, utilice la etapa Match Key Generator si compara registros con Interflow Match o Intraflow Match. Si compara registros con Transactional Match, use la etapa Candidate Finder para crear los grupos de cruce.
Nota: Las pautas que siguen se pueden aplicar a las consultas de Candidate Finder y claves de Match Key Generator. En Candidate Finder, estas pautas se aplican a la manera en que se define la instrucción SELECT.

Tamaño y rendimiento del grupo de cruce

La clave de cruce determina el tamaño de un grupo de cruce y, por lo tanto, el rendimiento de su flujo de datos. A medida que se duplica el tamaño del grupo de cruce, también se duplica el tiempo de ejecución. Por ejemplo, si define una clave de búsqueda que genera un grupo de 20 registros potencialmente coincidentes, tardará el doble de tiempo procesar como si modificara la clave de cruce, de modo que el grupo de cruce solo contenga 10 registros potencialmente coincidentes. La desventaja de "restringir" la regla de la clave de búsqueda para generar un grupo de cruce más pequeño, es que se corre el riesgo de excluir registros que sí coinciden. "Aflojar" la regla de la clave de cruce reduce la posibilidad de excluir del grupo a un registro coincidente, pero se incrementa el tamaño del grupo. A fin de encontrar el equilibrio correcto para sus datos, es importante que pruebe una variedad de reglas de clave de cruce, mediante el uso de los datos que sean representativos de los datos que intenta procesar en la producción.

Densidad

Al diseñar una clave de cruce, es importante considerar la densidad del área. La densidad se refiere al grado en el que los datos se pueden distribuir en todos los grupos de cruce. Dado que el rendimiento se determina mediante el número de comparaciones que el sistema debe realizar, las claves de cruce que generan una pequeña cantidad de grupos de cruce de gran tamaño producen un rendimiento más lento, en comparación con las claves de cruce que generan una mayor cantidad de grupos de cruce de tamaño pequeño.

Para ilustrar este concepto, considere una situación donde posee un conjunto de un millos de registros de nombres y direcciones que desea comparar. Debe definir una clave de cruce como los tres primeros bytes del código postal y la primera letra del apellido. Si los registros son de EE.UU., la clave de cruce producirá una gran cantidad de grupos de cruce y es probable que tenga un rendimiento aceptable. Sin embargo, si todos los registros son de Nueva York, todos los códigos postales comenzarán con "100" y terminará al menos con solo 26 grupos de cruce. Esto generará grandes grupos de cruce con aproximadamente 38.000 registros en promedio.

Puede calcular la cantidad máxima de comparaciones realizadas por cada grupo de cruce, al utilizar la siguiente fórmula:

N * (N-1) / 2

Donde N es la cantidad de registros en el grupo de cruce.

Entonces, si tiene 26 grupos de cruce con 38.000 registros cada uno, la cantidad máxima de comparaciones realizadas sería de 18,7 mil millones aproximadamente. A continuación se muestra cómo se calcula la cantidad:

Primero, determine la cantidad máxima de comparaciones por grupo de cruce:

38,000 * (38,000-1) / 2 = 721,981,000

Luego, multiplique esta cantidad por el número de grupos de cruce:

721,981,000 * 26 = 18,771,506,000

Si en su lugar hubieran 100 valores únicos para los primeros 3 bytes del código postal, tendría 2.600 grupos de cruce con un promedio de 380 registros. En este caso, la cantidad máxima de comparaciones sería de 187 millones, lo que es 100 veces menos. Entonces, si los registros son de Nueva York, debe considerar el uso de los primeros cuatro o cinco bytes del código postal, para que la clave de cruce genere más grupos de cruce y reduzca la cantidad de comparaciones. Puede que pierda unas pocas coincidencias, pero el equilibrio reducirá en gran medida el tiempo de ejecución.

En la realidad, una clave de búsqueda como la que se usa en este ejemplo, no generará grupos de cruce del mismo tamaño debido a las variaciones de los datos. Por ejemplo, habrá una mayor cantidad de personas cuyo apellido comience con "S" que con "X". Debido a esto, debe enfocar sus esfuerzos en reducir el tamaño de los grupos de cruce más grandes. Un grupo de cruce de 100.000 registros es 10 veces más grande que un grupo de 10.000, pero requerirá 100 veces más comparaciones y tardará 100 veces más. Por ejemplo, considere que usa cinco bytes del código postal y seis bytes del campo AddressLine1 para la clave de cruce. A primera vista parece una clave de cruce bastante buena. El problema es con las direcciones de casilla postal. Aunque la mayoría de los grupos de cruce pueden tener un tamaño aceptable, habrá unos pocos grupos de cruce muy grandes con claves similares a 10002PO BOX, con una cantidad muy grande de registros. Para dividir los grupos de cruce grandes, puede modificar la clave de cruce para incluir el primer par de dígitos del número de la casilla postal.

Alineación de la clave de cruce con la regla de cruce

Para obtener los resultados más precisos, debe diseñar una clave de cruce que funcione bien con la regla de cruce que usará en ella. Esto requerirá que considere la manera en que se define la regla de cruce.
  • La clave de cruce debe incluir cualquier campo que la regla de cruce exija que sea una coincidencia exacta.
  • La clave de cruce debe utilizar el mismo tipo de algoritmo que se usa en la regla de cruce. Por ejemplo, si diseña una clave de cruce para su uso con una regla de cruce que utiliza un algoritmo fonético, entonces la clave de cruce también debe usar un algoritmo fonético.
  • La clave de cruce se debe desarrollar mediante el uso de los datos de todos los campos que se utilizan en la regla de cruce.
  • Considere cómo se verá afectada la clave de cruce si faltan datos de uno o más de los campos que se utilizan para la clave de cruce. Por ejemplo, considere que utiliza la inicial del segundo nombre como parte de la clave de búsqueda y tiene el registro de John A. Smith y otro de John Smith. Configuró la regla de cruce para que ignore los valores en blanco en el campo de inicial del segundo nombre, de modo que estos dos registros coincidirán según su regla de cruce. Sin embargo, debido a que la regla de cruce utiliza la inicial del segundo nombre, los dos registros terminarían en grupos de cruce distintos y no se compararían entre sí, con lo que se anularía su regla de cruce.