我正在尝试将带有动态内容的文本作为参数传递到管道中(执行管道活动)。
作为一个超级简单的示例,我希望管道的输入是时间戳 utcnow()。这是我的结果:
我注意到:
如果我将 @utcnow() 放入设置变量活动中并将执行管道参数设置为该变量,则它可以工作。
如果我将 @utcnow() (或 @{utcnow()}) 放在主参数中并将执行管道参数设置为该参数,则它不起作用。我得到了字符串“utcnow()”作为结果。
我在这里缺少什么吗?我确实觉得我以前已经成功地做到了这一点。
我正在尝试在 Azure 数据工厂复制活动中使用 XSD 验证(以 XML 作为源)。我有一个外部 XSD 文件。我还试图了解如何在 Azure 数据工厂中使用它。在复制活动中,验证类型部分下有两个选项 XSD 和 DTD。但是,它没有任何方法将任何外部文件指定为 XSD。文档对此也没有明确说明。(https://learn.microsoft.com/en-us/azure/data-factory/format-xml)。官方文档是这样说的:
XML schema validation:
You can choose to not validate schema, or validate schema using XSD or DTD.
When using XSD or DTD to validate XML files, the XSD/DTD must be referred inside the XML
files through relative path
Run Code Online (Sandbox Code Playgroud)
我对这里的第二点感到困惑。
“XML 必须在 XML 文件内引用”是什么意思?
我需要一些从 C# 代码调用 ADF(Azure 数据工厂)作业的想法。如果您可以分享一些实现此功能的示例,那将会非常有帮助。
感谢您查看我的帖子。
我在Azure数据工厂的数据流中有过滤器,我需要为以下SQL逻辑(Where语句)编写表达式:
Where
ID NOT IN (Select PID from Table1 where ptype_c in (100, 2000))
Run Code Online (Sandbox Code Playgroud) 我想在 ADF 中创建一个管道,检查数据的格式是否正确。我想检查列数、文件大小等。如果不满足这些条件,我想发送电子邮件。这是我的管道

我在管道中编写了第一个条件,一切正常。
@not(equals(activity('Get Metadata1').output.size,0))
Run Code Online (Sandbox Code Playgroud)
然而,当我想添加下一个条件时。所以我的整个情况是这样的。
@not(equals(activity('Get Metadata1').output.size,0)) and equals(activity('Get Metadata1').output.columnCount,5)
Run Code Online (Sandbox Code Playgroud)
我开始收到此错误消息。
'not' 是原语,不支持嵌套属性
您能让我知道如何解决这个问题吗?
我需要对本地数据源中的文件运行复制活动。我需要检查文件大小,如果大小大于 0,则复制它们。如果文件大小为 0,我将发送通知,以便管理员检查源。
问题是,在“获取元数据”活动中,字段列表中的参数不包括大小。此外,验证活动也不查找大小属性。有什么建议吗?同样,这些文件位于本地。
我在“获取元数据”活动之后添加了“If 条件”并使用了表达式:
@greaterOrEquals(activity('Get-metadata-source').output.size,0)
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
无法评估表达式“greaterOrEquals(activity('Get-metadata-source').output.size,0)”,因为属性“size”不存在,可用属性为“childItems、 effectiveIntegrationRuntime、executionDuration、durationInQueue、billingReference” 。
谢谢你!
我正在尝试将 blob 存储中的不同 csv 文件复制到自己的 sql 表中(我想自动创建这些表)。我见过很多问题,但没有看到任何答案。
目前我有一个 getmetadata 函数,它可以获取子项列表以获取文件名和 foreach 循环,但从那里我不知道如何将它们发送到每个文件的不同表。
我需要一个数据工厂来:
blob 容器中只有一个 csv 文件,该文件包含五行。
到目前为止,我有以下行动:
在 for-each 操作中,我有一个复制操作。我确实给了它一个动态数据集的源,该数据集的文件名设置为 @Item().name 的参数。然而,结果有 5 行被插入到目标表中,而我原本期望只有 1 行。
for-each 循环仅执行一次,但我不知道使用保存文件名和时间戳的变量的数据源?
我有一个 ADF 管道,我正在尝试查询其故障日志。我需要根据我在管道运行中使用的参数来分析日志。我的示例查询如下:
ADFPipelineRun
| project JobId, PLName, JobStatus, PL_param, Status
| where PLName == "org_daily_data_load"
| where Status == "Failed"
| where PL_param contains 'org_erp_sap'
Run Code Online (Sandbox Code Playgroud)
这有效。但我需要分析各种参数的结果。但参数相似但并不总是相同。它们因日期和时间而异,如下所示:
参数:
org_erp_sap_20201104_063418
ABC_ENV_D_20210329_174033
123_xyz_abc_20210801_101923
org_erp_sap_20210504_143418
123_xyz_abc_20210401_121923
Run Code Online (Sandbox Code Playgroud)
正如您在上面看到的,日期不同,但参数中有一个共同的字符串部分。如果我想检查这些参数的日志,我必须手动更改where PL_param contains每个查询的子句中的参数,如下所示:
ADFPipelineRun
| project JobId, PLName, JobStatus, PL_param, Status
| where PLName == "org_daily_data_load"
| where Status == "Failed"
| where PL_param contains 'org_erp_sap'
ADFPipelineRun
| project JobId, PLName, JobStatus, PL_param, Status
| where PLName == "org_daily_data_load"
| where Status == "Failed"
| …Run Code Online (Sandbox Code Playgroud) azure azure-data-factory azure-log-analytics kql azure-data-explorer