SQL Server/SSIS 강좌

유사 항목 그룹화 – 입력 데이터 중 유사한 항목을 그룹핑하자

SungWookKang 2015. 7. 16. 10:08
반응형

유사 항목 그룹화 – 입력 데이터 중 유사한 항목을 그룹핑하자

 

안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida)

이번 시간에는 [유사 항목 그룹화]에 대해서 알아 보도록 하겠습니다.

 

[유사 항목 조회]는 입력 데이터에 대해 참조 테이블의 데이터와 비교하여 유사하다고 판단되는 항목을 출력하는 작업인 반면 [유사 항목 그룹화]는 입력 데이터들 중 서로 유사하다고 판단되는 항목들로 그룹화 시키는 작업 입니다.

 

[유사 항목 조회] 관련 링크

http://blog.naver.com/jevida/140159740992

 

유사성 임계값에 따라 분류되는 그룹의 수는 달라 집니다.

 

[BIDS]를 실행하여 [Integration Services 프로젝트]를 생성 합니다.

 

[제어 흐름] 탭에서 [데이터 흐름 태스크]를 드래그 앤 드롭으로 추가 합니다.

[유사 항목 그룹화]이름을 지정하여 태스크를 생성 합니다.

 

[데이터 흐름]탭에서 그림과 같이 [원본 데이터(OLE DB 원본)]와 [대상 데이터(OLE DB 대상)]을 끌어다 놓습니다. 그 사이 [유사 항목 그룹화]작업을 추가하여 데이터 흐름선을 연결 합니다.

 

[원본 데이터]에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

그림과 같이 편집 창이 나타나면 [OLE DB 연결 관리자]에서 원본 DB의 연결 관리자를 선택하고 해당 테이블을 선택하여 [미리보기]를 이용하여 정상적으로 데이터가 읽어오는지 확인 합니다.

(본 실습에서는 Adventureworks의 Person.Address 테이블 사용)

 

[유사 항목 그룹화]작업에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

아래 그림과 같이 [유사 항목 그룹화 변환 편집기]창이 나타납니다.

[연결 관리자] 탭에서 [OLE DB 연결 관리자] 항목에서 유사 항목 그룹화 작업을 수행 할 때 필요한 임지 저장 테이블의 연결을 지정 합니다. 이때 생성되는 임시 테이블은 입력 데이터를 토큰화 하여 저장하는 인덱스 입니다. 변환 과정에서 자동으로 임시테이블을 생성하고 변환작업을 하므로 운영 DB대신 별도의 임시DB를 사용하는 것이 좋습니다.

 

[열] 탭에서는 유사 항목 그룹화를 수행할 열을 지정하고 세부 설정을 지정할 수 있습니다.

세부 설정은 [유사 항목 조회]의 설정과 비슷 합니다.

 

[숫자]는 입력 데이터에서 숫자에 대한 처리 방식을 지정 합니다.

  • Neither – 앞부분 및 뒷부분의 숫자 모두 분류작업에 특별한 의미가 없음.
  • Leading – 입력 데이터의 앞부분에 나타나는 숫자만 의미가 있음.
  • Trailing – 입력 데이터의 뒷부분에 나타나는 숫자만 의미가 있음.
  • LeadingAndTrailing – 입력 데이터의 앞부분 및 뒷부분의 숫자 모두 의미가 있음.

 

[비교 플래그]는 문자열 데이터를 비교할 때 옵션을 설정 합니다.

 

[고급]탭에서는 임계값 및 토큰값을 설정 할 수 있습니다.

임계값이 높을수록 그룹화 되는 조건이 엄격해 지며 낮을수록 그룹화 되는 수가 작아 집니다.

 

[대상 데이터] 작업에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

[OLE DB 연결 관리자]에서 대상 DB의 연결 관리자를 선택 합니다. 그리고 [새로 만들기] 버튼을 클릭하여 대상 테이블을 새로 만들어 봅니다. (이미 대상 테이블이 존재하는 경우 [테이블 또는 뷰 이름]에서 대상 테이블을 선택 합니다.)

[새로 만들기]를 선택하면 [입력 키열 이름] 과 [출력 키열 이름], [SCORE], 클린젱과 유성 컬럼이 추가 됩니다.

 

[매핑] 탭으로 이동하여 대상이 적절히 매핑 되었는지 확인 합니다.

 

편집이 완료 되었으면 패키지를 실행 합니다.

늘 그러듯!

녹색 : 정상 실행

빨간색 : 오류 발생

 

패키지 작업이 완료 되었으면 SSMS를 실행하여 데이터를 확인 합니다.

 

데이터를 확인해 보면 [_Key_in]은 순차적으로 부여되는 입력 키 값이며 [_key_out]의 숫자가 [_key_in]의 값과 그룹핑 되었다는 것을 의미 합니다.

 

[InputData]의 값은 입력된 데이터를 나타내며 [InputData_Clean]은 그룹회 되어 분류되는 값을 나타 냅니다.

[_Simiarity_InputData]는 InputData열에 대한 유사성을 나타냅니다.

 

반응형