gpt4 book ai didi

azure - 无法获取 azure 数据工厂中 cosmos db 查询的标量值

转载 作者:行者123 更新时间:2023-12-02 06:09:14 24 4
gpt4 key购买 nike

我正在尝试在 azure 数据工厂的查找事件中获取 cosmos db 中存在的所有记录的计数。我需要这个值来与其他值(value)事件输出进行比较。

我使用的查询是SELECT VALUE count(1) from c

当我在插入此查询后尝试预览数据时,出现错误消息

One or more errors occurred. Unable to cast object of type  
'Newtonsoft.Json.Linq.JValue' to type 'Newtonsoft.Json.Linq.JObject'

如下图所示: snapshot of my azure lookup activity settings

有人可以帮助我解决此错误吗?如果这是 azure 数据工厂的限制,我如何使用 azure 数据工厂内的其他方式获取 cosmos db 文档的所有行数?

最佳答案

我完全重现了您的问题。

enter image description here

我认为计数结果无法映射为正常的 JsonObject。作为解决方法,我认为您可以使用 Azure Function Activity(在 Azure Function 方法内,您可以使用 SDK 执行您想要的任何 sql)来输出您想要的结果: {"number":10}然后将Azure Function Activity与ADF中的其他事件绑定(bind)。

<小时/>

现在存在矛盾:

查询sql输出一个标量数组,而不是像jsonObject之类的其他东西,甚至是jsonstring。

enter image description here

但是,ADF 查找事件仅接受 JObject,而不接受 JValue。我不能在这里使用任何转换内置函数,因为查询 sql 无论如何都需要使用正确的语法生成。我已经向微软支持团队提交了一张票,但没有遇到这个限制。

enter image description here

我还尝试了select count(1) as num from c,它在cosmos db门户中工作。但还是有限制,因为sql跨分区。

enter image description here

所以,我在这里所能做的就是尝试解释问题的根本原因,但无法改变产品行为。

2个粗略的想法:

1.尝试使用无分区集合执行上述sql以产生json输出。

2.如果计数不大,请尝试从数据库中查询列并使用 ForEach Activity 循环结果。

关于azure - 无法获取 azure 数据工厂中 cosmos db 查询的标量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61149582/

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