Supongo que debido a que uno de sus campos es SSN, desea coincidencias exactas, lo que significa que para cada registro de una fuente externa hay una o ninguna coincidencia en su base de datos interna.
La tecnología simple sería utilizar una base de datos relacional. Dicho esto, el esquema debe configurarse para evitar que su consulta explote. Primero configure su propio esquema de datos interno para que sus entidades de confianza se definan en una definición de clave principal al crear la tabla. Esto tiene el beneficio adicional de encontrar también duplicados en sus propios datos para garantizar la integridad de sus datos. Esto solo funcionaría si la combinación de las teclas es única. Por ejemplo, puede tener varios nombres “John” y varios apellidos “Doe” en sus registros, pero solo puede haber un registro con un nombre “John” y un segundo nombre “Doe”. También debe configurar la columna SSN para que tenga una restricción “única”.
A continuación, cree una tabla para los registros de origen externos, pero no defina las claves principales porque, según usted, existen posibles errores en los datos. Debe crear un índice en la tabla después de importar los datos para verificar la unicidad e integridad de los datos. Esta tabla se crea temporalmente solo para los datos importados.
- Cómo escribir un programa en C para implementar un algoritmo de planificación de prioridades, junto con la visualización del diagrama de Gantt
- ¿Qué es el algoritmo Google Panda?
- ¿Cómo mejorarías el algoritmo de autocorrección?
- ¿Hay algún algoritmo que un principiante pueda adoptar para resolver un Cubo de Rubik a partir de cualquier configuración?
- ¿Debo comenzar a aprender programación de computadoras con CS50 o con un libro de estructuras de datos y algoritmos?
Cree un índice en su propia tabla de datos donde los atributos coincidan con los atributos de la fuente externa. Esto acelerará las uniones de mesa que está a punto de realizar. Puede resultar que la columna SSN sea la única necesaria para el índice.
Ahora realiza la unión para hacer el partido. Ingrese los resultados en otra tabla para guardarlos con seguridad para su propósito.
Pero, ¿cómo saber si el SSN de algunos registros no es correcto? Puede realizar una unión posterior en las otras columnas y tener una cláusula where definida como “your.SSN outside.SSN” para encontrar los registros infractores. Si no se devuelven filas, eres bueno. Puede usar este método para buscar variaciones en los nombres (como mi primer nombre puede ser “Steve” o “Steven”).
Si las consultas se ejecutan lentamente, debe encontrar los planes de consulta para ver dónde se pueden crear índices para ayudar a acelerar las cosas.
¿Qué pasa si hay errores en otros campos? Si hay demasiados errores, es posible que deba verificar manualmente los registros que no coinciden con ninguno de sus datos internos.
TL; DR … Contrata a un consultor de bases de datos para que haga la correspondencia exacta por ti.
Si no está buscando coincidencias exactas, pero está buscando un conjunto agregado de registros (como se usa en el marketing de focalización utilizado por Yahoo, Facebook o Google), probablemente necesite usar una base de datos NoSQL como Hadoop o Cassandra para realizar mapear / reducir operaciones. Las bases de datos NoSQL carecen de esquema, por lo que esto puede funcionar mejor debido a la imprevisibilidad de los datos externos.
Se necesita más desarrollo para este último, por lo que esto fue un ejercicio para el OP.
¡Buena suerte!