数据的导出涉及到数据转换的概念。企业中的数据并不是以统一的格式存储的。比如:有SQL、access、oracle、excel,这些存储形式的格式都是不一样的,但是我们可以利用SSIS包设计器来对这些不同格式的文件之间进行转换,以便更加灵活地使用企业的数据。
为什么要进行数据转换?
当我们希望将数据从一个服务器移动到另一个服务器或者另外一个地方,或者需要对数据进行复制、存档、迁移的操作,需要数据转换。
数据转换前该考虑什么问题?
更改数据的格式,数据的重构和映射。数据的一致性。验证数据的有效性。如果数据是一致的,但是格式不一致,或者数据的表现形式不统一,那么是不行的。
SQL的数据转换工具有哪些?
SQL的数据转换的方式是多样的,但是他们的功能各有侧重,所以需要我们根据实际的需要有选择的使用。
1、 使用T-SQL语句,从现有表中选择数据并添加到表中。
2、 备份和还原。
3、 分离和附加。
4、 复制。(该功能在前一篇文章有介绍)
5、 SSIS导入和导出向导。
6、 SSIS包设计器。
我们使用SSIS包设计器可以定义更加复杂的数据流。做比SSIS向导更加精确和专业的转换。
项目需求:在公司的数据库中,有一个表叫“玩家一览表”,总经理希望查看该表的内容,但是总经理不会使用SQL的查看方式,只会使用excel,并且总经理只希望看到“姓名”、“年龄”、“种族”、“职业”字段。
项目分析:根据以上的需求,我们需要使用SSIS包设计器将结果导出到excel表格中,方便总经理的查看。
先说说该实现该项目的整体思路:
1、 启动BIDS
2、 新建项目
3、 新建数据源并连接数据源
4、 添加数据流任务
5、 添加并编辑数据流源
6、 添加并编辑“派生列”转换方法
7、 添加并编辑数据流目标
8、 验证
下面来看看具体的实现步骤
(一)、我们要用到一个工具BIDS,打开该工具,新建项目,如图
BIDS的界面如图所示
文件——新建项目,或直接点击新建项目按钮
(二)、创建完成项目后,新建数据源,并连接该数据源,如图
连接管理器配置后,如图所示
右击连接管理器,从数据源新建连接
配置完成的数据源如图所示
(三)、添加数据流任务,即我们要设计什么样的任务流,等这个流定义完成,会一个包的形式保存,且可以重复执行将数据流任务拖动到右边的窗口
(四)、添加并编辑数据流的源,数据库源选择OLE DB源,即要从数据库向外导出数据。首先将OLE DB源拖动到右边的编辑界面
然后右击该源——编辑
弹出编辑界面,做如下的配置
(五)、因为总经理需要查看该表中的年龄字段,而该表中没有该字段,只有出生日期字段,所以我们需要配置“派生列”,如下图
将派生列域OLE DB源进行连接,单机OLE DB源的向下绿色箭头,拖动到派生列
右击派生列,进行相关的编辑
配置完成的表达式,如图所示
(五)、派生列编辑完成后,我们要添加并编辑数据流的目标,即excel目标
如图所示,采用同上述类似的方法,先将数据流目标拖动到主界面,然后编辑数据流目标,并且将数据流目标和派生列用向下的绿色箭头相连
配置好后,如图所示
设计好的SSIS包,如图所示
(六)、最后我们来验证一下,单击工具栏中的调试——执行,看看数据是不是成功导入到桌面的excel表格了
我们打开excel表格看看,有我们刚才导入的数据,完好无损,并且包含年龄字段,该字段是在“派生列”里根据出生日期计算出来的。
注:对于微软出的SSIS来进行数据的抽取,是一个简单的工具相对其他的ETL工具来说可能没有那么简单,但是进行ETL入门工具还是不错的。在微软提供的SS三剑客,提供了一整套的数据处理与报表展示过程。
因为现在相对一个企业来说数据量越来越大,数据的来源越来越广,我们需要的是一个数据仓库,而建立数据仓库就需要用到ETL工具。这里是一个简单的SSIS的入门教程。在SSIS中远不止入门的这些简单的功能,还有其他的功能后面也会慢慢介绍到。