使用 SSIS 从网站 (URL) 读取多个 CSV 文件?

Posted

技术标签:

【中文标题】使用 SSIS 从网站 (URL) 读取多个 CSV 文件?【英文标题】:Read multiple CSV files from website (URL) using SSIS? 【发布时间】:2020-11-17 13:52:20 【问题描述】:

我有一个 SQL Server 表,其中包含许多不同的 URL,每个 URL 都指向相同格式的特定 CSV 文件。无需凭据即可使用该 URL 下载其指向的 CSV 文件。

是否可以使用 SSIS 从该 URL 读取这些 CSV 文件?

我正在尝试将所有 CSV 数据读取到正确的 SQL Server 表中。

我尝试使用平面文件连接,但尝试循环时失败。也尝试了 HTTP 连接,但没有成功。

感谢您的帮助。

【问题讨论】:

使用 Transact-SQL 任务并将文件列表放入对象变量中。然后使用 For Each 循环容器迭代该对象变量。 我使用 Object 变量和 Execute SQL Task 使它工作,然后在循环中使用 For Each ADO Enumerator 下载文件。使用脚本任务下载文件(注意不能直接读取,需要下载csv的物理副本)这篇文章也很有帮助docs.microsoft.com/en-us/archive/blogs/benjones/… 【参考方案1】:

    设置一个名为 URLS 的对象变量

    执行映射到 URLS 的 SQL 任务

    Foreach(URL 上的 ADO 对象)

    设置名为 url 的字符串变量

    将 foreach 变量设置为 url

    在foreach中添加脚本任务

    将网址添加为已读

    添加此脚本

    System.Net.WebClient wc = new System.Net.WebClient();
    wc.DownloadFile(Dts.Variables["url"].Value, @"C:\[where you want to go].csv");
    

    添加数据流来处理下载的文件。

【讨论】:

以上是关于使用 SSIS 从网站 (URL) 读取多个 CSV 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在SSIS中将大型Excel文件拆分为多个小文件?

在 SSIS 中使用 C# 从 JSON API 读取

使用 SSIS 脚本任务将数据从多个 SQL 表导出到不同的平面文件

SSIS动态excel阅读

如何从ssis中的多个文件夹中删除旧的csv文件

从工作 SQL 表映射多个布局 - SSIS