创建Package之前首先我们理解需求:

数据源是一组历史货币数据包含在平面文件SampleCurrencyData.txt中,源数据中有四列。

下面是SampleCurrencyData.txt文件的一组示例数据:

1.00010001 ARS 9/3/2001 0:00 0.99960016

1.00010001 ARS 9/4/2001 0:00 1.001001001

1.00020004 ARS 9/5/2001 0:00 0.99990001

1.00020004 ARS 9/6/2001 0:00 1.00040016

1.00050025 ARS 9/7/2001 0:00 0.99990001

1.00050025 ARS 9/8/2001 0:00 1.001001001

1.00050025 ARS 9/9/2001 0:00 1

1.00010001 ARS 9/10/2001 0:00 1.00040016

1.00020004 ARS 9/11/2001 0:00 0.99990001

1.00020004 ARS 9/12/2001 0:00 1.001101211

1. 首先打开SQL Server Business Intelligence Development Studio -> 新建项目 -> Intergration Services 项目

命名项目为SSISStudy1, 如图1.1

2. 解决方案管理器 -> 右键单击SSIS包 新建一个Package -> 命名Package为 LoadEmployeeData.dtsx, 如图1.2

在图1.2中,左边工具栏中就是实现ETL 功能的工具(后面会有具体常用工具的功能描述),开发的时候我们需要把用到的工具拖到控制流的界面下,在连接管理器的界面上我们可以 通过右键单击创建于数据源的连接。

3. 下面我们开始根据需求去实现这个Package的功能。

首先在连接管理器界面创建一个平面文件连接, 如图1.3

文件名数据源文件的路径加文件名

标题行分隔符: 选逗号与文件中分隔符一致,可以通过左边预览键查看数据格式是否正确。

然后点击左边高级选项进行设置 如图1.4:

文件平面管理器会根据在常规选项设置的规则生成相应的列数,默认名称为列0, 列1, 列2. 需要我们在杂项中的Name属性中定义一个有意义的名字。

如果后期数据源中的列数目有变动的话,我们可以通过新建和删除进行调整。

在DataType中定义字段对应的类型, Integration Services 将根据前 200 行数据自动建议最合适的数据类型。 您还可以将这些建议选项改为增加或减少取样数据,以便指定整数数据或布尔数据的默认数据类型,或添加作为填充量添加到字符串列中的空格。

4. 在连接管理器界面单击右键创建一个OLE DB连接, 如图1.5:

文件中数据会通过该数据库连接加载数据到数据库AdventureWorks中。

5. 把工具栏中的数据流任务控件拖拽到控制流界面, 如图1.6:

6. 双击数据流进入数据流界面

拖拽平面文件源到数据流界面, 选择平面文件连接管理器Department(如果只有一个平面连接管理器的话会默认选择), 如图1.7:

7. 在工具箱的数据流目标列表下找到OLE DB目标拖拽到数据流界面, 与平面文件连接, 如图1.8:

设置OLE DB目标, OLE DB连接管理器为AdventureWorks,表为Department, 如图1.9:

进入映射选项, 使文件中的列(Source)与数据库表中列(Target)一一对应, 如:1.10:

到此为止这个package的基本功能以经完成了,下面就启动调试查看一下结果

通过查看结果发现数据已经插入到表中

到此为止一个简单的Package就完成了,当然我们会发现这个Package仅仅是实现了基本的功能,缺少异常处理,所以我们还要加上异常处理,如何进行异常处理会在后面详细描述。

一步一步创建一个简单的Package(1)的更多相关文章

  1. 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型

    第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...

  2. 用Eclipse 创建一个 简单的 Maven JavaWeb 项目

    使用Maven 创建一个简单的 javaWeb 项目: 本篇属于 创建 JavaWeb 项目的第三篇: 建议阅读本篇之前 阅读 用 Eclipse 创建一个简单的web项目  ;本篇是这这篇文章的基础 ...

  3. 用 Eclipse 创建一个简单的web项目

    Eclipse neon 汉化版 ; 1;右击新建 -->  选择 动态Web项目 2:  填写 项目名 项目位置 ; 选择 Dynamic web module version 和 tomca ...

  4. django创建一个简单的web站点

    一.新建project 使用Pycharm,File->New Project…,选择Django,给project命名 (project不能用test命名)   新建的project目录如下: ...

  5. mysql 如何创建一个简单的存储过程

    1 用mysql客户端登入2 选择数据库 mysql>use test3 查询当前数据库有哪些存储过程 mysql>show procedure status where Db='test ...

  6. Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏

    Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏 即使是如今,非常多初学游戏开发的同学.在谈到Unity的时候.依旧会觉得Unity仅仅能用于制作3D游戏的. 实际上.Unity在2013 ...

  7. 如何创建一个简单的Visual Studio Code扩展

    注:本文提到的代码示例下载地址>How to create a simple extension for VS Code VS Code 是微软推出的一款轻量级的代码编辑器,免费,开源,支持多种 ...

  8. 如何创建一个简单的C++同步锁框架(译)

    翻译自codeproject上面的一篇文章,题目是:如何创建一个简单的c++同步锁框架 目录 介绍 背景 临界区 & 互斥 & 信号 临界区 互斥 信号 更多信息 建立锁框架的目的 B ...

  9. Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目

    前面几篇我们介绍了如何利用 C# + XAML 完成Windows Store App 功能的实现,接下来的几篇我们来看看如何利用 Html + WinJS 来完成这些功能. 本篇我们使用WinJS ...

随机推荐

  1. Mongodb 和 普通数据库 各种属性 和语句 的对应

    SQL to MongoDB Mapping Chart In addition to the charts that follow, you might want to consider the F ...

  2. 写的非常好的文章 C#中的委托,匿名方法和Lambda表达式

    简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个Fir ...

  3. [六]SpringMvc学习-文件上传

    1.单文件上传 1.1修改配置文件 <bean id="multipartResolver" class="org.springframework.web.mult ...

  4. 使用Java原生代理实现数据注入

    本文由博主原创,转载请注明出处 完整源码下载地址 https://github.com/MatrixSeven/JavaAOP 上一篇,咱们说了使用Java原生代理实现AOP的简单例子,然么就不得不说 ...

  5. Stage3D学习笔记(六):旋转动画效果

    我们这节在上一篇代码的基础上再进一步,让显示的纹理进行旋转. 实现旋转,只需要每帧修改_modelViewMatrix的旋转角度即可,我们需要一个变量来记录旋转: //旋转度数 private var ...

  6. Java条件语句 switch case

    不得不说的几点小秘密: 1. switch 后面小括号中表达式的值必须是整型或字符型 2. case 后面的值可以是常量数值,如 1.2:也可以是一个常量表达式,如 2+2 :但不能是变量或带有变量的 ...

  7. JavaScript要点(八) 闭包

    JavaScript 变量可以是局部变量或全局变量. 私有变量可以用到闭包. 全局变量 函数可以访问由函数内部定义的变量,如: function myFunction() { var a = 4; r ...

  8. JavaScript要点 (五) 函数定义

    JavaScript 使用关键字 function 定义函数. 函数可以通过声明定义,也可以是一个表达式. 函数声明分号是用来分隔可执行JavaScript语句. 由于函数声明不是一个可执行语句,所以 ...

  9. SQLite使用教程9 Select 语句

    http://www.runoob.com/sqlite/sqlite-select.html SQLite Select 语句 SQLite 的 SELECT 语句用于从 SQLite 数据库表中获 ...

  10. C++ 过载,重写,隐藏

    1.过载:在一个类中(也就是一个作用域),方法名相同,形参表不同的方法. 2.重写:父类方法使用virtual,子类方法和方法的方法名,形参表,返回类型相同,子类可以不使用virtual,但是建议使用 ...