我正在寻找一种使用SSIS在数据库中加载XML数据的替代方法。
为什么选择?因为我们在SSIS和XML方面遇到了一些非常糟糕的经历:
当XML与XSD不匹配时,SSIS不会引发错误(XML中存在意外字段)
SSIS无法加载基本XML,因为结构不适合他(我们已经通过动态编辑XML来改变结构)
性能低下
(非常)使用具有父子节点的复杂XML进行繁琐的开发
当循环使用多个XML时,SSIS会跳过其中的一些,而不会引发任何错误,就好像它们是不可见的一样。如果你再次运行治疗,它就会起作用。
所以我想通过使用另一种方法来使用SSIS加载XML来避免这些问题。 为什么还在使用SSIS?因为它有一些好处:
集中管理和监控
特定的审计流程,允许跟踪XML,Txt文件,表格等的加载。
熟悉SSIS的开发人员
所以我正在寻找如何做一些接近的事情:
循环在多个XML的文件夹上 - > SSIS组件
对于每个XML,在审计表中插入一个值,将其标记为“处理中”
使用XSD验证XML,如果不匹配则引发错误 - >
如果出现错误,请将XML移到拒绝文件夹中,或将审核表中的XML标记为“错误” - >
如果没有错误,将XML解析为DOM(或等效的) - >
通过保持父节点和子节点之间的链接,在数据库表中插入XML的内容。所以这意味着我需要能够动态检索来自SQLServer数据库的一些序列 - >
更新审核表以将XML设置为“已加载” - >
将XML移动到另一个文件夹
如果没有SSIS,我会使用java程序或python,但我想保留SSIS至少作为容器。
非常感谢