将最新文件从S3复制到Azure Blob(使用Azure Factory V2)

问题描述 投票:1回答:2

我还是Azure数据工厂的新手,我正在尝试将每天转储到我的S3文件夹/存储桶中的文件移动到Azure blob。我已经在Data Factory中创建了数据集(用于源和接收器)和链接服务。

但是由于我的S3存储桶每天都会收到新文件,所以我想知道如何每天移动在S3中丢弃的最新文件(例如美国东部时间早上5点)。我在网上查看了大多数答案,如thisthisthisthis。但它们都没有解释如何找出哪个是S3中的最新文件(可能基于上次修改的日期/时间或匹配文件名模式,如'my_report_YYYYMMDD.csv.gz')并且仅将该文件复制到目的地blob。

提前感谢您的帮助/解答!

azure azure-storage azure-data-factory-2 azure-triggers
2个回答
1
投票

我的想法如下:

1.首先,当然,在日程安排触发器中配置您的管道执行。请参阅此link

2.使用支持Amazon S3 Connector的Get metadata activity来获取S3数据集中的文件。

enter image description here

获取最后修改的文件名等元数据。

enter image description here

3.将包含lastModified Time和文件名的这些元数据数组放入Web ActivityAzure Function Activity。在其余的api或函数方法中,您可以执行排序逻辑业务以获取最新的修改文件。

4.从Web Activity或Azure Function Activity获取fileName,然后将其复制到Azure Blob存储中。

另一个想法是使用Custom-Activity。您可以使用.net代码实现您的要求。


0
投票

(旁注:感谢上面的Jay Gong建议解决方案)

我找到了答案。它比我想象的要简单。有dynamic content/expression我们可以添加到S3数据集的'按上次修改过滤'字段。请参阅下面的屏幕截图,其中我展示了如何使用动态表达式选择不超过5小时的文件。关于这些表达式的更多信息可以阅读here

enter image description here

希望这是有帮助的。

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