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

该小节介绍如何用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:\SourceFile\Currency.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,没问题,文本导入到数据表中了。

BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 将文本文件(csv)数据导进数据库的更多相关文章

  1. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序

    BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...

  2. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 连接数据库执行SQL语句

    BIML 101 - BIML 快速入门教程 第一节 连接数据库执行SQL语句 本小节将用BIML建一个简单的可以执行的包. 新建一个biml文件,贴入下面的代码 1 <Biml xmlns=& ...

  3. SpringBoot系列: RestTemplate 快速入门

    ====================================相关的文章====================================SpringBoot系列: 与Spring R ...

  4. Flask开发系列之快速入门

    Flask开发系列之快速入门 文档 一个最小的应用 调试模式 路由 变量规则 构造 URL HTTP 方法 静态文件 模板渲染 访问请求数据 环境局部变量 请求对象 文件上传 Cookies 重定向和 ...

  5. EntityFramework6 快速入门教程

    EntityFramework6 快速入门教程 不得不说EF在国内实在是太小众,相关的技术文章真实屈指可数,而且很多文章都很旧了,里面使用的版本跟如今的EF6差别还是比较大.我刚开始弄这个的时候真是绕 ...

  6. .NET Core 快速入门教程

    .NET Core 快速学习.入门系列教程.这个入门系列教程主要跟大家聊聊.NET Core的前世今生,以及Windows.Linux(CentOS.Ubuntu)基础开发环境的搭建.第一个.NET ...

  7. .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)

    一.前言 本篇开发环境?1.操作系统: Windows 10 X642.SDK: .NET Core 2.0 Preview 二.安装 .NET Core SDK 1.下载 .NET Core下载地址 ...

  8. .NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧

    一.前言 为什么要调试代码?通过调试可以让我们了解代码运行过程中的代码执行信息,比如变量的值等等.通常调试代码是为了方便我们发现代码中的bug.ken.io觉得熟练代码调试技巧是成为合格程序员的基本要 ...

  9. .NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序

    一.前言 为什么选择VS Code?VS Code 是一款跨平台的代码编辑器,想想他的哥哥VS,并是微软出品的宇宙第一IDE,那作为VS的弟弟,VS Code 也不会差,毕竟微软出品.反正ken是这么 ...

随机推荐

  1. LeetCode 113. 路径总和 II(Path Sum II)

    题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / ...

  2. Java Jsch SFTP 递归下载文件夹

    Java Program For Downloading Folder Content recursively from SFTP Server How to download folder from ...

  3. spark streaming 4: DStreamGraph JobScheduler

    DStreamGraph有点像简洁版的DAG scheduler,负责根据某个时间间隔生成一序列JobSet,以及按照依赖关系序列化.这个类的inputStream和outputStream是最重要的 ...

  4. SolrCloud配置

    一.简介 Apache Solr是基于Lucene的全文搜索引擎.如何让Solr具有容错性和高可用性,SolrCloud可以帮助我们搭建集群,提供分布式索引,以及自动备份.SolrCloud是Solr ...

  5. LC 499. The Maze III 【lock,hard】

    There is a ball in a maze with empty spaces and walls. The ball can go through empty spaces by rolli ...

  6. [SQL]学习中遇到的错误

    1.中英文模式切换 查找语句中不能出现中文字符!!!

  7. spring boot系列(二)spring boot web开发

    json 接口开发 在以前的spring 开发的时候需要我们提供json接口的时候需要做如下配置: 1 添加jackjson等jar包 2 配置spring controller扫描 3 对接的方法添 ...

  8. 【TypeScript】学习笔记 把一些需要记的记录一下

    安装typescript: npm install -g typescript 启动typesctipt自动编译: tsc 文件名.ts --watch 函数参数默认值: 1.有默认值参数的,声明在最 ...

  9. SQLSERVER去除某一列的重复值并显示所有数据\DISTINCT去重\ISNULL()求SUM()\NOT EXISTS的使用

    进入正题,准备我们的测试数据 1.我们要筛选的数据为去除 GX 列的重复项 并将所有数据展示出来,如图所示: ' 2.这种情况下我们是不可以使用DISTINCT来去重的,我们可以来尝试一下: 首先,单 ...

  10. xgboost的使用

    1.首先导入包 import xgboost as xgb 2.使用以下的函数实现交叉验证训练xgboost. bst_cvl = xgb.cv(xgb_params, dtrain, num_boo ...