我将文件保存到Blob存储在数据工厂V2,当我指定保存到我调用文件(例如)文件1的位置和它的blob保存为文件1,没有问题。但是,我可以使用动态内容功能于日期追加到文件名,以便它像file1_01-07-2019_14-30-00?(1月7日14:30:00,以防万一它读起来拗口)。可替代地,可以予输出的结果网络挂接活动到下一个活动(函数)的(文件名)?
谢谢。
我不能让这没有直接编辑拷贝管道JSON文件工作(2018末 - 可能不再需要)。你需要拷贝管道JSON和设置在数据集中设置文件名参数定义的动态代码。
在数据集定义文件夹路径和/或文件名“参数”(点击“+新建”,并给他们你喜欢的任何名称)如sourceFolderPath,sourceFileName。
然后,在下“连接”的数据集包括在“文件路径”定义如下:@DataSet()sourceFolderPath和@DataSet()的“/”(见下文截图)的sourceFileName任一侧上。
在管道窗口的右上角拷贝管道点击“代码”,并查找下面的代码要通过动态文件名定义的“斑点”对象下 - 它的“参数”代码不包括其添加到的JSON并点击“完成”按钮 - 可能需要在“输入”,“输出”的代码或两者取决于你在你的流动所引用的动态文件 - 下面是其中输出包括在日期参数的示例文件夹路径和文件名(日期由触发参数设置):
"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"
}
}
}
]
文件夹路径的导出值可以是像下面这样 - 这导致YYYY / MM / DD的指定blobContainer内的文件夹路径:
“blobContainer / @ {FORMATDATETIME(管道()。parameters.windowStart, 'YYYY')} / {@ FORMATDATETIME(管道()。parameters.windowStart, 'MM')} / {@ FORMATDATETIME(管道()。parameters.windowStart , 'DD')}”
或它可以被硬编码例如“blobContainer /目录路径” - 不包括“/”在启动或定义的结束
导出的文件名可以是类似如下:
“@concat(串(管道()。参数.'_”,FORMATDATETIME(数据集()。WindowStartTime, 'MM-DD-yyyy_hh毫米-β'))>, 'TXT')”
您可以包括由触发例如设置任何参数一个ID值,通过包括管线()。参数帐户名称,等等。
您可以添加数据集参数,这样的WindowStartTime,其格式为2019-01-10T13:50:04.279Z。然后,你将有类似下面的动态文件名:@concat( 'file1_',FORMATDATETIME(数据集()WindowStartTime, 'MM-DD-yyyy_hh-MM-SS')。)。
要在副本活动中使用,你还需要增加一个管道参数。
一旦你建立了副本活动,并选择您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