2013-12-20 4 views
0

나는 약 800,000 개의 ID 번호 (각각 11 자리 또는 13 자리)의 데이터베이스를 가지고 있습니다.비슷한 레코드 찾기

다음으로 참조 용으로 사용 된 수천 개의 ID 번호 목록이 있지만 데이터베이스의 ID 번호와 일치하지 않습니다. 대개 고객의 손가락 오류 때문입니다. 이는 일반적으로 한 자릿수를 생략하거나 추가하거나 잘못 할 수 있음을 의미합니다.

나는 "유사한"ID 번호를 기반으로 한 경기를하려고합니다. 그것에 대해 가장 좋은 방법은 무엇입니까?

저는 PowerShell과 QLikView에서 상당히 능숙하지만 사용하는 것이 확실하지 않습니다. Excel은 레코드 수가 많아서 부족합니다.

답변

1

이 문제는 데이터웨어 하우징과 관련하여 매우 잘 알려져 있습니다. 일부 데이터 품질 솔루션은 이러한 실수를 발견하기 위해 존재하지만 모든 실수를 파악할 수있는 도구는 없습니다.

인 모든 ID가 인 것으로 확신합니까? 실제로 맞습니까? 즉, 실수로 경기를 제공하는 대신 모든 경기가 좋다고 말할 수 있습니까? 오타 또는 여러 가지 오타가 유효하지만 잘못된 ID를 만드는 경우를 생각해보십시오.

일치하지 않는 두 번째 부분은 approximate string matches으로 어느 정도 해결할 수 있습니다. 즉, ID를 테라 (tera) 주변의 값으로 생각하는 대신 11 또는 13 자 길이의 문자열을 생각해보십시오. Levenshtein distances을 계산하면 오타 중 적어도 일부를 파악할 수 있습니다.

퍼지 검색의 경우에도 코드에 일종의 내장 체크섬 또는 숫자 양식 그룹이 없으면 모든 깨진 ID 코드를 복구 할 수 없습니다. 즉, 숫자 1-3은 무언가를 식별하고 4-7은 다른 것을 의미합니다. 무의미한 하위 그룹이있는 ID를 찾으면 어떤 하위 그룹에 실수가 있는지 파악할 수 있습니다.