gpt4 book ai didi

arrays - 应使用什么语法来读取 Azure 数据工厂/Synapse 中“复制数据”事件的“映射”选项卡上数组的最后一行?

转载 作者:行者123 更新时间:2023-12-03 03:37:02 26 4
gpt4 key购买 nike

我正在使用 Azure 数据工厂中的复制数据事件将数据从 API 复制到我们的数据湖,以用于警报和报告目的。 API 响应由多个带有键值对的复杂嵌套 JSON 数组组成。 API 每刻钟更新一次,数据在从堆栈中删除之前仅保留 2 天。 API 采用从旧到新的记录结构,因此数组中最新添加的内容将是数组中的最后一项,而不是第一项。

我的要求是仅复制 API 中的最新记录,而不是集合 - 因此是数组的第 192 个读数或第 191 项(数组从 0 开始)。由于解决方案的性质,有时 API 不会更新,因为收集数据并将数据发送到服务器的传感器可能无法访问。

当前的解决方案每 15 分钟触发一次,并尝试第 191 项的复制数据事件,然后是 190,然后是 189,依此类推。尝试 6 次后失败,因此记录丢失。

current pipeline structure

我已使用映射选项卡指定数组中的项目,如下所示(复制尝试 1 示例):

$['meta']['params']['sensors'][*]['name']
$['meta']['sensorReadings'][*]['readings'][191]['dateTime']
$['meta']['sensorReadings'][*]['readings'][191]['value']

我想知道是否可以在上面的代码中引用数组的最后一项,而不是显式引用数组编号?我知道我们可以使用 0 作为第一条记录,但我不明白如何引用最后一项。我已经使用“last”函数尝试了以下操作,但不确定如何放置它:

$['meta']['sensorReadings'][*]['readings'][last]['dateTime']
$['meta']['sensorReadings'][*]['readings']['last']['dateTime']
last['meta']['sensorReadings'][*]['readings']['dateTime']
$['meta']['sensorReadings'][*]['readings']last['dateTime']

Example of my API response

任何有关更好的方法的帮助或建议将不胜感激。

最佳答案

您可以通过 Web 事件调用您的 API 吗?如果是这样,则会将 API 结果拉入数据管道,然后对其应用 last 等 ADF 函数。

调用 UK Gov Bank Holidays API 的简单示例:

enter image description here

这将返回一个如下所示的结果集:

{
"england-and-wales": {
"division": "england-and-wales",
"events": [
{
"title": "New Year’s Day",
"date": "2017-01-02",
"notes": "Substitute day",
"bunting": true
},
{
"title": "Good Friday",
"date": "2017-04-14",
"notes": "",
"bunting": false
},
{
"title": "Easter Monday",
"date": "2017-04-17",
"notes": "",
"bunting": true
},
... etc

您现在可以将最后一个函数应用于 is,例如使用设置变量事件:

@string(last(activity('Web1').output['england-and-wales'].events))

得出 2023 年最后一个银行假期:

{
"name": "varWorking",
"value": "{\"title\":\"Boxing Day\",\"date\":\"2023-12-26\",\"notes\":\"\",\"bunting\":true}"
}

或者

@string(last(activity('Web1').output['england-and-wales'].events).date)

关于arrays - 应使用什么语法来读取 Azure 数据工厂/Synapse 中“复制数据”事件的“映射”选项卡上数组的最后一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72955422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com