La comparación es una de las operaciones que más tiempo requiere en cualquier implementación de datos de calidad; por ello, es importante garantizar que funcione de la forma más eficiente posible. Siempre hay un equilibrio entre los resultados de la comparación y el rendimiento. Si todos los registros de un archivo se comparan con todo el resto de los registros, no hay duda de que se hallarán todas las coincidencias. Sin embargo, este enfoque se vuelve insostenible cuando aumenta el volumen de datos. Por ejemplo, dado un archivo de entrada con un millón de registros, la comparación de cada uno de esos registros con el resto requeriría cerca de un millón de millones de instancias de comparación para evaluar cada regla de cruce.
Puesto que la mayoría de los registros de un archivo no tienen coincidencias, el enfoque general para resolver este problema es definir una clave de cruce y solo comparar esos registros con la misma clave de cruce. La definición de una clave de cruce adecuada es la variable que más afecta el rendimiento del motor de comparaciones. Para definir una clave de cruce adecuada, debe entender la forma en que el motor de comparaciones procesa los registros y las opciones disponibles.
El método de comparación predeterminado realiza una comparación exhaustiva del registro en una cola de cruce para identificar la cantidad máxima de coincidencias. Por ello, es la forma de comparación que suele requerir más tiempo en completarse. Cuando se utiliza el método de comparación predeterminado, el primer registro en la cola de cruce se convierte en el registro sospechoso. Se compara el siguiente registro y, si coincide, se lo escribe como duplicado. Si no coincide, se lo agrega como sospechoso, y el siguiente registro se compara con los dos registros sospechosos activos. Considere la siguiente cola de cruce:
ID única | Clave de cruce |
---|---|
1 | 123A |
2 | 123A |
3 | 123A |
4 | 123A |
5 | 123A |
6 | 123A |
7 | 123A |
8 | 123A |
9 | 123A |
10 | 123A |
En primer lugar, el registro 2 se compararía con el registro 1. Si no coincide, el registro 2 se añadiría como sospechoso. Luego, el registro 3 se compararía con los registros 1 y 2, y así sucesivamente. Si no hay registros que coincidan, la cantidad total de comparaciones sería 45. Si algunos registros coinciden, la cantidad de comparaciones será menor. Para una cola de cruce de un tamaño dado N, el número máximo de comparaciones es de N×(N-1)÷2. Cuando el tamaño de la cola es pequeño, este dato no es perceptible, pero a medida que aumenta el tamaño de la cola, el impacto es cada vez mayor. Por ejemplo, una cola de 100 puede derivar en 4450 comparaciones y una cola de 500, en 124 750 comparaciones.
Definición de una clave de cruce adecuada
Para definir una clave de cruce adecuada, considere estos puntos:
- La mayoría de los registros no coinciden. Por lo tanto, compare solo los registros que puedan tener cruces.
- Solo se comparan los registros con la misma clave de cruce.
- Es muy importante tener en cuenta el rendimiento:
- La clave de cruce determina el tamaño de la cola de cruce.
- Para un determinado número de registros, si se duplica el tamaño de la cola de cruce, se duplica el tiempo de ejecución.
- Una clave de cruce "precisa" genera un mejor rendimiento. Una clave de cruce "precisa" es aquella que es específica y contiene más caracteres posiblemente de más campos.
- Una clave de cruce "imprecisa" puede generar más coincidencias. Una clave de cruce "imprecisa" es aquella menos específica, con menos caracteres de posiblemente menos campos.
Búsqueda del equilibrio entre el rendimiento y los resultados de los cruces
Para lograr un buen equilibrio entre el rendimiento y los resultados, considere la clave de cruce y la densidad de los datos.
- Considere las claves de cruce:
- Puede incluir en la clave de cruce los campos que requieren coincidencias exactas.
- Genere una clave adecuada para la regla de cruce. Por ejemplo, para una regla de cruce fonética probablemente sea adecuado generar una clave de cruce fonética.
- A menudo, la clave de cruce estará constituida por partes de todos los campos que se cruzan.
- Tenga en cuenta los efectos de los datos faltantes.
- Considere la densidad de los datos:
- Por ejemplo, al comparar direcciones, la clave de cruce probablemente sería más precisa si todos los registros pertenecieran a una misma ciudad que si la base de datos fuera nacional.
- Considere la cola de cruce más extensa, no solo la promedio. Revise el informe de resumen de cruces para hallar la cola de cruce más extensa.
- Cuando se realizan cruces transaccionales, se aplican las mismas consideraciones a la instrucción SELECT en Candidate Finder (Buscador de candidatos).
Clave de cruce inmediato
En un archivo típico, la mayoría de los registros duplicados coinciden de forma exacta o casi exacta. La definición de una clave de cruce inmediato permite que el motor de comparaciones realice una comparación inicial de ese tipo de claves para determinar si dos registros son duplicados. Este procedimiento puede mejorar significativamente el rendimiento evitando la necesidad de evaluar todas las reglas de cruce de los campos.
Métodos Intraflow Match
El método de cruce predeterminado Intraflow Match compara todos los registros que tengan la misma clave de cruce. Para una cola de cruce de tamaño N, el método por defecto realiza comparaciones que van de N-1 a N× (N-1). Si todos registros coinciden, la cantidad de comparaciones será N−1. Si ningún registro coincide, la cantidad de comparaciones será N×(N−1). Por lo general, el número de comparaciones se encuentra en la parte superior de este rango.
Si el rendimiento es una prioridad, considere usar el método de cruce de ventana dinámica en lugar del método predeterminado. El método de cruce de ventana dinámica compara cada registro con los siguientes registros W (la W indica el tamaño de la ventana). Para un determinado archivo de tamaño N, el método de cruce de ventana dinámica no realiza más de N×W comparaciones, lo que puede mejorar el rendimiento, a pesar de que pueden perderse algunas coincidencias.