进入了新的公司,开始接触新的方向,内心激动而又兴奋,对于BI以前知道的极少,从今天开始要好好学习了~
BI的概念,功能,强大之处在此先不做赘述,BI之路先要一步一个脚印扎实做起,现在正在看的也是之前好多大神们推荐的《SQL SERVER 2008商业智能完美解决方案》,相信无论对初学者还是BI高级开发人员都有启示。
首先,ETL工作之一,最简单的是SSIS包的设计-调试-执行-部署,做完我才发现原来微软Integration Services工具集的强大之处,比如今天做的Excel-->DB表的导入,只要设计一个SSIS包,执行一下就完成了EXCEL数据的导入,相比之前用C# 在VS里开发,不用写一行代码,不仅有可视化环境,还有强大的参数功能设置,甚是好用,如果使用了这个思路,相信以后开发会少很多繁琐,思路更加清晰,也会爱上BI这条路。
======================================================================================================
SSIS简介:
SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案(包括数据仓库的提取、转换和加载 (ETL) 包)的平台,
Integration Services 包括用于生成和调试包的图形工具和向导;用于执行工作流函数(如 FTP 操作)、执行 SQL 语句或发送电子邮件的任务<基础第一步>;用于提取和加载数据的数据源和目标;用于清理、聚合、合并和复制数据的转换;用于管理 Integration Services 的管理服务 Integration Services 服务;以及用于对 Integration Services 对象模型编程的应用程序编程接口 (API)。
SSIS的典型用途:
1>合并来自异类数据存储区的数据
2>使管理功能和数据加载自动化
3>填充数据仓库和数据集市
4>清除数据和讲数据标准化
5>讲商业智能置入数据转换过程
SSIS/ETL设计练习一:《excel ->DB 表》
要求:把excel一次性导到数据库中。
步骤:
1、打开VS(BIDS),新建Integration Services项目,在SSIS包文件夹右键新建一个Package包(.dtsx)格式,
2、在控制流界面从工具箱拖放‘数据流任务’空间,右键编辑-->打开数据流界面编辑‘数据源’,‘转换’,‘数据目标’控件分别编辑
excel源:位置路径,列,映射
DB数据目标:server IP,用户名,密码,映射
编辑过程中,有红色X的话说明有问题,绿色说明检查通过。执行包或者数据流任务时,可以查看执行进度以及设置断点调试
右键执行包。可以看到执行进度,完成后导入数据库相应记录条数。
Notes:
为了避免数据类型不匹配不匹配导致需要增加数据转换,或者长度不匹配导致的字符串截,可以简单的在oledb目标里直接自动创建数据库连接里新的表,以达到自动适应的目的。
SSIS/ETL设计练习二:《DB->excel表》
要求:把设计好的包部署到sql server JOB中,每个月末定期运行一次,包的功能是:分别把段sql 查询语句段结果查询出来,导出到连个excel中,方案解析看Notes。
步骤:
1>建立数据流任务1,编辑数据流任务,添加oleDB源,添加excel目标源,分别编辑,(等出现提示不匹配的时候再增加‘数据转换’的控件)
2>oledb数据源编辑:连接器,访问模式:sql命令,sql文本:填写SQL查询语句,参数用?代替,然后编辑参数映射,参数值为设定的默认值,如:string /datetime类型:‘2015-09-01’,然后点击“分析查询”,能正确分析说明没有问题。
2>编辑excel目标路径。需要在filepath路径下新建立一个excel目标文件,然后在.xlsx目标文件内写入数据。
Notes:
因为要求是两段sql语句都是用相同的参数,并且需要每个月末运行一次,查询的是从月初到月末这一参数范围内的记录数,所以可以把两段SQL放在一个控制流的序列容器中,然后在开始的时候(序列容器之前)添加一个给SQL 语句段参数赋值的SQL任务,这样的话部署到sqlAgent后每个月末执行的时候不会再取默认值,而是把当前时间作为第二个参数,第一个参数为计算出的本月初时间《选取10位nvarcha(10)字符串格式,不会出错,如‘2015-09-30’》
如图:
这样的话就做好了,可以看到执行结果