如何在复制数据活动的源数据中包含 ADF 参数?

问题描述 投票:0回答:1

在 ADF 管道中,我有一个复制数据活动。 源是对 API 的调用,该 API 返回 JSON 数据块,其内容取决于调用中包含的参数。 目标是一个 Snowflake 表,其中包含一个名为 JSON 的变体列,该列将包含返回的数据。 所以我的映射看起来像:

{
    "type": "TabularTranslator",
    "mapComplexValuesToString": true,
    "mappings": [
        {
            "source": {"path": "$.data"},
            "sink": {"name": "JSON"}
        }
    ]
}

但是,某些 API 调用包含返回数据所依赖的键值(例如,参数调用包含部门 ID,返回的数据是该部门的员工)。 该键值不会在 JSON 块中返回。 因此,为了将依赖 JSON 正确连接到键值,该键值必须位于表中,如下所示:

CREATE TABLE TargetTable (key_value VARCHAR(25), json VARIANT);

我的问题:如何更改映射 TabularTranslator 代码以包含 key_value(这是传递到管道中的参数)以及 JSON 的插入?

azure azure-data-factory
1个回答
0
投票

要在复制过程中将参数添加到源,您可以使用复制活动源中的附加列选项。更改您的目标表并向其中添加所需的列。

创建附加列

key_value
,并通过动态内容表达式为其提供所需的参数,如下所示。

enter image description here

在映射中,单击导入模式,它会要求提供参数值。给出示例参数值中的任意值。在映射中,将目标中的

key_value
列映射到源中的附加列
key_value
。例如,我使用 SQL 数据库而不是雪花并使用
sql_variant
列。

enter image description here

运行管道并将所需的值传递给参数。对于演示,我已将一些随机字符串列从源 JSON 复制到变体列,您可以看到目标

key_value
列值从源参数复制。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.