FocusBI: SSIS体系结构(原创)
关注微信公众号:FocusBI 查看更多文章;加QQ群:808774277 获取学习资料和一起探讨问题。
《商业智能教程》pdf下载地址
链接:https://pan.baidu.com/s/1f9VdZUXztwylkOdFLbcmWw 密码:2r4v
打开SQL Server Data Tools 2015它比2012版增加了不少大数据相关的数据处理组件,SSIS是微软BI的ETL(抽取、转换、加载)工具,SSIS 是 购买安装SQL Server时附加的一个免费工具;它的性能不比第三方收费工具差,在SSIS发布的时候,它保持了一项世界速度记录:在一小时内加载2TB数据,这是十年前的记录。
体系结构(一)
SSIS体系结构由包、控制流、数据流、变量、参数等组成,它非常有特色的地方就是处理数据时在数据流管道中实现,也就是说SSIS从数据库中能更快的提取数据已管道流的形式清洗数据。

SSIS中的数据流被实现为一种逻辑管道,数据从一个或多个源流出,然后经过必要的转换对数据进行清洗和调整,最后进入一个或多个目标。因为数据流主要在内存中工作(这给予了SSIS更强大的力量),所以相比于其他ETL类型的环境(在这些环境中,数据首先被加载到临时环境中,然后在通过SQL语句进行清洗),SSIS允许数据流更快的执行。
如何确认SSIS处理数据时使用的是管道,
- 打开一个SSIS项目,
- 右击一个包,
- 选择 查看代码
- 看到xml 格式的内容
- 按Ctrl + F 查找 PipelineComponentMetadata
- PipelineComponentMetadata 是 已管道的形式构建元数据源
- 你会发现每一个包内的数据源和目标都被PipelineComponentMetadata包裹


体系结构(二)
SSIS的核心部分就是包(package)的概念。包是一个可用来编写工作流和业务逻辑的可执行程序。从本质上讲,包是一个以循序渐进的方式执行的任务集、同时包还是一个执行和开发单元。
包的核心就是控制流(Control Flow), 它协调包中所有组件的执行顺序;控制流由任务、优先约束、容器组成。任务可以被描述为一个独立的工作单元,可以是一条SQL语句、一个存储过程等。优先约束是用来指示任务按照给定顺序执行的包组件,约束状态有:成功、完成、失败。容器主要用来将任务集合在一起执行,容器就像一个盒子。
控制流就是SSIS的大脑,数据流就是SSIS的心脏。数据流将数据提取到服务器内存中,转换数据并将数据写入到另一个目标。数据流由源、转换、目标组成;源是数据流设计界面的第一个组件,它会向下游组件发送数据。转换是数据流中的关键组件,容许它对数据管道中的数据进行修改。目标在数据流离开最后一个转换组件后数据流就开始流入目标数据库中。
SSIS体系结构中还提供了变量、参数、错误处理、日志记录

了解了SSIS体系结构那具体任务包含哪些任务、哪些容器、能连接哪些源、能做哪些数据转换、转换完成的数据能保存到哪些目标中;(下图是更加细化的SSIS体系结构)

开发流程
SSIS开发流程
1.配置数据源 :创建接数据源和目标源的连接管理器。
2.新建包:根据业务划分和数据处理,创建相应的管理包。
3.选择控制流:根据数据处理选择能使用的任务组件。
4.处理数据流:根据数据清洗选择能使用的清洗转换组件。
5.部署:把完成的解决方案部署到SSIS服务器上。
6.执行计划:通过作业让SSIS 包自动按时执行。
7.邮件监控:邮件预警通知,任务计划执行结果步骤。

命名规范
SSIS命名规范
1.连接管理器:数据源(S_服务器IP_数据库),目标源(T_服务器IP_数据库)
2.包:已数字 开头 ODS_01_业务处理名、 DW_01_业务处理名 通常情况按照业务的先后顺序创建包
3.控制流:根据业务处理步骤命名 通常已 表名_中文名(Dim_Fund_款项类型),尽量简短表明这个组件做的事情
4.数据流:已数据源开始,目标源结束,中间可以通过数据清洗组件转换数据,命名一般都使用默认名
5.作业计划:作业步骤名与SSIS包名一样命名

开发规范
SSIS开发规范根据应该企业内部开发习惯进行管理,这里列几个常用的规范:
1.数据类型:整数(int) ,金额、面积(numeric(18, 2)), 字符串(长度超过20的使用 nvarchar(32)/nvarchar(64/128)),日期((20180101)int)
2.串行并行:并行:当SSIS包中各个控制流数据没有相互依赖,可以进行并行加快数据处理速度;串行:当SSIS包中各个控制流数据相互依赖,必须进行串行处理数据
3.业务难度:在处理复杂业务数据清洗转换时,普通的SQL语句已经支撑不了这个业务的处理,可以使用存储过程分段处理;如:地产进度管理、库存周转率。

历史文章:
FocusBI: 使用Python爬虫为BI准备数据源(原创)
FocusBI关注者
FocusBI:SSAS体系结构(原创)
FocusBI:租房分析&星型模型
FocusBI:地产分析&雪花模型
FocusBI:MDX检索多维模型
FocusBI:租房分析可视化(网址体验)
FocusBI: 《DW/BI项目管理》之数据库表结构 (原创)
FocusBI: SSIS体系结构(原创)的更多相关文章
- FocusBI:SSAS体系结构(原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. SSAS是微软BI组件系列中最核心的组件,商业智能的心脏所有的数据都从这里统一输出,它能把 ...
- FocusBI: SSIS 开发案例(原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...
- FocusBI: 总线矩阵(原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...
- FocusBI: 微软商业智能教程目录介绍(原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...
- FocusBI:《DW/BI项目管理》之SSIS执行情况
微信公众号:FocusBI关注可了解更多的商业智能.数据仓库.数据库开发.爬虫知识及沪深股市数据推送.问题或建议,请关注公众号发送消息留言;如果你觉得FocusBI对你有帮助,欢迎转发朋友圈或在文章末 ...
- FocusBI: 《DW/BI项目管理》之数据库表结构 (原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...
- FocusBI: 数据仓库 (原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...
- FocusBI: 商业智能场景(原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.co ...
- FocusBI: 使用Python爬虫为BI准备数据源(原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...
随机推荐
- C#基础入门 一
C#基础入门 一 基本输入输出函数 简单程序输出helloworld using System;//引入System库 namespace MainClass { class MainClass { ...
- pipeline+sonar
前提需要在项目根目录下新建sonar-project.properties文件,内容如下: # must be unique in a given SonarQube instance sonar.p ...
- SELinux导致无法访问外网,PHP连接MySQL异常Can't connect to MySQL server、redis程序访问提示Redis server went away的解决方法
今天上班遇到的问题,新配的Linux服务器,php.Apache和一系列扩展插件装好后,在本地好好的程序移上去就一直抱数据库连接错误,而用sql命令却能连接上去, 做了一个简单的判断数据库连接页面还是 ...
- ASP.NET Core URL Rewrite中间件
URL重写是基于一个或多个预置规则修改请求URL的行为.URL重写在资源位置和访问地址之间创建了一种抽象,这样二者之间就减少了紧密的联系.URL重写有多种适用的场景: 临时或永久移动或替换服务器资源, ...
- Windows上编译libjpeg
通常libjpeg可以使用如下命令行生成Visual Studio 2010的项目文件: nmake /f makefile.vc setup-v10 但可惜我们使用的是Visual Studio 2 ...
- Metasploit Penetration Testing
1.Metasploit整体框架: Shell中直接输入msfconsole启动PostgreSQL数据库服务 :service postgresql start 监听5432端口初始化Metaspl ...
- [ActionScript 3.0] 使用Embed在类中嵌入字体
package { import flash.display.Sprite; import flash.text.Font; import flash.text.TextField; import f ...
- 树莓派 Raspbian
备注,从右往左分别是:无线鼠标一个, HDMI转VGA接口一个,网线一根,小米充电宝电源线一个.树莓派Pi 3 一台,包括读卡器一个+32G class10 SD卡一块.最后俩个U盘作为备用里面有Ar ...
- Layout1:Grid(补交作业)
Layout1:Grid 这一节我们来讲解一下一个layout:gird. 首先上一段代码: <Page x:Class="Gridstudy.MainPage" xmlns ...
- vue数据响应的坑
1.首先遇到的第一个坑是数组 vue初始化时,data是一个数组并且为空的时候,里面有一些对象元素,直接改变这些对象的的属性不会触发视图更新 解决办法,copy一个新的数组(vue.assign是浅c ...