변경 데이터의 간격 지정

변경 데이터를 증분 로드하는 Integration Services 패키지의 제어 흐름에서 첫 번째 태스크는 변경 간격의 끝점을 계산하는 것입니다. 이러한 끝점은 datetime 값이며 패키지에서 나중에 사용하기 위해 패키지 변수에 저장됩니다.

[!참고]

제어 흐름의 전체 디자인 프로세스에 대한 설명은 변경 데이터 캡처(SSIS)을 참조하십시오.

끝점에 대한 패키지 변수 설정

SQL 실행 태스크를 구성하여 끝점을 계산하기 전에 끝점을 저장할 패키지 변수를 정의해야 합니다.

패키지 변수를 설정하려면

  1. SQL Server Data Tools(SSDT)에서 새 Integration Services 프로젝트를 엽니다.

  2. 변수 창에서 다음 변수를 만듭니다.

    1. 간격의 시작 지점을 보관할 datetime 데이터 형식의 변수를 만듭니다.

      이 예에서는 변수 이름으로 ExtractStartTime을 사용합니다.

    2. 간격의 끝 지점을 보관할 datetime 데이터 형식의 다른 변수를 만듭니다.

      이 예에서는 변수 이름으로 ExtractEndTime을 사용합니다.

여러 자식 패키지를 실행하는 마스터 패키지에서 끝점을 계산하는 경우 부모 패키지 변수 구성을 사용하여 이러한 변수 값을 각 자식 패키지에 전달할 수 있습니다. 자세한 내용은 패키지 실행 태스크자식 패키지에서 변수 및 매개 변수의 값 사용을 참조하십시오.

변경 데이터의 시작 지점 및 끝 지점 계산

간격 끝점에 대한 패키지 변수를 설정한 후 해당 끝점의 실제 값을 계산하고 이러한 값을 해당 패키지 변수에 매핑할 수 있습니다. 이러한 끝점은 datetime 값이므로 datetime 값을 계산하거나 사용할 수 있는 함수를 사용해야 합니다. Integration Services 식 언어와 Transact-SQL 모두에 datetime 값을 사용하는 함수가 있습니다.

이러한 datetime 함수 중 하나를 사용하여 끝점을 계산하기 전에 간격이 고정되어 있고 정기적으로 발생하는지 확인해야 합니다. 일반적으로 원본 테이블에서 발생한 변경 내용을 정기적으로 대상 테이블에 적용합니다. 예를 들어 이러한 변경 내용을 매시간, 매일 또는 매주 적용할 수 있습니다.

변경 간격이 고정적인지, 아니면 보다 임의적인지 이해한 후 끝점을 계산할 수 있습니다.

  • 시작 날짜 및 시간 계산. 이전 로드의 종료 날짜 및 시간을 현재 시작 날짜 및 시간으로 사용합니다. 증분 로드에 고정 간격을 사용하는 경우 Transact-SQL 또는 Integration Services 식 언어의 datetime 함수를 사용하여 이 값을 계산할 수 있습니다. 그렇지 않은 경우 실행 간 끝점을 유지하고 SQL 실행 태스크 또는 스크립트 태스크를 사용하여 이전 끝점을 로드해야 할 수 있습니다.

  • 종료 날짜 및 시간 계산. 증분 로드에 고정 간격을 사용하는 경우 현재 종료 날짜 및 시간을 시작 날짜 및 시간의 오프셋으로 계산합니다. Transact-SQL 또는 Integration Services 식 언어의 datetime 함수를 사용하여 이 값을 계산할 수도 있습니다.

다음 절차에서는 변경 간격에 고정 간격을 사용하며 증분 로드 패키지가 예외 없이 매일 실행된다고 가정합니다. 그렇지 않으면 누락된 간격의 변경 데이터가 손실됩니다. 간격의 시작 지점은 이틀 전 자정입니다. 즉, 24-48시간 전입니다. 간격의 끝 지점은 어제 자정입니다. 즉, 0-24시간 전의 전날 밤입니다.

캡처 간격의 시작 지점 및 끝 지점을 계산하려면

  1. SSIS 디자이너의 제어 흐름 탭에서 패키지에 SQL 실행 태스크를 추가합니다.

  2. SQL 실행 태스크 편집기일반 페이지에서 다음 옵션을 선택합니다.

    1. ResultSet단일 행을 선택합니다.

    2. 원본 데이터베이스에 대한 올바른 연결을 구성합니다.

    3. SQLSourceType직접 입력을 선택합니다.

    4. SQLStatement에 다음 SQL 문을 입력합니다.

      SELECT DATEADD(dd,0, DATEDIFF(dd,0,GETDATE()-1)) AS ExtractStartTime,
        DATEADD(dd,0, DATEDIFF(dd,0,GETDATE())) AS ExtractEndTime
      
  3. SQL 실행 태스크 편집기결과 집합 페이지에서 ExtractStartTime 결과를 ExtractStartTime 패키지 변수에 매핑하고 ExtractEndTime 결과를 ExtractEndTime 패키지 변수에 매핑합니다.

    [!참고]

    식을 사용하여 Integration Services 변수의 값을 설정하면 변수의 값에 액세스할 때마다 식이 평가됩니다.

다음 단계

변경 범위의 시작 지점 및 끝 지점을 계산한 후 다음 단계는 변경 데이터가 준비되었는지 여부를 확인하는 것입니다.

다음 항목: 변경 데이터의 준비 여부 확인

Integration Services 아이콘(작은 아이콘) Integration Services 관련 최신 정보 얻기

Microsoft의 최신 다운로드, 아티클, 예제 및 비디오와 커뮤니티의 정선된 솔루션을 보려면 MSDN의 Integration Services 페이지를 방문하십시오.


이러한 업데이트에 대한 자동 알림을 받으려면 해당 페이지에서 제공하는 RSS 피드를 구독하십시오.

참고 항목

태스크

패키지에서 변수 사용

Integration Services(SSIS) 식

개념

SQL 실행 태스크

스크립트 태스크