2014-06-13 2 views
0

배경 :임의의 열 SQL 데이터 세트 (SQL Server 통합 서비스 [SSIS]을) 카운트

내가 .SQL 파일의 목록을 반복 각 파일을 실행, 각 쿼리의 결과를 저장하려고 해요 특별히 명명 된 구분 된 텍스트 파일입니다. 지금 당장은 완전히 독립형 C# 프로그램을 사용하여이 작업을 수행합니다. 나는 SSIS 초보자이지만 C#을 매우 잘한다. SSIS가 선호하는 솔루션이므로, 모든 것을 거대한 스크립트 액션으로 끌어들이는 것은 (슬프게도) 해결책이 아닙니다.

문제 : 아래

내 제어 흐름의 사진입니다.

  1. foreach 문이 .SQL 파일 폴더를 순환 다음과 같이

    Control Flow

    원하는 효과이다.

  2. SQL로드 작업은 현재 .sql 파일의 내용을 변수에 할당합니다.

    Data Flow

    1. 변수와의 SQL을 실행 :

    2. 데이터 흐름 작업 (이 단계는 모두 작동)!

    3. 은 임의로 크기가 지정된 결과를 변수 또는 파일에 저장합니다.
  3. (제어 흐름으로 돌아 가기 :) 누락 : 다양한 구분 기호 및 다양한 파일 이름으로 보고서를 저장하십시오.

  4. 업로드 보고서는 WinSCP를 실행하여 파일을 가져 와서 n> 1 개의 지정된 위치에 배치합니다.

질문 :

어떻게 열의 수에 대해 신경 쓰지 나는 데이터가 흐름해야합니까? 예를 들어, 보고서 1은 이고 열은이고 보고서 2는 이고 보고서 3은 입니다. 이 모든 것들은 괜찮습니다. 얼마나 많은 열이 있는지 상관하지 않으며,이 경우 메타 데이터에 대해 신경을 쓰지 않아도됩니다.

"여기 DataTable, 채우기"라고 말하면 C#으로이 작업을 수행 할 수 있습니다. SSIS는 분명히 열의 수에 적응할 수있는 능력이 부족합니다. 예? 아니? 스크류하고 그냥 스크립트 객체로 처리한다고 해? 여기에서해야 할 일에 대해받은 지혜는 무엇입니까?

이 질문을 통해 SSIS 작동 방식에 대한 근본적인 오해가 드러나는 경우 자유롭게 의견을 말하십시오. 사전에

감사합니다!

+0

이미 알고 있다면 스크립트로 작성하십시오. 2008 년에는 임의의 열을 사용하는 SSIS가 어려웠습니다. 그 버전에 대해서는 알지 못합니다. –

답변

0

저는이 모든 접근 방식을 포기할 것입니다. SSIS로 성공하기위한 길은 아닙니다.

SSIS는 데이터 흐름 메타 데이터 (예 : 열, 데이터 형식, 심지어 데이터 형식 정밀도)를 캐시하며 해당 메타 데이터가 변경되면 대개 패키지 디자인이 변경됩니다.

대신 3 가지 데이터 흐름 작업 또는 변형 (보고서 당/SQL 스크립트 당 하나씩)이있는 SSIS 패키지를 작성합니다. 각 데이터 흐름 태스크 내부에는 OLE DB 원본 및 플랫 파일 대상이 있습니다.

SSIS는 많은 데이터 흐름 작업을 병렬로 실행할 수 있으며 (기본 설정은 # 코어 * 2) C#과 비교하여 눈부신 속도로 텍스트 파일 데이터를 출력합니다.