2011-08-22 5 views
1

MS SQL Server와 호환되는 일부 중복 제거 소프트웨어를 찾고 있습니다. 나는 모든 다른 언어로 전세계 주소를 포함하는 상당히 광범위하고 지저분한 테이블을 가지고있다. 부모/자식 레코드로 중복을 처리하도록 테이블이 설정되므로 일치를 처리하는 일부 기능 (즉, 중복 제거뿐 아니라)이 필요합니다.데이터 중복 제거 소프트웨어에 대한 제안 사항?

편집 : 여기에 구조를

ParentID | MasterID | PropertyName | Address1 | Address2 | PostalCode | City | StateProvinceCode | CountryCode | PhoneNumber 

MasterID 각 레코드에 대해 고유을합니다.

ParentID은 각 항목의 부모 레코드에 대해 MasterID을 포함하고 상위 레코드는 MasterID = ParentID입니다.

CountryCode은 두 자의 ISO 국가 코드 (전화 코드 아님)입니다.

+0

나는 이것을 위해 SQL을 사용하겠다. 이것은 중복 제거 (de-duping)에서 훌륭하다. 테이블 구조와 기준을 게시하면 쿼리에 도움이 될 수 있습니다. – JNK

+0

동일한 주소를 검색하는 것 이상을 찾고 있습니까? 예 : 123 N. Main Street를 123 North Main St.의 중복으로 간주 하시겠습니까? – hatchet

+0

참조 http://stackoverflow.com/questions/291728/open-source-address-scrubber – hatchet

답변

2

주소 중복을 추적하는 것은 악명 높습니다. 문제를 일으킬 수있는 하나의 주소를 작성하는 약 10 가지 유효한 방법이 있습니다.

일부 복제본을 허용하는 비즈니스 규칙이 있다는 사실은 내게 받아 들일 수없는 속임수를 찾고 제거하는 데 자신의 소프트웨어를 사용하는 것이 더 나을 것이라고 생각하게 만듭니다.

예전에는 무료 지오 코딩 서비스 (예 : Google의 매핑 API)를 통해 주소를 지정하고 서로의 특정 임계 값 (10 피트 또는 기타) 내에있는 지점을 찾고 주소로이 작업을 수행했습니다. . 이 시점에서 "허용 할 수없는 복제본"으로 간주되는지 여부를 판단하고 삭제할 수 있습니다.

좌표 사이의 거리를 찾으려면 Great Circle Distance를 찾는 것이 좋습니다. 행운을 빕니다!

+0

이렇게하면 123 N. Main St. # 100이 123 N. Main St # 102 (말 그대로 10 피트 떨어져있는 같은 건물의 홀 건너편에있는 사무실)로 간주되지 않도록하려면 어떻게해야합니까? ? – hatchet

+0

같은 건물의 사무실 번호가 같은 위치에 지오 코딩한다고 의심됩니다. 하지만 그렇지 않다면이 유형의 것을 찾기 위해 로직을 추가해야합니다 (임계 값을 확장하거나 예를 들어 같은 거리 번호와 이름을 찾습니다). 완벽하지는 않지만 주소에 대해 더 잘 작동하는 솔루션을 아직 찾지 못했습니다. –

+0

이 방법이 효과적 일 수 있다고 생각합니다. 이전에는 Google과 Bing/MSFT의 지오 코딩 API를 사용하여 다른 데이터를 지오 코딩했습니다. 내 우려는이 테이블은 200k + 레코드이며 나는 많은 요청에 대해 무료라고 생각하지 않는다. – copjon

관련 문제