2015-01-02 2 views
0

여러 텍스트 파일로 구문 분석 할 텍스트 파일이 있습니다. 파일이 너무 커서 Excel에서 열 수 없습니다. 따라서 SSIS에서 어떻게 든이 작업을 수행하는 것이 가장 좋습니다. (실제로, 그 순간에하는 방법을 알고 있기 때문에.) 메모장에서 수동으로 할 수는 있지만 자동화 된 솔루션이 필요합니다.SSIS에서 텍스트 파일을 구문 분석하는 방법

원본 텍스트 파일에는 헤더가없고 다양한 열 수의 레코드가 있으며 모든 유사한 레코드가 함께 그룹화되며 파일은 파이프로 구분됩니다. . 당신이 볼 수 있듯이

A|stuff CRLF 
A|more_stuff CRLF 
B|stuff|more_text CRLF 
B|more_stuff|yet_more_text CRLF 

합니다 (있는 CRLF가 끝 행 구분 기호는, 'A'레코드를 열 수는 다른 : 여기

내가 구문 분석 할 샘플 텍스트 파일입니다 'B'레코드보다 많습니다.)

첫 번째 열의 동일한 값을 가진 모든 레코드를 별도의 텍스트 파일에 넣으 려합니다. 즉, 모든 'A'레코드를 하나의 텍스트 파일에 넣고 싶습니다. 그리고 모든 'B'레코드를 다른 텍스트 파일에 넣고 싶습니다. 나는 SQL 테이블을 거치고 싶지 않다. SSIS에서도 가능합니까? 그렇다면 어떻게해야합니까? 그렇지 않은 경우이 상황에 가장 적합한 도구는 무엇입니까?

+1

당신은 SSIS를 사용할 수 있지만, 당신은 또한 당신의 눈에 바늘을 부착 할 수있다. CSV 파일을 구문 분석 할 때 C# –

답변

0

데이터 흐름 작업을 패키지에 추가하면 조건부 분할을 사용할 수 있습니다. 조건부 분할에서 A와 B가 어떤 식의 표현식을 사용하는지 레이블링해야합니다. 귀하의 경우에는 다음과 같습니다. 출력 이름 = A, 조건은 [이름 열] == "A"가됩니다. B에 대해서도 동일한 작업을 수행 한 다음 출력 화살표를 플랫 파일 대상에 연결하면 출력 할 텍스트 파일을 선택할 수 있습니다.

+0

을 사용하지만 SSIS는 비정형 (가변 열)을 잘 처리하지 못합니다. SSIS가이 목적을 위해 조금 위에 있습니다 –

+0

대신 C#을 제안 하시겠습니까? – user3100444

0

Flatfilesource, Derivedcolumns, ConditionalSplit 변환이 가능합니다. 단일 열을 갖는 각 행을 나타냅니다. 입력 파일 (예 : ^)에없는 컬럼 구분자를 입력하십시오.

FlatFileSource

DerivedColumns z.png

ConditionalSplit

DataFlow task

관련 문제