BIML 101

第二节 将文本文件数据导进数据库

该小节介绍如何用BIML生成ssis包,将货币文本导入到数据库currency的表中。

SSIS组件:

  1. Connection Manager组建管理connection,数据库链接和文本链接
  2. SQL task组件来把Currency表清空
  3. OELEDE destination来插入数据到目标Currency表

输入 文本文件如下,目标表Currency存在于数据库中。

Currency.csv

CurrencyCode

Name

CNY

USD

美元

JPY

日元

1. 配置了 一个数据库链接
注意:配置了 一个数据库链接,其他组件要引用connection,它的ConnectionName一定要跟connection manager链接名字的一致
 

<Connections >

   <Connection Name ="OLEDB_Staging" ConnectionString="Data Source=.SQL2012;Initial Catalog=Staging; Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;"/>

</Connections>

2. 配置SQL Task来清空Currency表

<BIML xmlns="http://schemas.varigence.com/BIML.xsd">

   <Connections >

     <Connection Name ="OLEDB_Staging" ConnectionString="Data Source=.SQL2012;Initial Catalog=Staging; Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;"/>

   </Connections>

   <Packages>

     <Package Name="Staging" ConstraintMode="Linear">

   <Tasks>

     <ExecuteSQL Name="SQL - Truncate Curreny Staging" ConnectionName="OLEDB_Staging">

       <DirectInput>Truncate Table dbo.Currency

       </DirectInput>

     </ExecuteSQL>

   </Tasks>

     </Package>

   </Packages>

  </BIML>

  

Truncate Table dbo.Currency 用于清空Currency表

3. 验证错误并生成包,打开包如下
 

可以执行包验证

4. 添加组件,设置执行顺序
注意上文中Package的属性:ConstraintMode="Linear" 用于顺序执行,Parallel用于并发执行。
本节的两个组件需要Linear(顺序)执行。
 

<BIML xmlns="http://schemas.varigence.com/BIML.xsd">

   <FileFormats>

   <FlatFileFormat Name="FlatFileFormatCurrency" RowDelimiter="LF" ColumnNamesInFirstDataRow="true" IsUnicode="false">

   <Columns>

   <Column Name="CurrencyCode" DataType="String" Length="256" Delimiter="Comma" CodePage="1252" />

   <Column Name="Name" DataType="String" Length="256" Delimiter="LF" />

   </Columns>

   </FlatFileFormat>

   </FileFormats>

   <Connections >

   <Connection Name ="OLEDB_Staging" ConnectionString="Data Source=.SQL2012;Initial Catalog=Staging;

                     Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;"/>

  

   <FlatFileConnection Name="FlatFileCurrency" FileFormat="FlatFileFormatCurrency" FilePath="C:SourceFileCurrency.csv" />

   </Connections>

   <Packages>

   <Package Name="Staging" ConstraintMode="Linear">

   <Tasks>

   <ExecuteSQL Name="SQL - Truncate Curreny Staging" ConnectionName="OLEDB_Staging">

   <DirectInput>

   Truncate Table dbo.Currency

   </DirectInput>

   </ExecuteSQL>

   <Dataflow Name="DFT Source">

   <Transformations>

   <FlatFileSource ConnectionName="FlatFileCurrency" Name="FF Source" />

   <OleDbDestination ConnectionName="OLEDB_Staging" Name="OLEDB DST Currency">

   <ExternalTableOutput Table="Currency"></ExternalTableOutput>

   </OleDbDestination>

   </Transformations>

   </Dataflow>

   </Tasks>

   </Package>

   </Packages>

  </BIML>

5. 验证并生成包
可以看到文本组件依赖上面的清空数据组件(箭头顺序)

 

6. 执行包,查看执行结果,并到数据库中查询Currency表。

 

7. OK,没问题,文本导入到数据表中了。

原文地址:https://www.cnblogs.com/lizardbi/p/BIML101_BIML_FOR_ETL_Datawarehouse_Import_CSV_file.html