ADF - 内置复制任务以根据变量创建文件夹
ADF - built-in copy task to create folders based on variables
我正在使用 Azure 数据工厂的内置复制任务(按每日计划设置)使用内置复制工具将数据复制到 Azure Data Lake Storage Gen2 中的容器中。对于我的目的地,我正在尝试使用日期变量为数据创建文件夹结构。在我生成的管道中,公式如下所示:
Dir1/Dir2/@{formatDateTime(pipeline().parameters.windowStart,'yyyy')}/@{formatDateTime(pipeline().parameters.windowStart,'MM')}/@{formatDateTime(pipeline().parameters.windowStart,'dd')}
不幸的是,这是一个错误:
Operation on target ForEach_h33 failed: Activity failed because an inner activity failed; Inner activity name: Copy_h33, Error: The function 'formatDateTime' expects its first parameter to be of type string. The provided value is of type 'Null'.
我创建的所有内容都是由该工具生成的,我按照该工具使用的文件夹路径是建议的:
Dir1/Dir2/{year}/{month}/{day}(然后我能够设置每个变量的格式 - 例如,yyyy、MM、dd,这表明该工具理解我的内容正在做。
我唯一能想到的是,容器中的文件夹结构仅包含 Dir1/Dir2/ - 我希望在复制任务运行时创建子目录。
我还要补充一点,如果我只使用目录 Dir1/Dir2/,一切都运行良好 - 所以问题出在我的变量上。
您的 built-in 复制任务没有任何问题。当它在预定的触发时间 运行ning 时,它会给出完美的结果。
但是如果你想运行手动触发,就会报上面的错误。
当你运行手动触发时你必须自己给windowStart
参数值。上面说的是值是null
.
将值设为 MM/DD/YYYY
。计划触发器在每天 运行 秒时自动采用此值。但是在手动触发中我们必须指定这个值。
然后点击确定。现在,你不会得到这样的错误,你可以创建 year/month/day 格式的文件夹。
我正在使用 Azure 数据工厂的内置复制任务(按每日计划设置)使用内置复制工具将数据复制到 Azure Data Lake Storage Gen2 中的容器中。对于我的目的地,我正在尝试使用日期变量为数据创建文件夹结构。在我生成的管道中,公式如下所示:
Dir1/Dir2/@{formatDateTime(pipeline().parameters.windowStart,'yyyy')}/@{formatDateTime(pipeline().parameters.windowStart,'MM')}/@{formatDateTime(pipeline().parameters.windowStart,'dd')}
不幸的是,这是一个错误:
Operation on target ForEach_h33 failed: Activity failed because an inner activity failed; Inner activity name: Copy_h33, Error: The function 'formatDateTime' expects its first parameter to be of type string. The provided value is of type 'Null'.
我创建的所有内容都是由该工具生成的,我按照该工具使用的文件夹路径是建议的:
Dir1/Dir2/{year}/{month}/{day}(然后我能够设置每个变量的格式 - 例如,yyyy、MM、dd,这表明该工具理解我的内容正在做。
我唯一能想到的是,容器中的文件夹结构仅包含 Dir1/Dir2/ - 我希望在复制任务运行时创建子目录。
我还要补充一点,如果我只使用目录 Dir1/Dir2/,一切都运行良好 - 所以问题出在我的变量上。
您的 built-in 复制任务没有任何问题。当它在预定的触发时间 运行ning 时,它会给出完美的结果。
但是如果你想运行手动触发,就会报上面的错误。
当你运行手动触发时你必须自己给windowStart
参数值。上面说的是值是null
.
将值设为 MM/DD/YYYY
。计划触发器在每天 运行 秒时自动采用此值。但是在手动触发中我们必须指定这个值。
然后点击确定。现在,你不会得到这样的错误,你可以创建 year/month/day 格式的文件夹。