다음을 통해 공유


변경 데이터 간격 지정

적용 대상: SQL Server Azure Data Factory의 SSIS Integration Runtime

변경 데이터의 증분 로드를 수행하는 Integration Services 패키지의 제어 흐름에서 첫 번째 작업은 선택한 간격에 대한 엔드포인트를 계산하는 것입니다. 이러한 엔드포인트는 datetime 값이며 패키지에서 나중에 사용하기 위해 패키지 변수에 저장됩니다.

참고 항목

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

엔드포인트에 대한 패키지 변수 설정

엔드포인트를 계산하도록 SQL 실행 태스크를 구성하기 전에 엔드포인트를 저장할 패키지 변수를 정의해야 합니다.

패키지 변수를 설정하려면

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

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

    1. datetime 데이터 형식을 사용하여 간격의 시작점을 저장할 변수를 만듭니다.

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

    2. datetime 데이터 형식을 사용하여 간격의 끝점을 저장할 다른 변수를 만듭니다.

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

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

변경 데이터에 대한 시작점 및 끝점 계산

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

datetime 값으로 작동하는 Integration Services 식 언어의 함수

datetime 값으로 작동하는 Transact-SQL의 함수
날짜 및 시간 데이터 형식 및 함수(Transact-SQL).

이러한 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(SSIS) 식
SQL 실행 태스크
스크립트 태스크