2013-10-08 11 views
1

나는 너비가 약 1200 자이고 약 300 개 이상의 열이있는 고정 너비 파일을 가지고 있습니다. 플랫 파일 연결 관리자에 대한 UI를 사용하지 않고 SSIS에서 고정 너비 데이터 원본을 만드는 방법을 찾고 있습니다. SSIS에서 UI를 사용하지 않고 열 정의를 수정하는 방법이 있습니까? 프로젝트의 어느 곳에서나 데이터 연결을위한 파일을 찾을 수 없습니다.SSIS에서 거대한 고정 폭 파일을 관리하는 방법은 무엇입니까?

플랫 파일 연결 관리자에 300 개 이상의 열을 하나씩 수동으로 추가할까요?

+0

SSIS 후 대량 삽입을 사용하는 것보다 오히려 스크립팅을 사용하려는 경우 (A T-SQL 명령) 또는 BCP.EXE (명령 줄 도구). 둘 다 고통 스러울 수있는 형식 파일을 사용합니다. 또는이 새로운 BIML을 사용하여 패키지를 자동으로 생성 할 수 있습니다. IMHO 명령/T-SQL 솔루션은 유지하기가 더 쉽지만 BIML을 사용한 적이 없습니다. –

답변

5

두 가지 옵션이 떠오릅니다. 첫 번째는 BIDSHelper를 설치하고 사용하는 것입니다. Create Fixed Width Columns

기타 @ElectricLlama는 BIML을 사용하는 것입니다. 또한 BIDS 도우미를 설치해야하지만 .biml 파일을 .dtsx로 변환해야합니다. Short Walkthrough

데이터 흐름을 추가하는 플랫 파일 연결 관리자 (단일 열 포함)가있는 패키지를 만드는 것이 좋습니다. 우리의 플랫 파일을 소비하고 행 수까지 연결합니다. 이것은 대략 원하는 것입니다. Columns 태그에서 XML을 채우기 만하면됩니다.

<Biml xmlns="http://schemas.varigence.com/biml.xsd"> 
<Connections> 
    <FlatFileConnection 
     Name="FF dchess" 
     FileFormat="FFF dchess" 
     FilePath="C:\ssisdata\SO\Input\dchess.txt" 
    /> 
</Connections> 
<FileFormats> 
    <FlatFileFormat 
Name="FFF dchess" 
CodePage="1252" 
RowDelimiter="CRLF" 
IsUnicode="false" 
FlatFileType="RaggedRight" 
     > 
     <Columns> 
      <Column Name="MyColumn" Length="08" DataType="AnsiString" ColumnType="FixedWidth" CodePage="1252" /> 
     </Columns> 
    </FlatFileFormat> 
</FileFormats> 
<Packages> 
    <Package Name="dchess" ConstraintMode="Linear" ProtectionLevel="DontSaveSensitive"> 
     <Connections > 
      <Connection ConnectionName="FF dchess" /> 
     </Connections> 
     <Variables> 
      <Variable Name="CurrentFileName" DataType="String">C:\ssisdata\so\Input\dchess.txt</Variable> 
      <Variable Name="RowCountInsert" DataType="Int32">0</Variable> 
     </Variables> 
     <Tasks> 
      <Dataflow Name="DFT Load file" > 
       <Transformations> 
        <FlatFileSource 
         Name="FF_SRC dchess" 
         ConnectionName="FF dchess" 
         RetainNulls="true"> 
        </FlatFileSource> 
        <RowCount Name="CNT Source" VariableName="User.RowCountInsert"></RowCount> 
       </Transformations> 
      </Dataflow> 
     </Tasks> 
    </Package> 
</Packages> 
</Biml> 

생성 된 패키지는

enter image description here

이 땅에 떨어져 턱을 집어 자유롭게 모양)

+0

BIDSHelper 방법은 내가 고정 할 때까지 내 행이 망가 졌을 때 Header 행 구분 기호와 전체 행 길이 설정을 확인하는 것이지만 BIDSHelper 메서드는이 작업을 수행 한 후에 확인해야 할 한 가지가되었습니다. – Josh