繁体   English   中英

如何使用SSIS将XML文件自动导入到各种新表中

[英]How to automatically import XML file into various new tables using SSIS

我有一个非常大的XML文件(带有xsd文件),其中有许多不同的对象需要导入到SQL Server表中。 当我指对象时,我指的是最高级别的XML包装标签,例如产品,订单,位置等

我当前使用SSIS的方法是:

  1. 创建数据流任务
  2. 在数据流任务中设置新的XML源
  3. 将新的OLE DB目标拖到任务中
  4. 将XML输出链接到OLE DB目标的输入
  5. 打开“ OLE DB目标”任务,并要求它创建一个新表以供数据输入

我必须对XML文件中的所有对象重复步骤3-5,这可能会遇到数百个对象。 我无法手动执行此操作。

无论如何,是否可以让SSIS为SQL Server中的所有不同对象创建新表并将数据导入其中? 因此,它将自动创建dbo.Products,dbo.Locations,dbo.Customers并将正确的XML数据放入这些表中。

我看不到其他可行的方法。

无论如何,是否可以让SSIS为SQL Server中的所有不同对象创建新表并将数据导入其中?

否:(

这里确实有两个问题。 您还没有进入第二篇文章,而siss可能会阻止阅读一个非常大的xml文件。 XML源组件在读取文件时会将整个文件加载到内存中。

我可以想到以下两种选择:-使用XSLT转换-滚动自己的sax解析器并使用脚本组件源

对于XSLT方法,您可以将每个对象转换为一个平面文件,即仅将客户数据解析为csv格式,然后添加要在每个平面文件中读取的数据流。 缺点是sis会使用XSLT的早期版本,该版本还将整个文件加载到内存中,而不是流式传输。 但是,我已经看到这种方法在文件大小为0.5 GB的情况下效果很好。 另外,如果您还不熟悉XLST,则可能很难学习,但是在将数据转换为关系形式方面非常强大。

sax解析器方法将允许您流式传输文件并将所需的部分提取为关系形式。 在脚本组件中,您可以将不同的对象定向到不同的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM