![](/img/trans.png)
[英]How to import selective tables using SSIS based on custom (e.g.XML) file
[英]How to automatically import XML file into various new tables using SSIS
我有一个非常大的XML文件(带有xsd文件),其中有许多不同的对象需要导入到SQL Server表中。 当我指对象时,我指的是最高级别的XML包装标签,例如产品,订单,位置等
我当前使用SSIS的方法是:
我必须对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.