SSIS学习:数据流任务下.docx

SSIS学习:数据流任务下.docx

ID:57379230

大小:369.74 KB

页数:12页

时间:2020-08-14

SSIS学习:数据流任务下.docx_第1页
SSIS学习:数据流任务下.docx_第2页
SSIS学习:数据流任务下.docx_第3页
SSIS学习:数据流任务下.docx_第4页
SSIS学习:数据流任务下.docx_第5页
资源描述:

《SSIS学习:数据流任务下.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SSIS学习():数据流任务(下)————————————————————————————————作者:————————————————————————————————日期:IntegrationServices学习(3):数据流任务(下)前一篇文章SSIS学习(2):数据流任务(上),介绍了如何创建一个简单的ETL包,如何通过一个简单的数据流任务,将一个文本文件的数据导入到数据库中去。这些数据都保持了它原有的本色,一个字符不多,一个字符地少导入,但是在实际应用过程中,可能很少有这种情况,就拿IisLog文件来说吧,其中包含有:请求成功的记录(

2、sc-Status=200),也有请求失败的记录;有网页(比如:*.aspx、*.htm、*.asp、*.php等)、有图片、有样式表文件(*.CSS)、有脚本文件(*.js)等,可谓是鲜花与毒草并存,精华与糟铂同居啊,我们如何根据不同的需求,把其中的鲜花与精华提炼出来呢,这就是我们今天要讲的重点:数据流转换。   在进行数据流转换之前,我们先介绍一下使用场景:以IISLOG为依据,进行网站点击率分析(IP&PV分析),具体需求如下:  (1)分析一段时间内,网站点击率的变化趋势。同时还需要知道各个周未、各个节假日网站的流量情况。  (2)分析

3、一天内,各时段(以小时为单位)网站的压力情况。  (3)了解网站客户群分别来自哪些国家,哪些地区。  为了实现这些需求,我们建立了如下的数据模型,请看:   代码  下面,我们就一步一步地介绍,如何进行数据流转换,以达到上面的需求。  (一)、"条件性拆分(ConditionalSplit)"。相当于Sql语句的Where条件。这或许是所有数据流转换任务的第一步,为了减少后续处理的数据量,为了提高系统性能,先过滤掉不需要的记录。前面讲过,IisLog文件包括有各式各样的记录,而对本例需求来说,为了准确计算IP、PV数据,我们将如何过滤呢?  (

4、1)、筛选出纯网页浏览记录。即*.aspx、*.htm(本网站只有这两种类型的网页文件)文件记录。  (2)、筛选出请求成功的记录(sc-Status=200)。  打开上一篇文件的SSISSolution,切换到数据流Tab,从左边工具箱中,打开“数据流转换”,找到“条件性拆分(ConditionalSplit)”组件,拖到数据流面板上,然后将“平面文件源”组件下的绿色箭头拖到“条件性拆分”组件上,双击“条件性拆分”组件,打开“条件性拆分转换编辑器”,如图:  在这个窗口,有系统变量、数据源列、系统函数这些资源可供使用。我们为了筛选出纯网页浏

5、览记录,需要从列cs_uri_stem中找到以.aspx、.htm、“/”结尾的页面链接。请分别在上图列表的“输出名称”栏位,输入“FormRecords”,在条件表达式栏位输入:RIGHT(cs_uri_stem,5) == ".aspx" 

6、

7、 RIGHT(cs_uri_stem,4) == ".htm"

8、

9、 RIGHT(cs_uri_stem,1) == "/" 然后筛选请求成功的记录,其表过式为:sc_status == "200" 最后将两个表达式组合起来,即为:(RIGHT(cs_uri_stem,5) == ".aspx" 

10、

11、 

12、RIGHT(cs_uri_stem,4) == ".htm"

13、

14、 RIGHT(cs_uri_stem,1) == "/") && sc_status == "200" 如图所示: 点击确定.数据过滤就算大功告成了。  (二)、派生列(DerivedColumn),相当于SQL语句中的计算列,即根据其它列,按照一定的计算公式,派生出一个新列。在此例中,有三种情况需要用到派生列:  (1)日期列,从log文件导入的日期、时间,为两个独立的字符串(varchar),而数据库中的对应字段为Datetime型,如果要想建立一种映射,则需要根据log文件的

15、Date、time字段,派生出一个Datetime型的字段。  (2)时间段,同理log文件中的Time为一字符串,需要取出其中的“小数(hour),才能与dimTime中的lngHour相匹配。  (3)IP,我们想根据客户IP,确定他所在国家、省市、地区。要达到这一需求,我想并不需要IP完全匹配,只要IP的前三段匹配,就可以确定了(没有考证过,个人感觉而已,如不妥,请指正),所以需要派生出一个ipSegment=IP的前三段,以此映射他所在的地区。  同理,从工具箱中,将“派生列”组件拖到“条件拆分”组件的下方,再将“条件拆分”组件下方的绿

16、色箭头拖到“派生列”组件上,系统会弹出一窗口,要求选择条件拆分的的输出名称,如图:  从下拉列表框中选择“FormRecords”,点击确定。  然后

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。