데이터 흐름 탭

SSIS 패키지(데이터 흐름 경로)의 두 데이터 흐름 구성 요소에 연결된 경로에 데이터 흐름 탭을 추가하고, 런타임에 데이터 흐름 탭에서 외부 파일로 출력을 디렉션할 수 있습니다. 이 기능을 통해 다음 단계의 ETL(추출-변환-로드) 처리에서 데이터를 검사할 수 있습니다.

  • 데이터가 데이터 원본에서 추출된 이후

  • 데이터가 변환되기 이전과 이후

  • 데이터가 해당 대상으로 로드되기 전

[!참고]

프로젝트 배포 모델(패키지 배포 모델이 아님)을 사용하여 이 기능을 활용함으로써 SSIS 패키지를 배포해야 합니다.

사용자(관리자/개발자)가 런타임에 데이터 흐름 경로를 통한 데이터 흐름을 확인할 수 있다는 점에서 데이터 흐름 탭은 데이터 뷰어와 유사합니다. 개발자는 데이터 뷰어를 데이터 흐름 경로에 연결하고, SQL Server Data Tools 개발 환경에서 디버깅하는 동안 해당 경로를 통한 데이터 흐름을 확인할 수 있습니다. 데이터 뷰어는 개발 환경에서만 작동합니다. 데이터 흐름 탭을 통해 관리자는 데이터 흐름 탭을 데이터 흐름 경로에 추가하여 테스트/프로덕션 환경에서 해당 경로를 통한 데이터 흐름을 확인할 수 있습니다.

예를 들어 플랫 파일 원본 구성 요소가 다음 데이터 흐름의 OLE DB 대상 구성 요소로 전달하는 데이터를 검사할 수 있는데 이는 두 구성 요소 간 데이터 흐름 경로에 데이터 흐름 탭을 추가함으로써 가능합니다.

SSIS 패키지의 데이터 흐름 경로

다음 섹션에서는 데이터 흐름 탭을 데이터 흐름 경로에 추가하고, 데이터 흐름 탭을 나열하고, 데이터 흐름 경로에서 데이터 흐름 탭을 제거하는 방법에 대해 설명합니다. 또한 TechNet 라이브러리의 SSIS에서 데이터 탭 사용(영문) 동영상을 시청하여 데이터 흐름 탭을 추가/제거/나열하는 방법과 이러한 방법을 사용하는 모범 사례에 대해 알아볼 수 있습니다.

데이터 흐름 탭 추가

프로젝트 배포 모델을 사용하여 SSIS 프로젝트를 Integration Services(SSIS) 카탈로그에 배포한 이후 실행 인스턴스를 시작하기 전에 SSISDB 데이터베이스의 catalog.add_data_tap 또는 catalog.add_data_tap_by_guid 저장 프로시저를 사용하여 데이터 흐름 탭을 추가합니다. 현재 데이터 탭은 이러한 저장 프로시저를 실행해서만 추가할 수 있으며, 사용자 인터페이스를 통해 데이터 흐름 탭을 추가할 수는 없습니다. 그러나 SQL Server Management Studio를 사용하여 실행 인스턴스를 생성 및 시작하기 위한 문을 생성한 후 생성한 스크립트에 add_data_tap 또는 add_data_tap_by_guid 문을 추가할 수 있습니다. 다음 절차에서는 데이터 탭을 추가하는 자세한 단계를 설명합니다.

  1. SQL Server Management Studio에서 Integration Services 카탈로그, SSISDB, <폴더>, 프로젝트, <프로젝트>, 패키지를 차례로 확장합니다. <사용할 패키지>를 마우스 오른쪽 단추로 클릭하고 실행을 클릭합니다.

    다음 예제에서 ETL Folder는 폴더의 이름이고, ETL Project는 프로젝트 이름이며, Package.dtsx는 패키지 이름입니다.

    Management Studio를 사용하여 패키지 실행

  2. 패키지 실행 대화 상자에서 선택한 패키지의 실행 인스턴스를 생성 및 시작하기 위한 스크립트를 생성하려면 스크립트 도구 모음 단추를 클릭합니다. SQL 스크립트가 새로운 쿼리 편집기 창으로 복사됩니다.

    패키지 실행 - 스크립트

  3. 패키지 실행 대화 상자를 닫으려면 취소를 클릭합니다. 새로운 쿼리 편집기 창에서 생성된 SQL 스크립트를 확인할 수 있습니다. 스크립트의 catalog.create_execution(SSISDB 데이터베이스) 저장 프로시저 호출은 선택한 패키지의 실행 인스턴스를 생성하며, catalog.start_execution(SSISDB 데이터베이스) 저장 프로시저 호출은 실행 인스턴스를 시작합니다.

    생성한 스크립트(예: set_execution_parameter_value)에서 추가적인 모든 SQL 문을 제거할 수 있습니다. 스크립트는 아래와 유사합니다.

    Declare @exec_id bigint
    EXEC [SSISDB].[catalog].[ create_execution] @package_name=N'Package.dtsx', @execution_id=@exec_id OUTPUT, @folder_name=N'ETL Folder', @project_name=N'ETL Project', @use32bitruntime=False, @reference_id=Null
    EXEC [SSISDB].[catalog].[ start_execution] @exec_id
    GO
    
  4. 쿼리 편집기에서 start_execution 호출 이전에 catalog.add_data_tap 또는 catalog.add_data_tap_by_guid 저장 프로시저를 사용하여 패키지의 실행 인스턴스에 데이터 흐름 탭을 추가합니다.

    EXEC [SSISDB].[catalog]. add_data_tap @execution_id = @exec_id, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt'
    

    (또는)

    EXEC [SSISDB].[catalog]. add_data_tap_by_guid @execution_id = @exec_id, @dataflow_task_guid = '{6DAB81C6-722D-4DF5-BB47-82DBC201693F}', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt'
    
    1. 첫 번째 매개 변수인 execution_idcreate_execution 저장 프로시저에서 반환한 값을 전달합니다.

    2. add_data_tap 저장 프로시저의 두 번째 매개 변수는 task_package_path이며, add_data_tap_by_guid 저장 프로시저의 두 번째 매개 변수는 dataflow_task_guid입니다.

      1. add_data_tap 저장 프로시저를 사용하는 경우:

        SQL Server Data Tools에서 SSIS 패키지 제어 흐름의 데이터 흐름 태스크를 마우스 오른쪽 단추로 클릭한 후 속성을 클릭하여 속성 창을 시작합니다. PackagePath 속성의 값을 기록합니다.

        add_data_tap 저장 프로시저의 task_package_path 매개 변수에 대해서는 PackagePath 속성 값을 전달합니다.

        SSIS 패키지의 패키지 경로 설정

      2. add_data_tap_by_guid 저장 프로시저를 사용하는 경우:

        SQL Server Data Tools에서 SSIS 패키지 제어 흐름의 데이터 흐름 태스크를 마우스 오른쪽 단추로 클릭한 후 속성을 클릭하여 속성 창을 시작합니다(예시는 위 그림 참조). ID 속성 값을 확인합니다.

        add_data_tap_by_guid 저장 프로시저의 dataflow_task_guid 매개 변수에 대해서는 데이터 흐름 태스크의 ID 속성 값을 전달합니다.

    3. SQL Server Data Tools에서, SSIS 패키지의 데이터 흐름에서 데이터 흐름 탭을 추가할 대상 데이터 흐름 경로(데이터 흐름에 있는 태스크 간의 화살표)를 클릭하고, 속성 창의 IdentificationString 속성 값을 확인합니다.

      저장 프로시저의 dataflow_path_id_string 매개 변수에 대해서는 IdentificationString 속성 값을 전달합니다.

      데이터 흐름 경로의 IdentificationString 속성

    4. data_filename 매개 변수의 출력 파일 이름을 지정합니다. 다음 단계에서 패키지의 실행을 시작한 이후에 <Program Files>\Microsoft SQL Server\110\DTS\DataDumps 폴더에서 생성된 파일을 확인할 수 있습니다.

다음은 SSISDB 데이터베이스에 대해 실행할 완전한 SQL 스크립트입니다. 이 예제는 데이터 탭을 추가하는 데 add_data_tap 저장 프로시저를 사용합니다.

Declare @exec_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx', @execution_id=@exec_id OUTPUT, @folder_name=N'ETL Folder', @project_name=N'ETL Project', @use32bitruntime=False, @reference_id=Null
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @exec_id, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt'
EXEC [SSISDB].[catalog].[start_execution] @exec_id
GO

스크립트를 실행하면 SSIS 패키지가 실행되고 데이터 흐름 탭이 추가된 대상 데이터 흐름 경로를 통한 데이터 흐름이 <Program Files>\Microsoft SQL Server\110\DTS\DataDumpsoutput.txt 파일에 저장됩니다. 해당 이름을 가진 파일이 이미 있으면 접미사(예: output[1].txt)를 가진 새 파일이 만들어집니다.

[!참고]

추가하는 데이터 흐름 탭은 ID를 add_data_tap 또는 add_data_tap_by_guid 저장 프로시저에 인수로 전달하는 실행 인스턴스와 관련됩니다.

주의 사항주의

자세한 로깅 수준을 사용하도록 설정하고 데이터 흐름 탭을 추가하면 데이터 통합 솔루션에서 수행하는 I/O 작업이 증가합니다. 따라서 문제 해결 용도로만 데이터 흐름 탭을 추가하는 것이 좋습니다.

데이터 흐름 탭 제거

catalog.remove_data_tap 저장 프로시저를 사용하여 실행을 시작하기 전에 데이터 흐름 탭을 제거할 수 있습니다. 이 저장 프로시저는 add_data_tap 저장 프로시저의 출력으로 가져올 수 있는 데이터 흐름 탭의 ID를 매개 변수로 사용합니다.

DECLARE @tap_id bigint
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @exec_id, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt' @data_tap_id=@tap_id OUTPUT
EXEC [SSISDB].[catalog].remove_data_tap @tap_id

모든 데이터 흐름 탭 나열

catalog.execution_data_taps 뷰를 사용하여 모든 데이터 흐름 탭을 나열할 수도 있습니다. 다음 예제에서는 사양 실행 인스턴스의 데이터 흐름 탭을 추출합니다(ID: 54).

select * from [SSISDB].[catalog].execution_data_taps where execution_id=@exec_id

데이터 탭 나열의 결과

관련 태스크

데이터 흐름 디버깅

패키지 실행 문제 해결 도구

관련 내용

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

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


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