我有一个需要加载到 SQL Server 中的平面文件。为此,我必须使用 SSIS。现在我想知道可以帮助我以最快的方式加载这些文件的事情:
- 我应该使用平面文件管理器还是脚本任务来加载平面文件?(因为在我的一个问题中,我得到了一个答案,指出脚本任务加载速度更快)
- 目标(ADO.NET 或 SQL Server)?
- 平面文件的任何其他设置/最佳实践,我可以以更快的方式加载文件?
这是 Microsoft 如何使用 SSIS 在 30 分钟内加载 1TB 的参考资料。
当您说脚本编写速度更快时,我感到很惊讶,因为微软使用平面文件源和 OLEDB 目标来完成同样的壮举。他们还通过将加载过程分解为更小的块和对目标表进行分区以及使用经过良好调整的硬件来优化加载。但是,如果我必须从 SSIS 加载大型数据集,我会使用他们在 SSIS 包中使用的技术。
我认为对于您要完成的工作,SSIS 将是一个不错的选择。它允许更大的灵活性。至于使用平面文件管理器/脚本,脚本总是会给你更好的性能,但我使用 SSIS,因为它使事情更容易导航(或修复)。我敢肯定,许多顽固的 SQL 开发人员会告诉您编写脚本,但我发现任何一种方式都有效。
至于目的地,我专门使用 SQL Server,所以我不能回答你的那部分问题。
在我看来,最佳实践是尽可能简单。你做的事情越容易,你就会得到更好的性能。在 SSIS 工作的 3 年中,我总是尽我所能优化任何查询,然后将其放入 SSIS。
听起来您只是在这些文件上做一个简单的 ETL,如果是这种情况,我根据我的经验推荐 SSIS。加载完所有内容后,您可以针对 char、varchar 和 int 的不同情况修改数据类型。
希望这可以帮助!