在 SQL Server 中自动导入 CSV 文件

问题描述 投票:0回答:4

我目前正在使用 SSIS 定期将大量 CSV 文件导入我们的系统。这些导入过程是使用 SQL Server 代理来安排的 - 这应该有一个美好的结局。然而,我们从其中接收数据的供应商之一喜欢时不时地更改文件格式(感觉就像每月两次),并且在 SSIS 中实现这些更改是一种巨大的痛苦。

是否有一种不那么痛苦的方法将这些导入到 SQL Server 中?我的要求相当简单:

  1. 文件格式为 CSV,用逗号分隔,并用双引号限定文本。
  2. 文件名将指示我需要将这些导入到哪个表中
  3. 它需要是可以自动化的东西
  4. 文件格式的更改应该不会那么痛苦
  5. 如果确实出现问题,我需要能够知道它是什么 - 某种日志记录

非常感谢!

sql-server csv ssis etl
4个回答

0
投票

您可以考虑使用 BIML,它在运行时根据元数据动态生成包。


0
投票

我尝试过Java解决方案“dbis”。请检查以下。

https://dbisweb.wordpress.com/

它有 xml 文件中的迁移信息。您可以在任何文本编辑器中对其进行编辑。 但它需要静态表名。


0
投票

我理解你的痛苦。也去过那里。

看起来您需要在运行时动态更改列。但首先,变化必须有一个模式。或者这些变化是可选数据还是什么?您仍然可以将 SSIS 与脚本组件一起使用,以在运行时动态映射列。或者,如果这些更改是可选信息,您可以将其设为 JSON 文档并将其存储在 SQL Server 中(如果这对您的要求有意义)。

或者,将 CSV 转储到暂存表以进行临时存储。然后,让脚本或存储过程动态处理更改。您还可以将日志存储在 SQL Server 或其他格式中。

由于您没有具体详细提及这些变化,所以我无法向您提供更多信息。

或者,如果您愿意,也可以使用其他工具。您可以使用开源工具 Apache Nifi。或者像 Skyvia 这样的云集成平台。它有一个用于 CSV 文件的导入/导出工具,并具有自动列映射功能。它可以使用代理集成到本地 SQL Server。您可以在此处查看一些提示,将 CSV 文件集成到 SQL Server。

© www.soinside.com 2019 - 2024. All rights reserved.