标签: azure-data-factory

ADF:参数中的动态内容

我正在尝试将带有动态内容的文本作为参数传递到管道中(执行管道活动)。

作为一个超级简单的示例,我希望管道的输入是时间戳 utcnow()。这是我的结果:

我注意到:
如果我将 @utcnow() 放入设置变量活动中并将执行管道参数设置为该变量,则它可以工作。

如果我将 @utcnow() (或 @{utcnow()}) 放在主参数中并将执行管道参数设置为该参数,则它不起作用。我得到了字符串“utcnow()”作为结果。

我在这里缺少什么吗?我确实觉得我以前已经成功地做到了这一点。

azure-data-factory

1
推荐指数
1
解决办法
7524
查看次数

Azure 数据工厂中的 XML 验证

我正在尝试在 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 文件内引用”是什么意思?

xml xsd azure azure-data-factory

1
推荐指数
1
解决办法
2337
查看次数

我们可以使用全局参数来创建 ADLS/DataBricks 链接服务吗

我开始使用 azure 数据工厂,并在尝试为 ADLS 创建链接服务时,出现一些连接参数字段,如下所示。 adls 链接服务的参数

我已将参数值作为 ADF 中的全局参数提供 在此输入图像描述

我尝试在 ADLS 链接服务提供的列中提供全局参数名称,但无法获取数据。并出现如下错误。 在此输入图像描述

如何从 ADLS 链接服务创建的全局参数中获取参数值?有什么办法可以做到吗?或者我们需要在创建链接服务时手动输入详细信息吗?

我找到了 SQL 链接服务的解决方案,其中变量存储在数据库中并在创建 SQL 链接服务时使用它。任何类似的方法都可用于创建 ADLS 链接服务。

任何线索表示赞赏!

azure azure-data-factory

1
推荐指数
1
解决办法
6323
查看次数

如何从 C# 代码调用 Azure 数据工厂管道?

我需要一些从 C# 代码调用 ADF(Azure 数据工厂)作业的想法。如果您可以分享一些实现此功能的示例,那将会非常有帮助。

感谢您查看我的帖子。

c# azure azure-data-factory

1
推荐指数
1
解决办法
6029
查看次数

如何在Azure数据流中编写过滤器表达式?

我在Azure数据工厂的数据流中有过滤器,我需要为以下SQL逻辑(Where语句)编写表达式:

Where 
ID NOT IN (Select PID from Table1 where ptype_c in (100, 2000))
Run Code Online (Sandbox Code Playgroud)

azure azure-data-factory

1
推荐指数
1
解决办法
3284
查看次数

Azure 数据工厂 - 如果有多个条件

我想在 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' 是原语,不支持嵌套属性

您能让我知道如何解决这个问题吗?

azure azure-data-factory

1
推荐指数
1
解决办法
2万
查看次数

Azure 数据工厂 V2 检查复制活动的文件大小

我需要对本地数据源中的文件运行复制活动。我需要检查文件大小,如果大小大于 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” 。

谢谢你!

azure-data-factory

1
推荐指数
1
解决办法
7843
查看次数

如何使用数据工厂将多个 csv 文件从 blob 批量复制到多个 SQL 数据库表

我正在尝试将 blob 存储中的不同 csv 文件复制到自己的 sql 表中(我想自动创建这些表)。我见过很多问题,但没有看到任何答案。

目前我有一个 getmetadata 函数,它可以获取子项列表以获取文件名和 foreach 循环,但从那里我不知道如何将它们发送到每个文件的不同表。

azure azure-data-factory azure-blob-storage

1
推荐指数
1
解决办法
2476
查看次数

Azure 数据工厂 - 为找到的每个文件插入 Sql 行

我需要一个数据工厂来:

  • 检查 Azure blob 容器中的 csv 文件
  • 对于每个 csv 文件
    • 将一行插入 Azure Sql 表中,将文件名作为列值

blob 容器中只有一个 csv 文件,该文件包含五行。

到目前为止,我有以下行动:

顶层

在 for-each 操作中,我有一个复制操作。我确实给了它一个动态数据集的源,该数据集的文件名设置为 @Item().name 的参数。然而,结果有 5 行被插入到目标表中,而我原本期望只有 1 行。

for-each 循环仅执行一次,但我不知道使用保存文件名和时间戳的变量的数据源?

azure-data-factory

1
推荐指数
1
解决办法
4804
查看次数

如何在 Azure Log Analytics 中使用“包含”查询多个相似的字符串值?

我有一个 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

1
推荐指数
1
解决办法
1万
查看次数