Ssis 使用SSI加载XML

Ssis 使用SSI加载XML,ssis,Ssis,我对SQLServer2005有一个ETL类型的要求。我是SSIS新手,但我相信它将是这项工作的合适工具 该项目与忠诚卡奖励系统有关。计划中的每个月合作伙伴都会发送一个或多个XML文件,详细说明上个月的合格交易。每个XML文件最多可以包含10000条记录。XML的格式非常简单,4个“header”元素,然后是包含记录元素的重复序列。关键记录要素是卡号、合作伙伴id和积分 该流程目前正在生产中运行,但它是作为一个c#应用程序开发的,它分别为每条记录运行一个insert。它非常慢,处理一个10000

我对SQLServer2005有一个ETL类型的要求。我是SSIS新手,但我相信它将是这项工作的合适工具

该项目与忠诚卡奖励系统有关。计划中的每个月合作伙伴都会发送一个或多个XML文件,详细说明上个月的合格交易。每个XML文件最多可以包含10000条记录。XML的格式非常简单,4个“header”元素,然后是包含记录元素的重复序列。关键记录要素是卡号、合作伙伴id和积分

该流程目前正在生产中运行,但它是作为一个c#应用程序开发的,它分别为每条记录运行一个insert。它非常慢,处理一个10000条记录文件需要8个多小时。通过使用SSIS,我希望提高性能和可维护性

我需要做的是:

  • 收集文件
  • 根据XSD进行验证
  • 记录上的业务规则验证。对于每个记录,我需要确保提供了有效的合作伙伴id和卡号。为此,我需要对partner表和card表执行查找。任何“坏”记录都应该删除并写入响应XML文件。这与请求XML的格式相同,只是添加了错误代码元素。“良好”记录需要导入到单个表中
  • 我有第1点和第2点工作正常。我还创建了一个XSLT,用于将XML转换为可插入的平面格式。对于第3点,我已经开始在控制流图面中使用ForEach循环容器控件来循环每个XML节点和SQL查找任务。但是,这需要为每次查找调用数据库,并调用文件系统为“坏”和“好”记录写出XML文件

    我相信通过在数据流表面上使用查找控件可以获得更好的性能。不幸的是,我没有使用数据流表面的经验

    有人对解决这个问题的最佳方法有什么建议吗?我在网上搜索了SSIS包的示例,这些包的功能与我需要的类似,但没有找到—有吗

    谢谢


    Rob。

    SSIS经常用于加载数据仓库,因此您的需求并不新鲜。看看,开始学习教程等

    对于每个in-control流,它用于循环遍历目录中的文件、数据库中的表等。数据流是记录从源(xml文件)到目标(表)的转换的地方

    您确实需要在它的许多风格中进行查找。谷歌“ssis加载数据仓库维度”;这将最终向您展示几种有效使用查找转换的技术

    为了扁平化XML(如果足够简单的话),我只需要在数据流中使用XML源,XML任务用于更重的内容