【问题标题】:Fastest way to load flat file in ssis在 ssis 中加载平面文件的最快方法
【发布时间】:2012-06-19 20:09:38
【问题描述】:

我有一个需要加载到 SQL Server 中的平面文件。为此,我必须使用 SSIS。现在我想知道可以帮助我以最快的方式加载这些文件的事情:

  1. 我应该使用平面文件管理器还是脚本任务来加载平面文件? (因为在我的 question 之一中,我得到了一个答案,其中指出脚本任务加载速度更快
  2. 目标(ADO.NET 或 SQL Server)?
  3. 我可以对平面文件进行任何其他设置/最佳实践以更快地加载文件吗?

【问题讨论】:

  • 在我看来,这取决于最终游戏是什么。当我需要发送带有附加日志文件的通知电子邮件时,SSIS 对我来说是一个很棒的工具。您能否向我们提供有关您正在导入的数据类型的更多信息?尺寸?我经常使用平面文件连接管理器,几乎没有问题。这是你需要做的可重复的事情吗?
  • @Kris 我正在从这些源平面文件创建一个仓库,因此一些包将使用维度提要文件,它们的目标将是 charvarchar 。另一方面,事实提要将具有 numeric 数据,在这种情况下,我需要进行数据类型转换。所以,我可能会有混合情况。

标签: ssis bids


【解决方案1】:

这是 Microsoft 如何使用 SSIS 在 30 分钟内加载 1TB 的参考资料。

当您说脚本编写速度更快时,我感到很惊讶,因为微软使用平面文件源和 OLEDB 目标来完成同样的壮举。他们还通过将加载过程分解为更小的块和对目标表进行分区以及使用经过良好调整的硬件来优化加载。但是,如果我必须从 SSIS 加载大型数据集,我会使用他们在 SSIS 包中使用的技术。

(Microsoft) We Loaded 1TB in 30 Minutes with SSIS, and so can you

【讨论】:

    【解决方案2】:

    我认为,对于您想要完成的工作,SSIS 将是一个不错的选择。它允许更大的灵活性。至于使用平面文件管理器/脚本,脚本总是会给你更好的性能,但我使用 SSIS,因为它使事情更容易导航(或修复)。我敢肯定,许多顽固的 SQL 开发人员会告诉你编写脚本,但我发现任何一种方式都行得通。

    就目的地而言,我专门使用 SQL Server,所以我无法回答你的那部分问题。

    在我看来,最佳做法是尽可能简单。你做的事情越容易,你就会得到更好的性能。在 SSIS 工作的 3 年中,我总是尽力优化任何查询,然后将其放入 SSIS。

    听起来你只是对这些文件做一个简单的 ETL,如果是这样的话,我根据我的经验推荐 SSIS。加载完所有内容后,您可以针对 char、varchar 和 int 的不同情况修改数据类型。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多