유사 항목 조회 변환
적용 대상: SQL Server Azure Data Factory의 SSIS Integration Runtime
유사한 항목의 조회 변환은 데이터 표준화, 데이터 수정 및 누락된 값을 제공해 드리는 것과 같은 데이터 정리 작업을 실시합니다.
참고 항목
성능 및 메모리 제한 사항을 포함한 유사 항목 조회 변환에 대한 자세한 정보는 구조적 쿼리 언어 서버 통합 서비스 2005에서 유사 항목 조회 및 유사 항목 그룹화백서를 참고해 주세요.
유사 항목 조회 변환은 유사 항목 일치를 사용한다는 것에서 조회 변환과는 다른 것입니다. 조회 변환은 등가 조인을 사용하여 참조 테이블에서 일치하는 기록을 찾습니다. 일치하는 레코드가 하나 이상 있는 레코드와 일치하는 레코드가 없는 레코드를 반환합니다. 반대로 유사 항목 조회 변환은 유사 일치를 사용하여 참조 테이블에서 하나 이상의 근접하게 일치하는 항목을 반환합니다.
유사 항목 조회 변환은 대다수의 경우에 패키지 데이터 흐름에서 조회 변환을 따릅니다. 즉, 먼저 조회 변환이 정확히 일치하는 항목을 찾습니다. 이 작업이 실패할 경우에 유사 항목 조회 변환은 참조 테이블에서 가까운 일치 항목을 제공하는 것입니다.
변환은 입력 데이터를 정리하고 확장하는 데 사용되는 값을 포함하고 있는 참조 데이터 소스에 대한 액세스 권한이 필요합니다. 참조 데이터 소스는 구조적 쿼리 언어 서버 데이터베이스의 테이블이어야 합니다. 입력 열에 대한 값과 참조 테이블에 대한 값 사이에의 일치는 정확히 일치하거나 유사 항목의 일치일 수 있습니다. 그러나 변환을 작업하려면 유사 항목 일치를 위해 하나 이상의 열 일치를 구성해 주어야 합니다. 정확한 일치만 사용하고 싶으신 경우에는 그 대신에 조회 변환을 사용하시면 됩니다.
이 변환에는 1개의 입력과 1개의 출력이 있습니다.
DT_WSTR 및 DT_STR 데이터 형식을 가지고 있는 입력 열만 유사 항목 일치에 사용할 수 있습니다. DT_TEXT, DT_NTEXT 및 DT_IMAGE를 제외한 모든 데이터 형식에 대한 열에 정확한 일치를 적용할 수 있게 되는 것입니다. 자세한 내용은 Integration Services 데이터 형식을 참조하세요. 입력과 참조 테이블 사이에서의 조인에 참여하려고 하는 열은 호환되는 데이터 형식을 가지고 있어야 합니다. 예를 들면, DTS DT_WSTR 데이터 형식의 열을 구조적 쿼리 언어 서버 nvarchar 데이터 형식의 열에 조인하는 것이 유효하겠지만 DT_WSTR 데이터 형식의 열을 int 데이터 형식의 열에 조인하는 것은 유효하지 않은 것입니다.
최대 메모리 양, 행 비교 알고리즘 및 변환에서 사용하게 되는 인덱스 및 참조 테이블의 캐싱을 지정하여 이 변환을 사용자 지정할 수 있는 것입니다.
유사 항목 그룹화 변환에서 사용하는 메모리의 양은 MaxMemoryUsage 사용자 지정 속성을 설정하여 만들어 보실 수 있습니다. 메가바이트 수를 지정하거나 값으로 0을 사용하게 되면 변환에서 해당 요구 사항 및 사용 가능한 실제 메모리에 따라 동적 양의 메모리를 사용해 보실 수 있습니다. 패키지가 로드될 때 MaxMemoryUsage 사용자 지정 속성은 속성 식으로 업데이트할 수 있습니다. 자세한 내용은 Integration Services(SSIS) 식, 패키지에서 속성 식 사용 및 변환 사용자 지정 속성을 참조하세요.
유사 항목 일치 동작 제어
유사 항목 조뵈 변환은 실시하고 있는 조회를 사용자 정의내리기 위한 세 가지 기능으로, 즉 입력되는 행 마다 반환하려고 하는 최대 일치 항목의 수, 토큰 구분 기호 및 유사성 임계값을 포함함하고 있는 것입니다.
변환은 지정된 최대 일치 항목 개수까지 0개 이상의 일치 항목을 반환합니다. 최대 일치 횟수를 지정한다고 해도 변환이 최대 일치 항목 수를 반환하는 것은 아닙니다. 변환이 일치 항목의 최대 개수만큼만 반환해준다는 것만 보장해 주는 것입니다. 최대 일치 횟수를 1보다 큰 값으로 설정하는 경우에는 변환 출력에 조회당 둘 이상의 행이 포함될 수 있고 일부 행은 중복될 수 있습니다.
변환은 데이터를 토큰화하는 데 사용하는 기본 구분 기호 집합을 제공하지만 필요하다면 데이터에 맞는 토큰 구분 기호를 추가할 수 있습니다. 구분 기호 속성은 기본 구분 기호를 포함합니다. 토큰화는 데이터 내에서 서로 비교가 되는 단위를 정의해 주기 때문에 중요한 것입니다.
유사성 임계값은 구성 요소 및 조인 수준에서 설정할 수 있습니다. 조인 수준 유사성 임계값은 변환이 입력과 참조 테이블의 열 사이에서의 유사 항목 일치를 실시하는 경우에만 사용하실 수 있는 것입니다. 유사성 범위는 0에서 1 사이입니다. 임계값이 1에 가까워 질수록 중복으로 여겨지기 위해서 행과 열은 더 유사해야 합니다. 구성 요소 및 조인 수준에서 MinSimilarity 속성을 설정하고 유사성 임계값을 지정해 보세요. 구성 요소 수준에서 지정한 유사성에 부합하려면 모든 행의 모든 일치에 대한 유사성이 구성 요소 수준에서 지정한 유사성 임계값보다 크거나 같아야 합니다. 즉, 행 혹은 조인 수준에서 일치하는 항목이 동일하게 가깝지 않다면 구성 요소 수준에서 매우 가까운 일치 항목을 지정할 수 없다는 것입니다.
각 일치 항목에는 유사성 점수와 신뢰성 점수가 포함됩니다. 유사성 점수는 입력 기록과 유사 항목 조회 변환이 참조 테이블에서 반환되는 기록 사이에서의 텍스트 유사성을 수학적으로 측정한 것입니다. 신뢰성 점수는 특정 값이 참조 테이블에 있는 일치 항목 중에서 가장 유사한 일치 항목이 될 수 있는 가능성을 측정하는 단위입니다. 레코드에 할당되는 신뢰성 점수는 반환되는 다른 일치 레코드에 따라 달라집니다. 예를 들면, St.및 세인트를 일치시키면 다른 일치 항목과는 상관없이 낮은 유사성 점수를 반환합니다. 세인트가 유일하게 일치한 항목인 경우에는 신뢰도 점수가 높습니다. 참조표에 세인트와 St. 는 모두 나타나게 되면 St.에 대한 신뢰도가 높은 것이며 세인트에 대한 신뢰도는 낮은 것입니다. 그러나 유사성이 높다는 것이 신뢰도가 높다는 것을 의미하지는 않습니다. 예를 들면, 4장 값을 조회하는 경우에는 반환된 결과 1 장, 2장, 및 3 장은 유사성 점수가 높지만 결과 중 어느 것이 가장 일치하는지 불확실하기 때문에 신뢰도 점수가 낮은 것입니다.
유사성 점수는 0에서 1 사이의 10진수 값으로 표현이 되며 여기에서 유사성 점수 1은 입력 열의 값과 참조 테이블의 값 간의 정확히 일치하고 있음을 의미합니다. 신뢰도 점수는 0에서 1 사이에서의 10진수 값에서도 일치에 대한 신뢰도를 나타내 줍니다. 사용 가능한 일치 항목이 없는 경우 0의 유사성 및 신뢰성 점수가 해당 행에 할당되고 참조 테이블에서 복사된 출력 열은 Null 값을 포함합니다.
때로는 유사 항목 조회가 참조 테이블에서 적절한 일치 항목을 찾아주지 못할 때가 있습니다. 이는 조회에 사용되는 입력 값이 짧은 단일 단어인 경우라면 이러한 문제가 발생할 수 있는 것입니다. 예를 들면, helo는 해당 열 혹은 행의 다른 열에 다른 토큰이 없을 때 참조 테이블의 hello값과 일치하지 않다는 것입니다.
변환 출력 열에는 통과 열로 표시되어 진 입력 열, 조회 테이블에서 선택한 열 및 다음과 같은 추가적인 열이 포함됩니다:
_Similarity- 입력과 참조 열의 값 사이의 유사성을 나타내는 열입니다.
_Confidence- 일치 항목의 신뢰성을 나타내는 열입니다.
변환은 구조적 쿼리 언어 서버 데이터베이스에 대한 연결을 사용하고 유사 항목 일치 알고리즘에서 사용하는 임시 테이블을 만듭니다.
유사 항목 조회 변환을 실행
패키지가 변환을 처음 실행할 때 변환에서 참조 테이블을 복사하고 정수 데이터 형식의 키를 새 테이블에 추가한 이후에 키 열에 인덱스를 작성합니다. 다음으로 변환은 참조 테이블의 복사본에 일치 인덱스라고 불리는 인덱스를 작성합니다. 일치 인덱스는 변환 입력 열의 값을 토큰화한 결과를 저장해 주는 것이며 변환은 조회 작업에서 토큰을 사용하는 것입니다. 일치 인덱스는 구조적 쿼리 언어 서버 데이터베이스의 테이블입니다.
패키지가 다시 실행될 때 변환에서 기존 일치 인덱스를 사용하거나 새로운 인덱스를 만들어 보실 수 있습니다. 참조 테이블이 정적인 경우에는 패키지는 데이터 정리 세션을 반복하기 위한 인덱스를 다시 만드는 것에 비용이 많이 들어가는 프로세스를 피할 수 있습니다. 기존 인덱스를 사용하기 위해 선택하는 경우에는 패키지가 처음 실행되면 인덱스가 만들어지게 되는 것입니다. 여러 유사 항목 조회 변환에서 동일한 참조 테이블을 사용하는 경우에는 모두 동일한 인덱스를 사용할 수 있는 것입니다. 인덱스를 다시 사용하려면 해당 조회 작업이 동일해야 하며 조회가 같은 열을 사용해야 합니다. 인덱스의 이름을 지정하고 인덱스를 저장하는 구조적 쿼리 언어 서버 데이터베이스에 대한 연결을 선택할 수 있습니다.
변환에서 일치 인덱스를 저장하는 경우에는 자동적으로 일치 인덱스를 유지할 수 있습니다. 즉, 참조 테이블에서의 기록이 업데이트 될 때마다 일치 인덱스도 업데이트되는 것입니다. 패키지가 실행될 때 인덱스를 다시 작성할 필요가 없기 때문에 일치 인덱스를 유지 관리하면서 처리 시간을 절약할 수 있는 것입니다. 변환은 일치 인덱스를 관리하는 방법을 지정할 수 있는 것입니다.
다음 표에서는 일치 인덱스 옵션을에 대해 설명해 드립니다.
옵션 | 설명 |
---|---|
GenerateAndMaintainNewIndex | 새 인덱스를 만들어 저장하고 유지 관리합니다. 변환은 참조 테이블에 트리거를 설치하고 참조 테이블과 인덱스 테이블을 동기화한 상태로 유지해 주는 것입니다. |
GenerateAndPersistNewIndex | 새로운 인덱스를 만들며 저장하지만, 유지 관리를 해주지는 않습니다. |
GenerateNewIndex | 새 인덱스를 만들지만 저장하지 않습니다. |
ReuseExistingIndex | 기존 인덱스를 재사용합니다. |
일치 인덱스 테이블을 유지 관리
GenerateAndMaintainNewIndex 옵션은 참조 테이블에 트리거를 설치하여 일치 인덱스 테이블과 참조 테이블을 동기화된 상태로 유지하는 것입니다. 설치되어진 트리거를 제거해야 하는 경우에는 sp_FuzzyLookupTableMaintenanceUnInstall 저장 프로시저를 실행하여 MatchIndexName 속성에 지정되어 있는 이름을 입력 매개 변수 값으로 제공해야 합니다.
sp_FuzzyLookupTableMaintenanceUnInstall 저장 프로시저를 실행하기 이전에 유지 관리되는 일치 인덱스 테이블을 삭제하지 말아주시기 바랍니다. 일치 인덱스 테이블이 삭제되는 경우에 참조 테이블의 트리거가 올바르게 실행되지 않습니다. 참조 테이블에 대한 트리거를 수동으로 삭제할 때까지 모든 후속 업데이트는 실패하게 될 것입니다.
SQL TRUNCATE TABLE 명령은 DELETE 트리거를 호출하지 않습니다. 참조 테이블에서 TRUNCATE TABLE 명령을 사용하는 경우에 참조 테이블과 일치 인덱스는 더 이상 동기화되지 않으며 유사 항목 조회 변환에 실패하게 됩니다. 일치 인덱스를 유지 관리하는 트리거가 참조 테이블에 설치되어 있으므로 TRUNCATE TABLE 명령 대신 SQL DELETE 명령을 사용해야 합니다.
참고 항목
유사 항목 조회 변환 편집기의 참조 테이블 탭에서 저장된 인덱스 유지 관리를 선택할 때 변환에서 관리되고 있는 저장 프로시저를 사용하여 인덱스를 유지 관리합니다. 이러한 관리되는 저장 프로시저는 SQL Server 서버에서 공용 언어 런타임 통합 기능을 사용합니다. 기본적으로 공용 언어 런타임은 구조적 쿼리 언어 서버에서 활성화되지 않습니다. 저장된 인덱스 유지 관리 기능을 사용하기 위해 공용 언어 런타임 통합을 활성화해야 합니다. 자세한 내용은 CLR 통합 사용을 참조하십시오.
저장된 인덱스 유지 관리 옵션에서는 공용 언어 런타임 통합이 필요하기 때문에 이 기능은 공용 언어 런타임 통합이 활성화되도록 SQL Server 서버 인스턴스에서 참조 테이블을 선택하는 경우에만 작동하게 되는 것입니다.
행 비교
유사 항목 조회 변환을 구성할 때 변환에서 참조 테이블에서 일치하는 기록을 찾기 위해 사용하는 비교 알고리즘을 지정할 수 있습니다. Exhaustive 속성을 True로 설정하면 변환에서는 입력의 각 행을 참조 테이블의 모든 행과 비교합니다. 이 비교 알고리즘은 보다 정확한 결과를 생성할 수 있지만 참조 테이블의 행 개수가 많으면 변환이 느리게 수행될 수 있습니다. Exhaustive 속성이 True로 설정되는 경우에 전체 참조 테이블이 메모리에 로드되게 됩니다. 성능 문제를 방지하려면 패키지 개발 중에만 Exhaustive 속성을 True로 설정하는 것이 좋습니다.
Exhaustive 속성이 False로 설정된 경우에는 유사 항목 조회 변환은 입력 기록과 공통적으로 하나 이상의 인덱싱된 토큰 혹은 부분 문자열(부분 문자열을 q-gram이라고 함)을 가지고 있는 일치 항목만을 반환합니다. 조회의 효율성을 최대화하기 위해 유사 항목 조회 변환에서 일치 항목을 찾으려고 사용하는 반전된 인덱스 구조에서 테이블의 각 행에 있는 토큰의 하위 집합만 인덱싱됩니다. 입력 데이터 세트가 작으면 Exhaustive를 True로 설정하여 인덱스 테이블에 공통된 토큰이 없는 일치 항목이 누락되지 않도록 합니다.
인덱스 및 참조 테이블 캐싱
유사 항목 조회 변환을 구성할 때 변환이 작업을 실행하기 이전에 메모리의 인덱스 및 참조 테이블을 부분적으로 캐시할지에 대한 여부를 지정해 보실 수 있습니다. WarmCaches 속성을 True로 설정하면 인덱스와 참조 테이블이 메모리에 로드됩니다. 입력에서 행을 많이 가지고 있는 경우에는 WarmCaches 속성을 True로 설정해 준다면 변환 성능이 향상될 수 있습니다. 입력에서 행의 수를 적게 가지고 있는 경우에는 WarmCaches 속성을 False로 설정해 준하면 큰 인덱스를 더 빠르게 다시 사용할 수 있습니다.
임시 테이블 및 인덱스
이를 실행하실 때 유사 항목 그룹화 변환은 연결되고 있는 구조적 쿼리 언어 서버 데이터베이스에 테이블 및 인덱스와 같은 임시의 개체를 만들어 주세요. 이러한 임시 테이블 및 인덱스의 크기는 참조 테이블의 행 및 토큰 수와 유사 항목 조회 변환이 만들어 내는 토큰 수에 비례합니다. 그러므로 상당한 양의 디스크 공간을 사용해 보실 수 있습니다. 변환은 또한 이 임시 테이블을 쿼리합니다. 따라서 특히 프로덕션 서버가 사용 가능한 디스크 공간이 제한된 경우에는 유사 항목 조회 변환을 구조적 쿼리 언어 서버 데이터베이스의 비-프로덕션 인스턴스에 연결하는 방법을 고려해 보셔야 합니다.
이 변환에서 사용하는 테이블과 인덱스가 로컬 컴퓨터에 있는 경우에 이 변환의 성능이 향상될 수 있습니다. 유사 항목 조회 변환에서 사용하는 참조 테이블이 프로덕션 서버에 있는 경우 테이블을 비프로덕션 서버로 복사하고 복사본에 액세스하도록 유사 항목 조회 변환을 만들어 주시는 것이 좋습니다. 이렇게 하면 조회 쿼리가 프로덕션 서버의 리소스를 소비하지 못하도록 막을 수 있습니다. 또한 유사 항목 조회 변환이 일치 인덱스를 유지하려고 하는 경우에는 (즉, MatchIndexOptionsis가 GenerationAndMaintainNewIndex로 설정된 경우) 변환은 데이터 정리 작업 기간 동안에 참조 테이블을 잠궈야 하며 다른 사용자 및 응용 프로그램이 테이블에 액세스하지 못하게 하실 수 있습니다.
유사 항목 조회 변환을 구성
SSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.
고급 편집기 대화 상자를 사용하거나 프로그래밍 방식으로 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하세요:
관련 작업
데이터 흐름 구성 요소의 속성을 설정해 주는 방법에 대한 자세한 정보는 데이터 흐름 구성 요소의 속성 설정.을 참고해 주세요.
유사 항목 조회 변환 편집기 (참조 테이블 탭)
유사 항목 조회 변환 편집기 대화 상자의 참조 테이블 탭을 사용하여 조회에 사용하기 위한 원본 테이블 및 인덱스 지정해 주세요. 참조 데이터 소스는 구조적 쿼리 언어 서버 데이터베이스의 테이블이어야 합니다.
참고 항목
유사 항목 조회 변환은 참조 테이블의 작업 복사본을 만들어 지는 것입니다. 아래에 설명된 인덱스는 일반 구조적 쿼리 언어 서버 인덱스가 아닌 특수 테이블을 사용하여 이 작업 테이블에 만들어 지는 것입니다. 저장된 인덱스 유지 관리를 선택하지 않는 한 변환에서 기존 원본 테이블을 수정하지 않습니다. 이 경우 변환에서는 참조 테이블에 대한 변경 내용을 기반으로 작업 테이블 및 조회 인덱스 테이블을 업데이트하는 트리거를 참조 테이블에 만듭니다.
참고 항목
유사 항목 조회 변환의 전체 및 MaxMemoryUsage 속성은 유사 항목 조회 변환 편집기에서 사용할 수 없지만 고급 편집기.를 사용하여 설정해보실 수 있습니다. 또한 MaxOutputMatchesPerInput의 경우에는 100보다 큰 값은 고급 편집기만 지정하실 수 있습니다. 이러한 속성에 대한 자세한 정보는 Transformation Custom Properties의 유사 항목 그룹화 변환 섹션을 참고해 주세요.
옵션
OLE DB 연결 관리자
목록에서 기존 OLE DB 연결 관리자를 선택하거나 새로 만들기를 클릭하여 새 연결을 만듭니다.
New
OLE DB 연결 관리자 구성 대화 상자를 사용하여 새 연결을 만듭니다.
새 인덱스 생성
변환에서 조회에 사용하기 위한 새로운 인덱스 만들기를 지정해 주세요.
참조 테이블 이름
참조 (조회) 테이블로 사용하기 위한 기존 테이블을 선택해 주세요.
새로운 인덱스를 저장
새로운 조회 인덱스를 저장 하기 위해 이 옵션을 선택해 주세요.
새로운 인덱스 이름
새로운 조회 인덱스 저장을 선택한 경우에는 인덱스 설명이 포함된 이름을 입력해 주세요.
저장된 인덱스 유지 관리
새로운 조회 인덱스를 저장하기 위해 선택한 경우에는 구조적 쿼리 언어 서버에서 해당 인덱스를 유지 관리할 것인지에 대한 여부를 지정합니다.
참고 항목
유사 항목 조회 변환 편집기의 참조 테이블 탭에서 저장된 인덱스 유지 관리를 선택할 때 변환에서 관리되고 있는 저장 프로시저를 사용하여 인덱스를 유지 관리합니다. 이러한 관리되는 저장 프로시저는 SQL Server 서버에서 공용 언어 런타임 통합 기능을 사용합니다. 기본적으로 공용 언어 런타임은 구조적 쿼리 언어 서버에서 활성화되지 않습니다. 저장된 인덱스 유지 관리 기능을 사용하기 위해 공용 언어 런타임 통합을 활성화해야 합니다. 자세한 내용은 CLR 통합 사용을 참조하십시오.
저장된 인덱스 유지 관리 옵션에서는 공용 언어 런타임 통합이 필요하기 때문에 이 기능은 공용 언어 런타임 통합이 활성화되도록 SQL Server 서버 인스턴스에서 참조 테이블을 선택하는 경우에만 작동하게 되는 것입니다.
기존 인덱스 사용
변환에서 조회를 하기위해 기존 인덱스가 사용되도록 지정해 주세요.
기존 인덱스에 대한 이름
목록에서 이전에 만들어진 조회 색인을 선택해 주세요.
유사 항목 조회 변환 편집기 (열 탭)
유사 항목 조회 변환 편집기 대화 상자의 열 탭을 사용하여 입력 및 출력 열에 대한 속성을 설정해 주세요.
옵션
사용 가능한 입력 열
입력 열을 끌어 당겨서 사용 가능한 조회 열에 연결해 주세요. 이러한 열에는 일치하며 지원되는 데이터 형식을 가지고 있어야 합니다. 매핑 라인을 선택하고 마우스 오른쪽 단추를 클릭하여 관계 만들기 대화 상자에서 매핑을 편집해 주세요.
이름
사용 가능한 입력 열의 이름을 표시합니다.
통과
변환 출력에 입력 열을 포함할지에 대한 여부를 지정해 주세요.
사용 가능한 조회 열
확인란을 사용하여 유사 항목 조회 작업을 실행하기 위한 열을 선택해 주세요.
조회 열
사용 가능한 참조 테이블 열 목록에서 조회 열을 선택합니다. 선택 내용에 따라 사용 가능한 입력 열 테이블의 확인란이 달라집니다. 사용 가능한 조회 열 테이블에서 열을 선택하게 되면 반환된 각 일치행에 대한 참조 테이블 열 값이 포함된 출력 열이 만들어지는 것입니다.
출력 별칭
각 조회 열에 대한 출력의 별칭을 입력합니다. 기본값은 입력 열의 이름이긴 하지만 설명이 포함되어 있는 고유 이름을 임의로 선택할 수 있습니다.
유사 항목 조회 변환 편집기 (고급 탭)
유사 항목 조회 변환 편집기 대화 상자의 고급 탭을 사용해서 유사 항목 조회에 대한 매개 변수를 설정해 주세요.
옵션
조회당 출력하기 위한 최대 일치 수
각 입력 행에 대해 반환할 수 있는 최대 일치 횟수를 지정해 주세요. 기본값은 1입니다.
유사성 임계값
슬라이더를 사용하여 구성 요소 수준에서 유사성 임계값을 설정합니다. 값이 1에 가까울수록 조회 값과 소스값의 유사성이 더 가까워져야 일치 항목으로 인정받게 되는 것입니다. 임계값을 높이게 되면 고려해야 할 필요가 있는 후보 기록의 수가 줄어들게 되므로 일치 속도는 향상될 수 있는 것입니다.
토큰 구분 기호
변환에서 열 값을 토큰화하는 데 사용하는 구분 기호를 지정해 주세요.