SSIS ETL BEST PRACTICE】的更多相关文章

PackageRunLog(ExecutionGuid,PackageName,SourceTableName,DestinationTableName,StartTimeUTC,EndTimeUTC,NumberOfRowsMoved,Status,MaxUpdateTime) 记录SSIS包每次的运行信息,何时开始,何时结束,运行状态,从哪个表输送多少条数据到某个表. PQOUNITS : 一个测试框架,存储测试用例,根据要求执行,可以生成测试结果的报告,如果出现错误,及时发现错误. 例如写…
开篇介绍 本自测与面试题出自 微软BI SSIS 2012 ETL 控件与案例精讲 (http://www.hellobi.com/course/21) 课程,对于学完本课程的每一课时和阅读完相关辅助阅读博客之后,都需要通过以下自测题来巩固课程中所学习到的基本知识点.具体相关学习方法与面试准备可以参考 微软BI SSIS 2012 ETL 控件与案例精讲课程学习方式与面试准备详解 一文. 自测与面试 200 问 此自测题也可以作为面试题来准备,虽然对于 ETL 控件的面试大多不会考察到这么细的粒…
开篇介绍 微软BI SSIS 2012 ETL 控件与案例精讲 (http://www.hellobi.com/course/21) 课程从2014年9月开始准备,到2014年12月在 天善BI学院 (http://www.hellobi.com)正式上线. 100多天的时间共完成了 51个视频的录制,包含49个原创案例,总共1460余分钟,共计 24 个小时. 每一个案例的准备时间耗时 4 - 5个小时,有的案例的设计,思路的整理耗时 8 个小时 - 16 个小时. 本课程涵盖了微软 BI S…
原文:微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件 开篇介绍 大多数情况下我们的 SSIS 包都会配置在 SQL Agent Job 中周期性的按计划执行,比如每天晚上调用 SSIS 包刷新数据,处理 Cube 等.一旦 SSIS 包中出现任何异常,报错,那么配置在 SQL Agent Job 中的通知,邮件提醒就会把这些错误信息发邮件到指定的用户或者系统维护者,这样就起到了一个错误监控的作用. 但是在有的情况下,有一些…
说明:以下是自己的理解答案,不是标准的答案,如有不妥烦请指出.         有些题目暂时没有答案,有知道的请留言,互相学习,一起进步. 62.描述一下 Execute SQL Task 的作用,在 ETL 开发过程中哪些情况下会使用到 Execute SQL Task?     执行SQL语句,获取单个数据,获取数据集合 63.在 Execute SQL Task 中的 Parameter Mapping 中 Direction 有哪几种类型?     三种:Input ,Output,Re…
原文出处:https://blogs.msdn.microsoft.com/sqlcat/2013/09/16/top-10-sql-server-integration-services-best-practices/ 译: 多少人听说过“SQL Server Integration Services(译注:以下简称SSIS)不能扩展”的传说?我们要反问的是“你的系统是否有必要扩展到每秒能够处理超过450万行交易记录?”SSIS是可以适应最极端环境的高性能ETL平台.并且正如在SSIS ETL…
这是我从工厂出来的第五个年头,也是我第一次主动写年终总结: 回想这一年来一点成就都没有,想想都有点后怕:而且每天还是干着同样的事情,容易被新手代替,由于我比较厌烦每天重复的干同样的活,所以我开始思考是否有系统能帮我干活或者帮我处理掉大部分工作来提高工作效率和解决问题的速度.我的工作是每天处理不同的数据问题,这些数据几乎是整个企业的数据整合,所以得建立数据仓库来管理企业数据支持企业各层次的业务需求. 建数据仓库大部分是体力活,看在体力活的面子上我萌发出一个想法,把体力活让系统来完成.这个想法就是<…
进入了新的公司,开始接触新的方向,内心激动而又兴奋,对于BI以前知道的极少,从今天开始要好好学习了~ BI的概念,功能,强大之处在此先不做赘述,BI之路先要一步一个脚印扎实做起,现在正在看的也是之前好多大神们推荐的<SQL SERVER 2008商业智能完美解决方案>,相信无论对初学者还是BI高级开发人员都有启示. 首先,ETL工作之一,最简单的是SSIS包的设计-调试-执行-部署,做完我才发现原来微软Integration Services工具集的强大之处,比如今天做的Excel-->…
RT,正式写之前,我想说,真TMD不容易!!! 写博客,责任心,很重要 在百度搜出来的内地博客技术文章(CSDN.ITEYE.CNBLOGS……),大部分都是不全面,只针对一个遇到的问题点的记录,可以说毫无参考价值,甚至会把你指向错误的方向. 为什么?因为无当时系统环境交待,工具版本信息,其它客观因素(非原生,有插件等等).但是搞技术的都知道,这些因素非常重要. 但我们再看看台湾 dotblogs 上的文章(百度偶尔抽风,给点tw的结果),案例: http://www.dotblogs.com.…
一直准备写这么一篇有关 SSIS 日志系统的文章,但是发现很难一次写的很完整.因为这篇文章的内容可扩展的性太强,每多扩展一部分就意味着需要更多代码,示例和理论支撑.因此,我选择我觉得比较通用的 LOG 部分,在这里分享一下给大家,希望对大家在设计 ETL 的日志系统时有所启发和帮助.当然在这里要区分 Logging 和 Auditing 的区别,Logging 主要用来记录发生了什么事情,Auditing 侧重描述过程中产生的数据量,新增了多少,修改了多少等记录条数.本文主要讲解 Log 部分,…
开篇介绍 最近经常碰到在 ETL 练习中出现这种转换失败的问题,试了多种方式,同样的代码同样的源结构和表结构但是一直不能成功执行,包报错.一般有这么几种错误: Error at DST_LOAD_DATA_FROM_FILE [OLE_DST_EMPLOYEE[109]]: The column "FirstName" cannot be processed because more than one code page (1252 and 936) are specified for…
由于OFFICE 2010的安装包比较庞大,如果仅仅为了在服务器中实现操作EXCEL,完全没有必要安装整个OFFICE,是否可以不装OFFICE也实现与OFFICE文件的互相操作呢?答案是肯定的,在SSIS中只要安装Microsoft Access 2010 数据库引擎可再发行程序包即可实现2010 Microsoft Office System 文件与非 Microsoft Office 应用程序之间传输数据,支持现有的 Microsoft Office 文件(例如 Microsoft Off…
原文:实例学习SSIS(一)--制作一个简单的ETL包 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS(四)--使用日志记录和错误流重定向 实例学习SSIS(五)--理论介绍SSIS 参考内容:SQLServer2005的帮助文档. ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/sqltut9/html/d6d5bb1f-4cb1-4605-9cd6-f60…
在第 1 课:创建项目和基本包中,创建了从单个平面文件源中提取数据的包,然后使用查找转换功能对数据进行了转换,最后将数据加载到AdventureWorksDW2012 示例数据库的 FactCurrency 事实数据表中. 但是,提取.转换和加载 (ETL) 过程很少使用单个平面文件. 典型的 ETL 过程从多个平面文件源提取数据. 从多个源提取数据需要采用迭代控制流.Microsoft Integration Services 最可能出现的功能之一是可以方便快捷地向包中添加迭代或循环. Int…
在本课中,将创建一个简单 ETL 包,该包可以从单个平面文件(Flat File)源中提取数据,使用两个查找转换组件转换该数据,然后将该数据写入AdventureWorksDW2012 的 FactCurrency 事实数据表中. 在本课中,您还将学习如何创建新包.添加和配置数据源和目标连接以及使用新的控制流和数据流组件. AdventureWorksDW2012 下载地址:http://msftdbprodsamples.codeplex.com/releases/view/55330 Ste…
SSIS: Microsoft SQL Server Integration Services.是一个可用于生成高性能数据集成解决方案的平台,其中包括数据仓库的提取(Extract).转换(Transform)和加载 (Load)(ETL 包). SSIS 包括生成并调试包的图形工具和向导:执行如 FTP 操作.执行 SQL 语句和发送电子邮件等工作流功能的任务:用于提取和加载数据的数据源和目标:用于清理.聚合.合并和复制数据的转换:管理服务,即用于管理包执行和存储的 Integration S…
对于BI项目,在数据仓库方面的技术实现主要是进行数据集成的工作,源数据可能来自不同的业务数据库(如Sql Server.ORACLE.My sql.EXCEL等),通过SSIS的数据流组件很容易进行各类数据库的ETL,由于微软之前提供的ORACLE接口不支持ORACLE 9以上的版本,因此需要安装ORACLE客户端才能在SSIS中连接ORACLE,能否类似ADO.NET的方式连接ORACLE呢?通过Microsoft Connector for Oracle by Attunity组件可以实现,…
好几年前写了一篇<SSIS利用Microsoft Connector for Oracle by Attunity组件进行ETL!>,IT技术真是日新月异,这种方式对于新的SQL SERVER 数据库版本已不适用了,比如SQL SERVER 2016 的SSIS不需要安装任何插件就可以抽取SharePoint 列表数据了,主要利用OData源实现读取SharePoint列表数据,比如需要抽取SharePoint test列表数据,具体如下: 该test列表数据有文件夹和项目,但实际只要抽取项目…
在本课中,将修改在第 5 课: 添加包部署模型的包配置中创建的包,以便使用项目部署模型.您将使用一个参数替换该配置值,以便指定示例数据位置.还可以复制本教程附带的已完成的 Lesson 5 包. 使用 Integration Services 项目配置向导,您将该项目转换为项目部署模型,并且使用参数而不是配置值来设置 Directory 属性.本课部分介绍了您将现有 SSIS 包转换为新的项目部署模型时要遵循的步骤. 再次运行包时,Integration Services 服务将使用参数填充该变…
包配置允许您从开发环境的外部设置运行时属性和变量. 配置允许您开发灵活且易于部署和分发的包.Microsoft Integration Services 提供了以下配置类型: XML 配置文件 环境变量 注册表项 父包变量 SQL Server 表 Step 1: 复制第 4 课包 Step 2: 启用和配置包配置 创建映射到 Directory 属性的新的包级别变量 在 SSIS 设计器中,单击“控制流”选项卡的背景. 这会将要创建的变量的作用域设置为包. 在 SSIS 菜单中,选择“变量”.…
为了处理在转换过程中可能发生的错误,MicrosoftIntegration Services 允许根据每个组件和每个列来决定如何处理无法转换的数据. 可以选择忽略某些列中的失败.重定向整个失败的行或者只是使组件失败. 默认情况下,Integration Services 中的所有组件被配置为在发生错误时失败. 而使组件失败又会导致包失败,并使所有后续处理停止. 如果不让失败导致包停止执行,一个好方法是通过配置使在转换中发生潜在处理错误时这些错误能够得到处理. 虽然可能选择忽略失败以确保包成功运…
Microsoft Integration Services 包含日志记录功能,可通过提供任务和容器事件跟踪监控包执行情况以及进行故障排除. 日志记录功能非常灵活,可以在包级别或在包中的各个任务和容器上启用. 可以选择要记录的事件,也可以对单个包创建多个日志. 日志记录由日志提供程序提供. 每个日志提供程序可以将日志记录信息写入不同的格式和目标类型.Integration Services 提供以下日志提供程序: 文本文件 SQL Server 事件探查器 Windows 事件日志 SQL Se…
本文转自 http://sqlblog.com/blogs/andy_leonard/archive/2007/07/09/ssis-design-pattern-incremental-loads.aspx Andy Leonard Andy Leonard is CSO of Linchpin People and SQLPeople, an SSIS Trainer, Consultant, and developer; SQL Server database and data wareh…
在进行ETL开发时,数据类型(Data Type)是最基础的,但也容易被忽略,楼主使用的SQL Server 版本是2012,用此博文记录,常用的SSIS数据类型和TSQL数据类型的映射.SSIS的数据类型,是指数据流组件使用的数据类型和变量的数据类型(Data Flow 和 Variable). 当数据进入Package的data flow task中时,SSIS 通过数据源组件从数据源抽取(extract)数据,获取元数据类型,并转换成SSIS支持的数据类型,SSIS的数据类型主要分为三类:…
数据流利用内存来缓冲数据,并在内存中处理数据转换,由于内存的访问速度是非常快的,所以SSIS数据流转换性能是非常高效的.SSIS Engine将数据分批加载到内存中,当Data Flow将一批新的数据加载到内存时,下游转换组件会对已经加载到内存中数据进行处理,同时,目的组件会将处理完成的数据加载到Target Table中,数据的读取,转换和加载同时进行,这就是数据流的优势. 1,利用数据流,能够减少暂存和昂贵的disk IO 操作 在大量数据的ETL系统中,Disk IO是系统性能的bottl…
以数据流的方式来设计Package,将核心数据处理移动到数据流中,一般情况下,能够减少临时表的创建,获得较高的处理性能,在某些情况下,使用暂存表(staging table)能够优化package设计. 1,使用基于集合的更新操作 在大型系统中,数据更新通常是系统的bottleneck,因为SSIS不能在Data Flow 中执行基于集合的更新.在Data Flow中,OLEDB Command 转换组件是逐行对数据进行更新的,对每一行数据执行更新操作,会导致低下的性能.对于存在大量更新的数据流…
数据量的大小由两个方面决定:行的宽度和数据行的数量,为了减少ETL运行的时间,可以从源数据的提取上做优化,从数据源的输入上控制数据的质量和大小,减少转换和IO. 一,减少行的宽度 1,只加载需要的数据列 在Data Flow中,源适配器允许选择加载的Table 或View,虽然有复选框,从而过滤掉不需要的数据列,但是,问题是,过滤过程发生Client,换句话说,所有的列从DB中被传递到SSIS 源适配器(产生大量的IO开销),然后在SSIS中删除选中额数据列.建议使用SQL Command,在s…
一,Execution Tree 执行树是数据流组件(转换和适配器)基于同步关系所建立的逻辑分组,每一个分组都是一个执行树的开始和结束,也可以将执行树理解为一个缓冲区的开始和结束,即缓冲区的整个生命周期. 大家知道,异步转换组件会结束输入缓冲区,创建新的输出缓冲区,所以,执行树的分组实际上通过异步转换组件来划分的,一个异步转换组件意味着上游执行树的结束和下游执行树的开始.当数据流经过异步转换组件,进入一个新的执行树,上一个执行树的缓冲区和相同数据就不再需要了,因为数据已经被传递到一个新的执行树和…
Control Flow 和 Data Flow,是SSIS Design中主要用到的两个Tab,理解这两个Tab的作用,对设计更高效的package十分重要. 一,Control Flow 在Control Flow中,Task是最小的单元,Task通过Precedence Constraint来保持同步,在对后续Task进行处理之前,必须完成前面Task(成功,失败或者完成). 1,Control Flow 不能在组件之间传递数据,用于串行或并行执行任务,担当Task的调度者. 如果两个Ta…
1,利用优先约束来并发处理数据,Data Flow Task 和 Data Flow Task 1 是并发执行的,而 Data Flow Task2 必须等到 Data Flow Task 和 Data Flow Task 1 执行完成之后,才开始执行. 2,如何从一个数据源表中并发处理数据,设计思路是 将一个表中的数据平均分成N份,各个数据流之间并发处理. 例如分为3份,可以使用%3,将数据分为三个子数据流并发处理数据. select * from dbo.SourceTable select…