从不同格式的文件中将数据导入到sql server中
我有一个程序,它监视服务器上的一个文件夹。当新文件(平面文件)进来时,程序(C#)读取数据,批量插入表中。它工作正常。从不同格式的文件中将数据导入到sql server中
现在我们扩展系统。这意味着数据文件可以采用不同的格式(平面文件,csv,txt,excel ..)或不同的列(我们需要将它们映射到表格中的列)。
我的问题是:C#是这个的最佳选择吗?或者,SSIS是一个更好的选择?
感谢
这取决于你的背景。不同的格式不应该决定去SSIS。使用解决方案C#程序:您可以继续使用它,因为它之前运行稳定。易于部署,特定于您的域名,易于配置。 解决方案SSIS:配置更加复杂,要求开发人员对SSIS有深入的了解。管理费用要求超过C#程序。然而,它很容易看到(有图表让你更容易看到流程整合)。 从我的角度来看,如果整合过程不需要复杂的业务规则,那么您应该使用C#程序。否则,如果整合过程需要复杂的规则,SSIS更强大。希望这个帮助。
在C#应用程序中,我猜你正在使用SqlbulkCopy组件,并将其与SSIS相比并不那么强大。所以如果你的数据量变得很大,那么C#应用程序将变得更慢。
如果您熟悉SSIS,我的建议是使用SSIS。在SSIS中,您可以使用C#开发的端到端解决方案,即检查特定文件夹中的文件以将数据加载到数据库中。
我不一定会选择其中一个,但根据文件类型和处理量来选择。对于某些文件类型,它可能更容易与C#和其他SSIS更好地工作。
你的团队中有谁对SSIS很好?找到一个C#开发人员为你找工作要比找到了解SSIS的人容易得多。
这些需求/格式将来会如何更新?记住这一点也很重要。
我的确同意别人的看法,认为SSIS更强大,并为更复杂的转换提供支持,但问题是您真的需要这样吗?
我担心的一件事是:它需要继续观看新文件的文件夹。现在,它使用Windows服务,并正常工作。如果使用SSIS,我将不得不使用SQL代理来调用SSIS来做类似的事情吗? – urlreader 2013-04-23 14:37:54
SSIS提供了一个文件观看任务,与C#程序监视文件夹类似。你可以参考这里:http://www.sqlis.com/post/file-watcher-task.aspx – 2013-04-23 16:53:54