我有以下问题 . 我需要从ADLS(Azure数据湖存储)源复制到接收器ADLS,但只能复制最新的文件 . 每小时,到达源.csv文件,此文件必须复制到接收器数据湖 . 例如:
event:Hour1 - file_01.csv到达源 . 任务:将file_01.csv复制到sink数据库 . event:Hour2 - file_02.csv到达源头 . 任务:将file_02.csv复制到sink数据湖 . 等等 .
无论如何都要创建一个基于事件的触发器(新文件到达源中)?这是我的第一个念头 .
另一种方法是创建一个由Azure Data湖分析运行的作业 . 在那里,我将提取系统日期和时间(我不知道如何做到这一点) . 选择最新文件,然后将该文件复制到接收器数据湖中 . 如何使用u-sql声明包含日期和时间的变量?如何使用u-sql将数据复制到数据湖?
简介:如何在数据湖之间创建增量/更新副本?
谢谢
2 回答
不幸的是,ADLS目前没有办法在文件到达时触发事件 . 话虽如此,我们正在努力提供这种支持,并且很快就会提供 .
要进行增量复制,您可以执行诸如将文件组织到包含时间信息的文件夹中的操作 . 然后使用Azure Data Factory等工具仅复制特定当前时间范围内的文件 .
谢谢,Azure Data Lake的Sachin Sheth项目经理 .
您可以使用
DateTime.Now
来获取作业的编译时间 . 您还可以提取文件的修改或创建时间 . 例如:我请商店团队成员回答有关文件触发器的问题 .