Azure数据工厂-将FTP递归复制到数据库

时间:2018-08-23 08:56:07

标签: azure csv ftp recursive-query azure-data-factory

我试图将递归放置在FTP文件夹中的csv文件复制到Azure中的SQL数据库。我还订阅了Azure数据工厂。有人可以帮助我实现这一目标的最简单方法吗?

我尝试过的

  1. 在Azure门户内部使用了复制实用程序。问题是,它要求我复制到数据库中定义的表中。是否可以仅读取csv文件并检测模式并将其直接放入表中?

  2. 试图使用.NET SDK。但是我没有看到直接在Azure中将ftp转换为sql数据库的示例。这些示例仅说明如何存储到Blob存储中。

2 个答案:

答案 0 :(得分:1)

如果数据库中的表已经存在,则可以使用ADF从FTP复制到Azure SQL。此处https://docs.microsoft.com/en-us/azure/data-factory/tutorial-copy-data-portal参考ADF文档。尽管这是从Azure Blob到Azure SQL的教程,但是您可以将FTP设置为源,并且其他步骤很简单。

但是ADF只能复制到现有表,如果该表以前不存在,则必须在复制之前编写一个sql脚本来创建表。您可以将脚本放在管道-copyactivity-sink-“预复制脚本”中。将在复制开始之前运行。

答案 1 :(得分:1)

  

它可以只读取csv文件并检测架构并将其放入吗?   直接进入表格?

基于azure数据工厂中的sql database dataset,需要tableName属性。因此,如果需要将csv数据传输到sql数据库中,则需要创建相关表,以便它们可以建立映射关系。

  

试图使用.NET SDK。但我没有看到ftp到sql的示例   直接在天蓝色的数据库。这些示例仅说明了如何存储到   Blob存储。

根据您的要求,建议您遵循两个步骤。

第1步:创建从ftpazure blob storage的复制活动。

第2步:从azure blob storagesql database创建另一个复制活动。

您可以将两个活动组合为一个流程。

希望它对您有帮助,如有任何问题,请告诉我。


更新答案:

您仍然需要将ftp中的csv文件复制到azure blob存储中。如果有2个目标表,只需在blob存储中创建两个容器,以便可以将文件分为特定的容器。

然后只需在Azure Blob存储数据集中配置容器名称。

enter image description here

它将循环容器中的所有文件。