我将文件保存到Data Factory V2中的Blob存储中,当我指定要保存到的位置时,我正在调用文件(例如)file1,并且它在blob中保存为file1,没问题。但是我可以使用动态内容功能将日期时间附加到文件名中吗,使其类似于file1_01-07-2019_14-30-00((1月7日14:30:00),以防万一其难以读取。另外,我可以将webhook活动的结果(文件名)输出到下一个活动(函数)吗?
谢谢。
答案 0 :(得分:0)
您可以添加数据集参数,例如WindowStartTime,其格式为2019-01-10T13:50:04.279Z。然后,您将在动态文件名中输入以下内容: @concat('file1_',formatDateTime(dataset()。WindowStartTime,'MM-dd-yyyy_hh-mm-ss'))。
要在复制活动中使用,还需要添加管道参数。
答案 1 :(得分:0)
设置复制活动并将blob数据集选择为接收器后,您需要为WindowStartTime输入一个值,这可以只是一个时间戳,例如1900-01-01T13:00:00Z或您可以在其中输入管道参数。
如果要设置时间表触发器,则具有参数可能会更有用,因为您可以在触发器运行时输入此WindowStartTime时间戳。为此,您可以使用@trigger()。scheduledTime作为触发参数WindowStartTime的值。 https://docs.microsoft.com/en-us/azure/data-factory/concepts-pipeline-execution-triggers#trigger-type-comparison
答案 2 :(得分:0)
如果不直接编辑复制管道JSON文件,我将无法正常工作(2018年底-可能不再需要)。您需要复制管道JSON中的动态代码以及在数据集中定义的用于设置文件名参数的设置。
在数据集中为文件夹路径和/或文件名定义“参数”(单击“ +新建”,并给它们提供您喜欢的任何名称),例如sourceFolderPath,sourceFileName。
然后在“连接”下的数据集中的“文件路径”定义中包括以下内容: @dataset()。sourceFolderPath和@dataset()。sourceFileName在'/'的任一侧 (请参见下面的屏幕截图)
在复制管道中,单击管道窗口右上角的“代码”,然后在要由动态文件名定义的“ blob”对象下查找以下代码-不包含“参数”代码将其添加到JSON并单击“完成”按钮-根据您在流程中引用的动态文件,“输入”,“输出”或同时需要这两个代码,以下是示例,其中输出包含日期文件夹路径和文件名中的参数(日期由Trigger参数设置):
"inputs": [
{
"referenceName": "tmpDataForImportParticipants",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "StgParticipants",
"type": "DatasetReference",
"parameters": {
"sourceFolderPath": {
"value": <derived value of folder path>,
"type": "Expression"
},
"sourceFileName": {
"value": <derived file name>,
"type": "Expression"
}
}
}
]
文件夹路径的派生值可能类似于以下内容-这导致指定blobContainer中的文件夹路径为yyyy / mm / dd:
“ blobContainer / @ {formatDateTime(pipeline()。parameters.windowStart,'yyyy')} / @ {formatDateTime(pipeline()。parameters.windowStart,'MM')} / @ {formatDateTime(pipeline()。 parameters.windowStart,'dd')}“
,或者可能是硬编码的,例如“ blobContainer / directoryPath”-在定义的开头或结尾不要包含“ /”
派生的文件名可能类似于以下内容:
“ @ concat(string(pipeline()。parameters .'_',formatDateTime(dataset()。WindowStartTime,'MM-dd-yyyy_hh-mm-ss'))>,'。txt')” >
您可以包含触发器设置的任何参数,例如通过包含pipeline()。parameters来获得ID值,帐户名等。