如果不直接编辑复制管道 JSON 文件,我无法让它工作(2018 年末 - 可能不再需要)。您需要复制管道 JSON 中的动态代码和数据集中定义的设置来设置文件名参数。
在数据集中为文件夹路径和/或文件名定义“参数”(单击“+新建”并为它们提供您喜欢的任何名称),例如源文件夹路径,源文件名。
然后在“连接”下的数据集中,在“文件路径”定义中包含以下内容:
@dataset().sourceFolderPath 和 @dataset().sourceFileName '/' 的任一侧
(见下面的截图)
在复制管道中,单击管道窗口右上角的“代码”,然后在您希望由动态文件名定义的“blob”对象下查找以下代码 - 它不包含“参数”代码将其添加到 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"
}
}
}
]
文件夹路径的派生值可能类似于以下内容 - 这会导致指定 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 值、帐户名称等。
Dynamic Dataset Parameters example
Dynamic Dataset Connection example