- 下载WCF_Service.rar
- 下载SequenceContainer.rar
- 下载ForLoopContainer.rar
- 下载ForEachLoopContainer.rar
- 下载ErrorHandlingUsingEventHandler.rar
- 下载demo
- 下载XmlTask.rar
- 下载WebServiceTask.rar
这篇学习MSBI的文章现在已经过时了,我们需要使用SQL Server 2014 http://www.codeproject.com/articles/1064477/learntocreate-msbi - microsoftbusiness-intelligen来查看我们最新的文章 介绍 欢迎来到微软商务智能一步一步学习第三天。在本文中,我们将深入了解SSIS世界。我们将在SSIS中展示一些很棒的特性和任务。 学习和发展你的更深入的知识完全一步一步MSBI教程在http://www.learnmsbitutorials.net/上 完整的系列 第2天-维度和事实,数据仓库设计技术,SSIS -执行SQL任务,SSIS -备份数据库任务,SSIS -脚本任务和变量。第三天 理解优先约束。 控制流. .实验五-网路服务任务。实验6 - Xml任务。实验7:使用事件处理程序处理控制流中的错误。实验8 -在控制流中使用优先约束的错误处理。 容器。 实验9 -顺序容器。实验10 -循环容器。实验室11 -每个循环容器。 实验室12 -在SSIS中的部署 理解优先约束 在我们继续并开始我们的实验室之前,首先让我们谈谈“优先约束”。 优先约束让我们决定执行任务的顺序。哪个任务应该第一个执行,哪个任务将下一个执行,依此类推。它还让我们决定执行任务的条件。 的例子, 如果前一个任务失败就执行,如果前一个任务成功就执行。在前一个任务完成时执行(通过或失败),当某些条件匹配时执行。 仍然困惑! ! 不用担心。在接下来的实验中,我们将使用先例约束,在那之后,你所有的困惑都会烟消云散。 控制流 到目前为止,在控制流中,我们经历了“数据流任务”、“执行Sql任务”、“备份数据库任务”和“脚本任务”。让我们进一步探索。 实验五-网路服务任务 “Web服务任务”让我们执行Web servce方法,然后将结果存储到一个变量或文件中。 这个变量或文件可以作为其他任务的输入。 注意: 本文的目的是解释SSIS而不是web服务。我们假设您对web服务有基本的了解。如果你是网络服务的新手,那么在第1步和第2步,我们分享了2个视频,让你熟悉网络服务。在实际的场景中,作为BI开发人员,大多数情况下不需要担心web服务的创建。您将从外部源(可能来自其他开发人员或组织)获得以wsdl形式存在的服务元数据。您的任务将添加“Web服务任务”,这是我们将要学习的内容。 步骤1:创建一个演示WCF服务 请浏览以下来自www.Questpond.com的视频,了解如何创建一个简单的WCF演示服务。 步骤2:在IIS或控制台应用程序中托管演示服务 请阅读以下来自www.Questpond.com的文章,了解如何主持一个WCF演示服务。 步骤3:创建新的集成服务项目 打开Sql Server数据工具(或商业智能开发工作室)。单击File>比;New>比;项目。从create project对话框的左边部分选择integration services,输入项目名称为WebServiceDemo,然后单击OK 步骤4:创建HttpConnection Manager 右键单击底部的连接管理器并选择new connection。 从对话框中选择HTTP并单击ok。 将您的WSDL文件的地址放在下一个对话框中。 注意:如何获取WSDL地址不是您所关心的。创建服务的人会给你这些。 注意:如果服务接受任何用户名、密码或证书,请提供。您也可以获得这些信息。 单击OK。 步骤5:添加Web服务任务并配置它 从SSIS工具箱中获取WebService任务并将其添加到SSIS设计器选项卡中。 双击该任务。它将打开“Web服务任务编辑器”对话框。在上面的步骤中将HttpConnection属性设置为一个设置。将WSDL文件属性设置为某个绝对文件路径。 注意:不要选择路径,而是键入它,因为WSDL文件还不可用。 路径应该是" Some_Valid_Folder_PathAnyFileName.wsdl " 例如,将其设置为“G:BI一步一步3源代码WebServiceTaskService.wsdl” 在底部您将发现一个下载WSDL按钮。单击。它将把服务公开的wsdl下载到上面步骤中指定的路径中。 现在在左侧将选择从General更改为input。将服务和方法设置为下拉列表中的一个值。当我们在th中点击下载元数据时,两个下拉菜单中都添加了值最后一步。 导航到输出部分并将输出类型设置为变量。接下来将变量设置为“New variable”。输入变量名为“ServiceOutput”,并将类型设置为String。单击OK关闭“添加变量”窗口。单击ok关闭“Web服务任务编辑器”。 步骤6:创建脚本任务 从SSIS工具箱中添加脚本任务,并将其配置为在消息框中显示“ServiceOutput”变量的值。请参考第二天学习如何处理脚本任务。 第7步:决定执行流程。 使用优先约束,首先执行Webservice任务,然后执行ScriptTask。 单击Web服务任务。你会看到一个绿色的箭头从里面出来。获取这一行并将其连接到ScriptTask。 注意:如果我们在这里不使用优先约束,这两个任务将并行执行。有了先例约束,我们添加了一个约束“只有在另一个成功执行之后才执行” 步骤8:执行和测试 确保服务正在执行。(对于演示,您可以使用本文附带的WCF服务。从WCF服务项目和执行托管项目。)按F5确认包工作正常 实验6 - Xml任务 如您所见,我们正在从Webservice中获取XML。 为了从中提取值,我们将使用“xml任务”。 “Xml任务”让我们处理Xml数据。使用这个, 我们可以合并多个xml文档,我们可以将XLST手写表应用到xml文档,我们可以使用XPath表达式计算值,我们可以验证xml文档,我们可以比较xml文档 步骤1:准备项目 使用在最后一个实验室(web服务实验室)中创建的相同项目,并从其中删除“script task”。 步骤2:添加Xml任务并配置它 从SSIS工具箱中获取“Xml任务”并将其添加到控制流中。 步骤3:添加变量来存储最终结果 右键单击设计器部分,选择variables并添加名为“XmlOutput”的变量 步骤4:配置XML任务 双击“xml任务”,它将打开“xml任务编辑器窗口”。按如下方式设置属性 我。变量ii的源类型。ServiceOuput(此变量将包含xml格式的webservice返回值,它是在上一个demo中创建的)操作类型到xpath iv。将vi . secondoperand指向" /string " 注意:如果需要,可以在文件或变量中存储XPath表达式并直接使用它。因此,将SecondOperationType设置为“文件连接”或“变量”。7保存操作结果为真viii。DestinationType到变量ix。目标到XmlOutput(在最后一步中创建)x。OverwriteDestination为真 单击OK 步骤5:添加和配置脚本任务 在控制流中添加脚本任务,并配置在消息框中显示XmlOutput变量的值。 步骤6:决定执行流程 使用优先约束,首先执行“Web服务任务”,然后执行“Xml任务”,最后执行“脚本任务”。 第7步:执行并测试应用程序 按F5检查输出 实验7:使用事件处理程序处理控制流中的错误 错误处理一直是每一种技术中一个有趣的特性。为什么ssi会落后?J 让我们使用在上面的实验室中创建的相同的示例来进行演示。但这一次服务将不可用,因此web服务任务将不能正确执行,并将抛出错误。 步骤1:准备项目 我。从以上实验6中取样。 2如果web服务正在执行,则停止它 步骤2:创建事件处理程序 我。单击SSIS设计器窗口中的事件处理程序选项卡。 2你会在顶部找到两个下拉菜单,分别命名为“Executables”和“Event handler”。选择“Web Service Task”作为可执行文件,选择“OnError”作为事件处理程序。 3在设计器窗口的工作区域,你会发现一个链接“点击这里为可执行的“Web服务任务”创建一个“OnError”事件处理程序。点击那个 IV.That。它将创建事件处理程序。 步骤3:添加脚本任务并配置它 现在,在事件处理程序的工作区域中添加一个脚本任务。双击任务打开“脚本任务编辑器”。确保为ReadOnlyVariable属性选择了一个名为“Error description”的系统变量 注意: “错误描述”是一个系统变量,它将包含SSIS包中最新的错误描述。变量将在每次出现新错误时更新。我们可以使用这个变量作为其他任务的输入。 点击编辑脚本,编写代码,在消息框中显示“错误描述”变量的值。 隐藏,复制CodeMessageBox.Show (Dts.Variables(“ErrorDescription”).Value.ToString ()); 步骤4:执行并测试应用程序 按F5确认一切正常。 实验8 -在控制流中使用优先约束的错误处理 [正在进行的工作-将upd给出很快) 容器 容器在SSIS让我们组多个任务。将多个任务加入一组我们得到以下好处。 容易控制的顺序执行。 让我们有一个例子。 我们说task1和我们想要的任务2 task1后将执行。面临的挑战是,一旦task2变得完整,task3, task4 task5应该都是并行执行最后一次完成task6应该开始。没有容器是噩梦,因为实时场景中,我们可能有大量的任务和控制所有这些只有优先约束将会很困难。 常见的属性设置值的多个任务。例子禁用多个任务在一个点击。而不是单独为每个任务添加事件处理程序可以为容器添加事件处理程序。在过去演示我们有“OnError”事件处理程序添加到一个任务。如果我们有很多的任务呢?简单地把所有的任务到一个容器和“OnError”事件处理程序添加到容器中。直到现在,无论变量我们创造了这些包级别变量。生活时间的变量等于一生的一个包。与容器容器可以限制变量的范围。我们可以在事务中执行多个任务。如果一个任务失败,操作完成的其他任务得到支持。 类型的容器 序列容器——只是组任务到一个for循环容器——组的任务,让他们执行“n”为每个循环的次数容器——组的任务,让我们通过集合循环的物品(如文件),让我们执行“群任务”的循环。(每项循环可以作为输入一个或多个任务在容器) 实验室9 -序列容器 在这个实验室 我们将组织多个任务。然后我们会让他们在事务执行。 步骤1:准备数据库 创建一个名为ContainerDemo的数据库和一个表称为SQL Server客户如下 步骤2:创建集成服务项目 使用SQL Server数据工具创建新的SSIS项目。 步骤3:添加连接管理器 添加Ado.net连接管理器和连接到ContainerDemo数据库 步骤4:添加容器 在控制流添加顺序容器。 第五步:添加执行SQL任务 创建三个序列容器内“执行SQL任务”。设置ConnectionType ADO。网络为所有三个。设置连接步中创建一个3号为所有三个。设置SQLSourceType DirectInput为所有三个。SqlStatement设置为 插入客户价值(“A”,55岁)第一个任务插入客户价值(“B”,60)第二个插入客户价值(“C”,“CC”)第三个 注意: 第三个查询将导致错误,因为年龄是整数,我们传递字符串。不连接三个任务序列容器内使用优先约束。让他们在并行执行。 第六步:执行和测试 按F5和测试应用程序。 第七步:启用事务 右键点击序列容器并选择属性在属性窗口中设置TransactionOption财产的价值“要求” 第八步:执行和测试 按F5和测试应用程序 注意:一定要从表中删除所有退出记录之前执行,这样你会得到一个明确的记录插入没有任何混乱。 实验室10 - For循环的容器 在这个实验中我们将学习如何限制变量的范围容器和如何执行循环 步骤1:准备数据库 我们将使用相同的数据库中创建以上实验室。确保空Customer表,这样没有任何混乱。 步骤2:板条箱新的集成服务项目 使用SQL Server数据工具创建新的SSIS项目。 步骤3:添加连接管理器 添加Ado.net连接管理器和连接到ContainerDemo数据库 步骤4:添加容器 在控制流中添加“For循环容器”。 第五步:创建变量 为了循环,我们需要做的第一件事是变量。创建一个名为计数器的变量在包级别。 步骤6:添加序列容器 再添加一个序列容器在相同的控制流。 第七步:检查当前的变量范围。 确保变量窗口是开放的。 点击序列容器。你会发现计数器变量的变量窗口。单击for循环的容器。计数器变量仍然是可用的 第八步:改变变量作用域 选择变量,变量窗口,单击变量移动按钮。 一个新的窗口将弹出“选择新范围”。选择的for循环容器添加到前面的步骤。 第九步:重新检查变量范围。 再次执行步骤7。 第九步:删除序列容器 选择序列容器和按下删除键。集装箱在这个演示的目的只是测试 第十步:配置容器For循环。 双击“For循环容器”。这将打开“For循环编辑器”窗口。集属性的值如图所示。 注意:现在已经不言自明了。循环将执行5次 步骤11:添加执行Sql任务并对其进行配置。 在循环容器中添加一个新的Execute Sql任务。按如下方式配置其属性。 ConnectionType到ADO.NET。连接到在上述步骤中创建的一个。设置SQLStatement为“插入客户值('A'+cast(@Index为varchar),@Index)” 在“执行Sql任务编辑器”窗口中,转到“参数映射”部分,将Sql参数@index映射到SSIS参数@Counter 单击Ok 步骤12:执行和测试 按F5执行包并测试输出 实验室11 -每个循环容器 在这个实验室中,我们将迭代一个目录中的CSV文件,并将其中的所有数据存储到Sql Sever中 步骤1:准备数据库 将使用相同的ContainerDemo数据库和Customer表。确保截断它。 步骤2:创建SSIS项目 使用SQL Server数据工具创建新的SSIS项目 步骤3:创建数据文件夹和数据文件 创建3个CSV文件和一些数据,并把它们放在一些文件夹。 步骤4:创建变量 创建一个名为“FilePath”的新变量 , 步骤5:添加并配置“for each loop container” 为每个循环容器添加控制流,双击容器打开“Foreach循环编辑器”,将左边部分的选择从常规更改为收集。将枚举器设置为“ForEach文件枚举器”,选择文件夹路径put”*。在文件的文本框改变选择从集合到变量映射。将变量设置为上面步骤中创建的变量,并将索引设置为0 单击Ok。 步骤6:创建数据流任务 对于数据传输来说,数据流任务是唯一的选择。从工具箱中取出“数据流任务”并将其添加到容器中。 步骤7:添加连接管理器 添加扁平化文件连接管理器并显式地将其指向目录(数据目录)中的一个文件 第7步:在数据流任务中配置源和目标。 双击“数据流任务”。它将带您到dataflow选项卡添加平面文件源,并双击它以打开平面文件源编辑器。 将连接管理器设置为在最后一步中创建的“平面文件连接”。 添加Ado。净的目的地 使用“数据流路径”双击Ado将平面文件源连接到此目标。网目的地顶开“Ado”。Net目标编辑器"设置连接管理器为" Ado。Net连接"在最后一步中创建。选择表为Customer。导航到mapping部分并确保映射是正确的。 注意:您可能会想“我们要对文件执行循环,然后为什么要将source配置为单个文件”。答案是放松! !我们还没做呢。我们将源文件连接到其中一个文件,因为通过这样做,我们了解到源文件结构和映射是可能的。 步骤7:建立动态连接 右键单击平面文件连接,进入属性,找到表达式属性,然后单击3点按钮。弹出“属性表达式编辑器”,选择属性为ConnectionManager,点击3点按钮设置表达式 “表达式构建器”窗口将弹出。从“变量和参数”部分中,取上一步中创建的FilePath变量,并将其拖到“表达式”部分。 单击Ok关闭“表达式构建器”。再次单击Ok关闭表达式属性编辑器窗口。 步骤8:执行并测试应用程序 按F5检查输出 实验室12 -在SSIS中的部署 在进入部署之前,让我们先了解在SSIS项目中部署了哪些元素。如果您查看您的SSIS项目结构,它看起来如下所示。 在顶部,我们有解决方案,在解决方案内部,我们有项目文件。此外,每个项目都有扩展名为DTSX的包文件,这些包的配置存储在project.params中。 要理解SSIS部署,我们需要从“什么”和“在哪里”的角度来思考。那么部署的各种方式是什么,我们可以在哪里部署它们。 我们先回答什么?部署SSIS项目有两种方式,第一项目级部署和第二包级部署。 在进行项目级部署时,可以一次性部署所有包。而在包级部署中,部署发生在DTSX文件级。因此,您需要部署单独的DTSX文件。 项目级部署是一种新的部署方式,是在SQL 2012中引入的,而包级部署则是旧的部署方式。到SQL 2008。在这个实验室中,我们将更多地关注项目级别的部署,而不是包级别的部署。 我们需要理解的第二件事是“我们可以在哪里部署这些包?”也就是说,托管这些p的不同方式是什么由于。有三个主要来源或托管,您可以部署:- 在SQL Server服务本身即SSISDB数据库中。在SSIS服务:- 在文件系统msdb 为了了解部署一步一步我们将做这是5步骤:- 创建一个简单的文件复制的项目复制文件从源到目的地。创建项目的设置。安装包安装。配置方案之前运行。最后运行方案。 所以让我们开始旅程。 步骤1:创建文件复制项目 让我们创建两个文件夹“Location1”和“Location2”如下所示的图,让我们创建一个简单的文本文件在“Location1”“SimpleText”文件。 现在我们想复制这个“SimpleText”从“Location1”文件夹文件“Location2”文件夹中。为了达到相同的我们将使用“文件系统任务”控制。所以创建一个简单的“FileCopy SSIS项目并添加一个包。dtsx”文件。您的项目结构应该看起来如以下图所示。 这个包拖拽文件系统任务的控制流的工具盒,把它放在控制流设计面板如以下图所示。 我们也需要提供源和目标文件需要复制。右键单击“文件系统任务”控制并单击编辑和提供“目的地”和“源”连接。在源连接我们将在目标指向location1、我们将指向location2文件夹。 运行这个项目,一次测试,如果fileis获得从“Location1”文件夹复制到“Location2”文件夹中。 这个项目我们有故意保持简单,这样我们才能集中精力部署更多的项目而不是SSIS。 步骤2:创建一个设置 在SQL Server 2012说在前一节中部署模型现在项目部署。所以做一个完整的构建通过点击构建重建。现在去项目文件夹,点击解决方案并单击“打开文件夹在windows资源管理器”。 bin /发展文件夹中你会发现一个完整的SSIS设置创建一个文件扩展名“ISPAC”。双击运行相同的。 第三步:安装设置 现在我们将在SQL Server SSISDB部署。所以连接到SQL Server实例并浏览到“集成服务目录”文件夹,右键单击“SSISDB”并单击创建文件夹。所以我们将创建一个文件夹“mypackage”,我们将在相同的部署包。 一旦运行ISPAC文件设置,它将启动一个向导。在向导中有两个重要的事情要提到一个是源,另一个是目的地。源的事情会被加载和我。e ISPAC文件和目的地的部署将会发生。 我们已经创建了一个文件夹“mypackage”所以选择和安装在相同的相同。 步骤4:配置方案 一旦安装包你应该看到你的项目“SSISDB mypackage”文件夹内。 扩大SSIS项目文件夹,浏览到包和右键单击相同的。现在你可以做三件事首先验证方案,配置和运行它。先配置,然后运行。 所以一旦你点击下面的屏幕配置提出了两个标签。第一个选项卡是为参数,我们将稍后讨论。现在第二个选项卡是很重要的。第二个选项卡连接经理,记住我们有两个文件连接一个目的地和其他来源。 如果您希望配置文件路径你可以点击“…”,设置一个不同的值。 第五步:运行方案 一旦我们完成了配置我们可以通过右击再次运行方案并执行。执行后你也可以看到一份报告你的成功与失败。 一些点记得之前我们总结部署:- 可以通过创建参数的参数化你的包使用参数选项卡,这些参数可以与你连接管理器属性的变量。这些值可以在执行方案时提供。 如果你想分享在项目级配置数据。像一些值是常见的所有软件包的服务器名称或一些常见文件夹等您可以创建环境变量。然后您可以附加包配置这些环境变量或变量。 在这个实验室里我们主要关注包部署,但如果您想使用旧的部署方式即包你总能把它如以下图所示。 以防在项目部署你想单独部署包同样可以通过右键单击项目文件夹并单击导入包如下所示。 结论 在本文中,我们特别集中控制流。在下一篇文章中,我们将更多的注意力放在数据流任务和调试等一般特征,部署等。 希望你喜欢读这篇文章。你的评论、投票和建议激励我们写更多这样的东西。 你也可以参考以下1小时MSBI youtube视频:——学习MSBI 4天。 在。net, c#, ASP中看到600多个FAQ问题和答案。NET, SQL, WCF, WPF, WWF, SharePoint,设计模式,UML等。 要获得有关WCF、MVC、商业智能、设计模式、WPF和UML等各种主题的技术培训,请联系SukeshMarla@Gmail.com或访问www.sukesh-marla.com 更多的像这样的东西请点击这里。订阅或跟随在twitter @SukeshMarla文章更新 点击这里更多MSBI一步一步的教程。 本文转载于:http://www.diyabc.com/frontweb/news2151.html