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/ ...
随机推荐
- map的回调函数
问题:--js (['1','2','3']).map(parseInt) 第一眼看到这个题目的时候,脑海跳出的答案是 [1, 2, 3],但是真正的答案是[1, NaN, NaN]. 首先让我们 ...
- MVC dropdownlist 下拉框
List<SelectListItem> items = new List<SelectListItem>(); items.Add(new SelectListItem() ...
- git .gitignore忽略规则不生效解决办法
忽略规则不生效, 原因是.gitignore只能忽略那些原来没有被track的文件, 如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的. 那么解决方法就是先把本地缓存删除(改变成 ...
- [SDOI2009] HH的项链 | 莫队模板
题目链接:戳我 题意:求区间中不同颜色的种类数 因为是要过知识点,所以又把这题拿出来做了一遍......这里就写两种方法吧 主席树做法 设pre[i]为第i个点上的颜色在前面序列中出现的最晚的一次的位 ...
- django admin后台的简单使用
创建自己的model.py文件 from django.db import models from django.contrib.auth.models import ( BaseUserManage ...
- 蛋疼的Action.c (141): undeclared identifier `LAST'异常
之前这个脚本运行了很久都没有问题,今天突然在场景运行不了: Action.c (141): undeclared identifier `LAST' 害的老子一直在纠结,这个关联函数没有问题啊,怎么一 ...
- “全栈2019”Java第二十一章:流程控制语句中的决策语句if
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- [agc004e]Salvage Robots dp
Description 蛤蟆国的领土我们可以抽象为H*W的笼子,在这片蛤土上,有若干个机器人和一个出口,其余都是空地,每次蛤蟆会要求让所有的机器人向某个方向移动一步,当机器人移动到出口时会被蛤蟆活摘出 ...
- [ActionScript 3.0] 与C#通信方法fscommand
与C#通信的方法之一 flash.system.fscommand(command:String, args:String=""):void, command 传递给主机应用程序的 ...
- Struts2与easyui分页查询
easyui里面分页查询:在easyui框架里面已经进行一些分装,所以我们只要进行后台分页查询即可 web.xml和struts.xml文件的配置的就不需要我多说了,和分页前代码一样,不需要更改: 需 ...