Azure数据工厂“;“扁平化层次结构”;

Azure数据工厂“;“扁平化层次结构”;,azure,azure-data-factory,Azure,Azure Data Factory,我希望有人也经历过同样的过程,能帮我看看下面的场景是否可行 我目前构建了一个从S3存储桶复制的管道。该存储桶包含大量文件夹。Azure Data factory是否有办法在从S3存储桶复制数据时忽略文件夹,只复制文件本身?我已经读到复制活动具有“扁平层次结构”,但我看到的最大限制是所有文件都被重命名,我永远无法确定这些文件是否都包含在这些文件夹中,因为它提到它仅在“目标文件夹的第一级”中执行此操作 另一个问题是S3 bucket有嵌套的文件夹(例如:“domain/yyy/mm/dd/file”

我希望有人也经历过同样的过程,能帮我看看下面的场景是否可行

我目前构建了一个从S3存储桶复制的管道。该存储桶包含大量文件夹。Azure Data factory是否有办法在从S3存储桶复制数据时忽略文件夹,只复制文件本身?我已经读到复制活动具有“扁平层次结构”,但我看到的最大限制是所有文件都被重命名,我永远无法确定这些文件是否都包含在这些文件夹中,因为它提到它仅在“目标文件夹的第一级”中执行此操作

另一个问题是S3 bucket有嵌套的文件夹(例如:“domain/yyy/mm/dd/file”),有些文件夹包含数据,有些不包含数据。唯一的优点是所有这些文件都包含相同的模式

这条管道的最终结果如下:

1) 从S3 bucket复制文件,而不复制文件夹结构 2) 将文件加载到Azure数据库中


如果有人使用Azure Data Factory或其他工具做过类似的事情,我将非常感谢您的见解。

vlado101,首先,我必须说,您在问题中提到的
“扁平层次结构”
是用于,而不是源:

因为您的目标是SQL DB,所以我认为这种复制行为与您的需求无关。根据我的测试(blob存储,不是aws s3,很抱歉,因为我没有asw服务):

子文件夹中有2个json文件:

我已配置源数据集:

请确保选择为true(指示是从子文件夹递归读取数据,还是仅从指定文件夹递归读取数据。请注意,当recursive设置为true且接收器是基于文件的存储时,不会在接收器上复制或创建空文件夹或子文件夹),并按如下所示预览源数据

执行复制活动,子文件夹文件中的所有“我的数据”都将传输到目标sql db表中:


当然,此测试基于blob存储,而不是s3存储桶。我相信它们是相似的,你可以测试一下。如果有任何问题,请让我知道。

嗨,杰,谢谢,这对我很有用。S3和Azure blob存储遵循相同的逻辑,因此我能够获得文件列表。现在唯一悬而未决的问题是,在S3中,嵌套文件夹结构具有创建这些文件夹所需的虚拟文件。所以现在我有大约3/4的文件是空文件,所以我不确定它们被复制到Azure SQL DB中会受到什么影响。另一件有点烦人的事情是扁平层次结构也会重命名文件,我不知道他们为什么会这样做。如果您有任何见解,他们将不胜感激。您是否尝试过在二进制复制期间使用动态内容保留文件名?我只是想知道我是否应该花时间去弄清楚这是否可能