2010-04-02 2 views
0

나는 다가올 문제에 대한 해결책을 모색하고있다.여러 버전의 SSIS 패키지를 유지 관리 할 필요없이 추가 된 입력 데이터 열을 처리하는 방법은 무엇입니까?

ETL 프로세스에 데이터를 제공하는 제품에는 현재 여러 버전이 있습니다. 우리 고객은 모두 일부 버전의 제품을 사용하고 있지만 모두 동일한 버전을 사용하지는 않으며 모두 동시에 업그레이드되지는 않습니다.

새 버전의 제품이 출시되면서 가장 일반적인 변경 사항은 새 데이터 열을 추가하는 것입니다. 삭제되거나 이름이 변경되는 열은 때때로 발생하지만, 현재 우리의 주안점은 새로운 열을 처리하는 방법입니다.

문제를 해결하려면 이전 버전의 제품을 사용하는 클라이언트의 데이터를 처리하는 방법이 필요합니다. SSIS 패키지의 새 열을 고려하지 않으면 이전 제품 버전을 사용하는 클라이언트의 해당 열에있는 데이터가 처리되지 않습니다.

우리가 피하고 싶은 것은 각 버전의 제품에 대해 별도의 SSIS 패키지 버전을 유지해야한다는 것입니다. 누구든지이 상황을위한 솔루션을 성공적으로 구현 했습니까?

답변

1

글쎄, 나는 같은 장소로 가야하는 differnt 벤더의 differnt 형식의 differnt 파일을 가지고있는 simliar를해야만했다. 내가 한 일은 For Each Loop Container를 생성하는 것으로 파일을 실행하고 루프의 첫 번째 단계는 어느 경로가 다운되는지를 결정합니다. 그런 다음 각 경로에 대해 별도의 데이터 흐름을 작성했습니다.

버전 당 예상되는 열을 나열한 테이블로이를 수행 한 다음 일치하는 버전의 경로를 아래로 보냅니다.

또는 각 고객의 버전을 알고있는 경우 해당 테이블을 저장하고 고객 ID에서 어떤 경로를 확인할 수 있습니다.

또는 하나의 SSIS 패키지에 20 개의 다른 경로가 없도록 각 버전마다 새 패키지를 작성할 수 있습니다 (버전 이름 포함). 그런 다음 호출 SSIS 패키지의 각 루프에 대해 ~을 사용하여 파일을 올바른 버전으로 보냅니다. 아니면 각 클라이언트가 어떤 ppackage 버전인지 알기 위해 differnt 작업을 설정하십시오. 그런 다음 새 버전으로 업그레이드 할 때 작업 호출 패키지를 바꿀 수 있습니다.

0

가능한 모든 다른 버전에 대한 메타 데이터를 유지 관리하지 않으려는 것처럼 들립니다. @ HLGEM의 솔루션은 훌륭하지만 가능한 모든 버전 조합에 대한 메타 데이터를 유지해야합니다.

우리는 정기적으로 별도의 클라이언트 버전을 배포하고 최신 버전에는 추가 열이있는 경향이 있으며 사용자가 최신 버전으로 업그레이드하도록 할 수는 없습니다. 원시 데이터가 데이터베이스 테이블에있는 데이터 소스의 경우 사용자의 버전에 관계없이 항상 모든 열을 사용합니다. 우리는 스키마 버전간에 다른 곳에 가져 플랫 파일의 경우, 우리는 별도의 세 가지 솔루션을 사용했습니다 :

  1. 조건부 분할 : 몇 가지 변화 및 감지하는 간단한 방법이있을 때 잘 작동 가장 확실한 해결책 차이는 행의 몇 가지 속성을 기반으로합니다. 표현식이 작성 및 유지하기가 너무 어려워 복잡한 변경 사항을 관리하는 경우 확장 성이 좋지 않습니다.

  2. 스크립트 변환 : 각 행을 단일 문자열로 읽는 경우 스크립트 작업을 사용하여 추가 열을 써야하는지 결정할 수 있습니다.이 방법은 필드 조합의 조합이 많고 ​​많으며 다양하며 사용할 경로를 결정하는 규칙이 매우 복잡 할 때 잘 작동합니다.

  3. 테이블 기반 메타 데이터 : XML 파일을 가져 오는 경우를 위해 버전 번호가있는 컨트롤 테이블을 만들었습니다. 기본적으로 XML을 테이블의 XML 데이터 형식으로로드 한 다음 저장 프로 시저에서 XML을 처리했습니다. 그런 다음 패키지는 각 버전 번호를 반복하고 테이블에서 필요한 SQL을 동적으로 생성하여 XML에서 올바른 노드를 추출한 다음 처리 된 원본 행에 플래그를 지정합니다. 이것은 내 프로세스에 대한 좋은 해결책 이었지만이 접근법의 주요 문제점은 제어 테이블에 새로운 행을 추가 할시기를 아는 것이 었습니다. 기본적으로 SDLC 양식에 개발 그룹에 체크 표시를해야만 주요 버전 변경에 대한 새로운 스키마 변경 사항을받은 사인온을받을 수있었습니다.

이들 중 어떤 것이 도움이되는지 확신 할 수 없지만 유용한 정보를 추출해 주시기 바랍니다. 행운을 빕니다.

관련 문제