Bloqueo en DataStage®
El bloqueo es un factor importante en el rendimiento y la eficacia durante un partido.
El bloqueo proporciona un método para centrar el alcance de los pares de registros que se van a examinar. En el caso de fuentes de tamaño razonable, no es viable comparar todos los pares de registros, ya que el número de pares posibles es el producto del número de registros de cada fuente. El bloqueo proporciona un método para limitar el número de pares que se examinan.
El bloqueo divide las fuentes en subconjuntos mutuamente excluyentes y exhaustivos, y el proceso de coincidencia busca coincidencias solo dentro de un subconjunto. Si los subconjuntos están diseñados para reunir pares que tienen una mayor probabilidad de coincidir e ignorar aquellos que tienen menos probabilidades de coincidir, el emparejamiento exitoso se vuelve computacionalmente factible para grandes volúmenes de datos.
Los registros de un bloque ya coinciden exactamente en una o varias columnas de bloqueo. El bloqueo es un paso esencial para una correspondencia eficaz en su proyecto de limpieza de datos.
Consideraciones sobre el bloqueo
- El coste computacional (examinar demasiados registros) que el bloqueo ayuda a resolver
- La posibilidad de aumentar la tasa de falsos negativos (cuando un par de registros que representan la misma entidad no coincide) debido a que los registros no pertenecen al mismo bloque
- Elija columnas con datos fiables.
- Elija las columnas que tengan sentido desde el punto de vista empresarial para alcanzar su objetivo. Si desea identificar clientes únicos, bloquear por número de casa no es la mejor opción.
- Los informes de investigación discretos de caracteres le ayudan a seleccionar las columnas de bloqueo. Los informes te indican con qué frecuencia se rellena una columna. Si eliges columnas con datos fiables, entonces realmente estás agrupando registros similares, porque los valores de los datos son fiables.
- Elija columnas con una buena distribución de valores.
- Algunas columnas no tienen muchos valores posibles. Por ejemplo, el género, como valor de columna, normalmente no hace que los bloques sean lo suficientemente pequeños.
- A veces las columnas no tienen una buena distribución de valores. Por ejemplo, si sus datos proceden solo de unos pocos estados o provincias, es posible que los estados o provincias no sean las mejores columnas para utilizar.
- Podría ser preferible una combinación de columnas.
- Utilice suficientes columnas para que el tamaño del bloque sea manejable.
Analogía de bloqueo
Tienes la tarea de emparejar muchos calcetines recién lavados que están en una caja. Puedes seleccionar un calcetín y buscar en toda la caja, calcetín por calcetín, hasta encontrar su pareja. Pero lo más probable es que decidas buscar un método más eficaz. Puedes ordenar o «bloquear» los calcetines por características. Puedes ordenar primero por color. Entonces solo tienes que comparar calcetines blancos con calcetines blancos y no perder el tiempo comparando un calcetín blanco con uno azul.
¿Qué pasaría si encontraras un calcetín rosa que originalmente era blanco, pero ahora está descolorido? Debido a un error de color, no colocas el calcetín rosa con los calcetines blancos en tu primera pasada de clasificación de calcetines. Utilizando términos de coincidencia, el calcetín rosa no forma parte del bloque de calcetines blancos. En las siguientes rondas, después de ordenar por color, ordena los calcetines restantes que no tienen pareja por tamaño y forma. En una de estas pasadas posteriores, es posible que encuentres la coincidencia más probable para el calcetín rosa. Del mismo modo, las pasadas múltiples ayudan a superar el problema de que los registros no formen el grupo de bloques correcto.
Directrices de bloqueo
- Utiliza columnas de bloqueo como claves de ordenación
- Todos los registros que tengan el mismo valor en las columnas de bloqueo son aptos para la comparación durante la fase de emparejamiento.
- Haz bloques lo más pequeños posible
- Entre cien y doscientos registros por fuente es un buen tamaño. La eficiencia disminuye a medida que aumenta el tamaño del bloque. El bloqueo divide las fuentes en subconjuntos que hacen posible el cálculo. El uso de bloques pequeños mejora el rendimiento del sistema al procesar registros. Para crear una estrategia de bloqueo eficaz, utilice varias columnas para bloquear en cada pase.
- Implemente una estrategia de bloqueo que sea coherente con sus objetivos de emparejamiento
- Aunque son preferibles los bloques pequeños de varias columnas, un esquema de bloqueo muy restrictivo puede crear demasiados bloques. El problema de tener demasiados bloques es que los registros que son posibles objetivos para la comparación se distribuyen en múltiples bloques. Si los registros se distribuyen en varios bloques, no se comparan dentro de la pasada y los resultados de la coincidencia podrían verse comprometidos.
- Evitar el desbordamiento de bloques
- El desbordamiento de bloque se produce si, durante una pasada, se agrupan más registros en un bloque concreto que el número especificado para el límite de desbordamiento de bloque. Cuando se produce un desbordamiento de bloque, todos los registros del bloque se omiten en la pasada.
Puede configurar el ajuste de desbordamiento de bloque. La configuración predeterminada para el desbordamiento del bloque es de 10 000 registros. En un proceso de coincidencia de dos fuentes, coincidencia de muchos a uno, el tamaño del bloque de referencia es el único bloque que está limitado por la configuración de desbordamiento. Si se produce un desbordamiento de bloque, examine los criterios de bloqueo. En lugar de aumentar inmediatamente el límite de desbordamiento del bloque, comprenda por qué se produce el desbordamiento. Determina si alguna de las columnas de bloqueo tiene muchos valores diferentes (alta cardinalidad).
Si aumenta el límite de desbordamiento de bloques sin comprender que tiene un problema con sus datos, podría ocultar inadvertidamente un problema con sus datos o su estrategia de bloqueo. Genere el desbordamiento de bloque si sabe por qué se produjo y si tiene una razón lógica para hacerlo.
- Definir valores perdidos para columnas de bloqueo
- Defina los valores que faltan para las columnas de bloqueo. Los bloques que tienen columnas con valores faltantes se omiten en el proceso de coincidencia. Convertir todos los sustitutos genéricos para valores perdidos (como UNKNOWN o 99999) a nulos. Cuando los valores que faltan no se convierten en nulos, el proceso de coincidencia no identifica los valores como faltantes. Como resultado, pueden producirse costosos desbordamientos de bloques. Por ejemplo, si un número de identificación nacional está presente solo en la mitad de los registros, pero los valores que faltan se informan como espacios en lugar de nulos, los números en blanco forman un gran bloque. El bloque grande puede provocar un cálculo excesivo y un desbordamiento del bloque.
- Para fuentes con información limitada, utilice un código Soundex inverso
- El Soundex inverso se forma mirando el nombre al revés y calculando un Soundex. Por ejemplo, el reverso de JONES sería SENOJ. Dado que el algoritmo Soundex conserva la primera letra, ejecutar un Soundex inverso permite errores al principio de los nombres.
Ejemplos de bloqueo
- Números de identificación individual
Los números de identificación suelen ser fiables. En una primera fase, utilice números de identificación individuales, como números de identidad nacionales, números de historiales médicos, números de reclamaciones, etc., incluso si los números faltan o son erróneos en un porcentaje considerable de los registros.
Por ejemplo, las fuentes contienen un número de identificación nacional en el 50 % de los registros. El pase 1 está bloqueado por el número de identidad nacional. Match omite todos los registros que no tienen número de identificación nacional. Los registros omitidos se aplican en la segunda pasada. Sin embargo, un porcentaje bastante elevado de los registros se emparejan fácilmente.
Si hay varios números de identificación, utilícelos en las dos primeras pasadas. Después, prueba con otras columnas. Los números de identificación son ideales para bloquear columnas, ya que dividen los registros en muchos conjuntos.
- Fechas de nacimiento
Las fechas de nacimiento son excelentes columnas de bloqueo.
Por ejemplo, utilizando la herramienta Transformer stage, puede separar las fechas de nacimiento en estas columnas: BirthYear,, BirthMonth, y BirthDay. Para fuentes más grandes (más de 100 000 registros), utilice las tres columnas como columna de bloqueo de primera pasada. Para fuentes más pequeñas, utilice BirthYear, BirthMonth, y una columna adicional, como Género. Las pasadas posteriores pueden utilizar bloques que contengan BirthDay.
- Fechas del evento
Las fechas de los eventos, como la fecha del accidente, la fecha de la reclamación, la fecha de ingreso en el hospital, etc., son útiles como columnas de bloqueo.
- Nombres
Una codificación fonética (como los códigos Soundex o NYSIIS) del apellido es una columna de bloqueo útil. Para fuentes grandes, combine este código con la primera letra del nombre de pila o el año de nacimiento. Recuerde que cada cultura utiliza convenciones diferentes para los apellidos, por lo que no debe basarse exclusivamente en ellos.
- Direcciones
Las direcciones postales proporcionan una gran cantidad de información para el bloqueo. Por ejemplo, los códigos postales y la codificación fonética (Soundex o NYSIIS) del nombre de la calle o de la ciudad son excelentes opciones.