azure 如何在数据工厂复制活动中将数组从层次结构JSON过滤/Map到表格文件?

nqwrtyyt  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(89)
    • 背景**

我是Azure环境的新手,所以如果问题很简单的话,请告诉我。我调用了一个带有分页的REST API。数据有多个存储在层次结构中的数组。数组包含翻译成不同语言的相同值。所以理论上,如果我只需要数组中的一种语言,数据已经是表格格式了。但是,我在拷贝活动的Map部分中无法将数据过滤为正确的语言。

    • 样本数据**

下面是一个数据示例。我为表格格式添加了3个不同的"行"。数据中有3个不同的数组:
1.["阶段"]["本地化"]
1.['不合格原因']['本地化']
1.['标题']['本地化']
由于我在一家荷兰公司工作,我们只希望返回locale =='nl-NL'的值。

[
    {
        "id": "f2597aa9-45b3-4142-a343-b1ec27fbfcea",
        "email": "some@email.com",
        "firstName": "Name",
        "lastName": "Name",
        "middleName": null,
        "created": "2023-01-03T13:29:15.7452993Z",
        "status": 1,
        "stage": {
            "localization":[
                {
                    "locale": "da-DK",
                    "value": "Ansøgt"
                },
                {
                    "locale": "de-DE",
                    "value": "Beworben"
                },
                {
                    "locale": "en-GB",
                    "value": "Applied"
                },
                {
                    "locale": "nl-NL",
                    "value": "Gesolliciteerd"
                }
            ]
        },
        "disqualifyReason": {
            "localization":[
                {
                    "locale": "nl-NL",
                    "value": "Geen match"
                },
                {
                    "locale": "da-DK",
                    "value": "Ikke et match"
                },
                {
                    "locale": "de-DE",
                    "value": "Absage - Screening"
                },
                {
                    "locale": "en-GB",
                    "value": "Not a match"
                }
            ]
        },
        "source":{
            "media":{
                "id": "c0772eab-09dd-4c7c-86b5-ee9b65ed8398", 
                "title": {
                    "localization":[
                        {
                            "locale": "nl-NL",
                            "value": "Tegel voor URL"
                        }
                    ]
                }
            }
        }
    },
    {
        "id": "a72b856e-8000-4e51-b475-9e6af5cf9e19",
        "email": "some@email.com",
        "firstName": "Name",
        "lastName": "Name",
        "middleName": null,
        "created": "2023-01-03T13:29:15.7452993Z",
        "status": 1,
        "stage": {
            "localization":[
                {
                    "locale": "nl-NL",
                    "value": "Afwijzen op CV"
                }
            ]
        },
        "disqualifyReason": null,
        "source":{
            "media":{
                "id": "c0772eab-09dd-4c7c-86b5-ee9b65ed8398", 
                "title": {
                    "localization":[
                        {
                            "locale": "nl-NL",
                            "value": "Tegel voor URL"
                        }
                    ]
                }
            }
        }
    },
    {
        "id": "f3898ebd-d6d6-4d9e-979e-348fe79325dc",
        "email": "some@email.com",
        "firstName": "Name",
        "lastName": "Name",
        "middleName": null,
        "created": "2023-01-03T14:36:04.4517426Z",
        "status": 1,
        "stage": {
            "localization":[
                {
                    "locale": "nl-NL",
                    "value": "1e interview"
                },
                {
                    "locale": "da-DK",
                    "value": "1. samtale"
                },
                {
                    "locale": "en-GB",
                    "value": "1st Interview"
                },
                {
                    "locale": "nl-NL",
                    "value": "1. Interview"
                }
            ]
        },
        "disqualifyReason": null,
        "source":{
            "media":{
                "id": "c0772eab-09dd-4c7c-86b5-ee9b65ed8398", 
                "title": {
                    "localization":[
                        {
                            "locale": "nl-NL",
                            "value": "Tegel voor URL"
                        }
                    ]
                }
            }
        }
    }
]

"我尝试了什么"
很多google和microsoft learn页面。然而,我认为下面的动态函数可以在复制活动@filter($['stage']['localization']['locale'] == 'nl-NL')的Map部分工作,但它不能。我不能在复制活动管道中使用filter函数。我相信我可以将API调用保存到JSON文件中,然后使用数据流在数据流活动中过滤它,然后将其存储为表格格式。然而,拷贝活动中有没有直接过滤数据的方法?
非常感谢您的帮助!

zvokhttg

zvokhttg1#

在拷贝活动Map中,有一个动态内容选项。

但是AFAIK这将仅适用于筛选源中的特定列。但是在您的情况下,您正在尝试筛选使用复制活动可能无法筛选的记录。
我相信我可以将API调用保存到JSON文件中,然后使用数据流在数据流活动中将其过滤出来,然后将其存储为表格格式。
是的,使用数据流是解决方案。而且数据流也支持REST API源代码。您可以直接使用数据流并给予类似复制活动的分页

然后对您的条件使用筛选器转换。

您将在调试中获得所需的结果。

相关问题