【问题标题】:Creating multiple files for uploading to Snowflake创建多个文件以上传到雪花
【发布时间】:2021-09-11 14:29:46
【问题描述】:

目前,我公司使用 SSIS 和 BCP 将数据从 SQL Server 导出到 CSV 文件。但是,我们只能为每个 SQL 表创建一个文件(由于 BCP 的限制)。这些文件中的大多数都非常大。如果我是正确的,它们太大而无法在将它们加载到 Snowflake 时获得最佳性能。在他们的网站上,他们声明我们应该使用多个 gzip 文件以提供最佳性能。

我想知道其他人是如何做到这一点的?将 CSV 拆分为多个文件并压缩它们?有什么好的工具可以在从 SSIS 导出的过程中做到这一点?

【问题讨论】:

  • SSIS 生成的单个文件有多大?出于性能原因,建议使用较小的文件,但如果您要一次性加载大表,我建议您简单地尝试使用大文件,看看效果如何?
  • 嗨,西蒙,感谢您的回复。它是一个包含 1000 多个对象和一些表非常大的健康数据库,因为它们中有自 2015 年以来的记录。因此,一些 csv 的大小达到了 60gb 以上。这个数据库的问题在于,过滤增量并不容易。因此,如果运气不好,我们几乎每天都必须满载。
  • 请参阅stackoverflow.com/a/68718176/132438 以轻松将文件拆分为更小的文件。

标签: sql sql-server ssis snowflake-cloud-data-platform bcp


【解决方案1】:

我会保留使用 SSIS 导出大型 .csv 文件的当前进程,然后通过命令行运行 7zip 以在 SSIS 包内或通过 Powershell 为每个文本文件创建一个拆分 gzip 集。

-v 开关用于指定卷大小。

https://sevenzip.osdn.jp/chm/cmdline/switches/volume.htm

您可以在后面的块完成之前开始导入/上传已完成的块,以节省一些额外的时间,但我尚未对此进行测试。

【讨论】:

  • 您好埃里克,感谢您的回复。我担心这个设置会卡在所有 zip 文件都需要先上传才能复制表中的记录这一事实上。当 zip 文件集不完整时,无法解压缩文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-23
  • 1970-01-01
相关资源
最近更新 更多