【问题标题】:Set Variable of 'Object' type in ADF possible?可以在 ADF 中设置 \'Object\' 类型的变量吗?
【发布时间】:2022-08-16 19:21:44
【问题描述】:

我看不到在 Set Variable Activity 中创建 Object 类型变量的任何选项。的Azure Data Factory。只有被允许的类型似乎是StringBooleanArray。那么如何将我通过Lookup Activity 获得的SQL 表的数据分配给一个变量(我需要进一步处理)呢?是否有解决方法或者我在这里遗漏了什么?

  • 不要将其分配给变量。只需在下一个活动中使用点语法引用它。表达式编辑器将引导您完成,您通常需要最后的 .output 或类似的。
  • @wBob 很酷,我还尝试对查找活动的结果使用过滤器活动(从数据库表返回数据行)。我可以在这个对象上实际应用过滤器,还是只能在数组上应用它?我使用 \'@activity(\'GetTableData\').output\' 指定 \'Items\' 和 \'@equals(item().propertyID, 123)\' 作为过滤条件,但我得到\'Bad Request\' 错误。对此有任何想法吗?
  • \"GetTableData\' 是什么类型的活动?.output 通常是带有属性的 JSON 对象,因此您可能需要引用 @activity(\'GetTableData\').output.value 之类的属性。
  • 你真正想要达到的目标是什么?如果您事先知道需要过滤数据,我建议您在 WHERE 子句中这样做,以便数据库为您进行过滤。您需要过滤后的数据做什么?
  • @SchmitzIT - 这是一个很好的建议,假设涉及数据库,但许多数据操作不涉及数据库。

标签: azure-data-factory azure-data-factory-2 azure-data-factory-pipeline


【解决方案1】:

如前所述,数据工厂变量只能存储String, Boolean or Array 类型的值。

  • 一种可能的解决方法是将Object 类型转换为String 类型使用@细绳()功能。然后使用@json() 函数在您的变量上,在必要时将其转换回Object 类型并使用它。

这是上述指定解决方法的演示。

  • 使用@string(activity('Lookup1').output)转换输出查找活动String 输入并将其存储在json_as_string (细绳) 多变的。

  • 如果您现在想在任何地方使用此值,请说过滤活动,您可以简单地将@json(variables('json_as_string')).value 指定为项目.

  • 调试输出:

【讨论】:

    【解决方案2】:

    是的。adf 管道活动的输出是 JSON 的形式。查找活动的输出可以保存在变量中。您需要检查查找的输出并将其保存在变量中以供您使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 2021-12-25
      • 1970-01-01
      • 2010-09-19
      • 2010-09-07
      • 2011-01-08
      • 1970-01-01
      相关资源
      最近更新 更多