当前位置: 首页 > 知识库问答 >
问题:

Azure流处理通过数组向上插入到DocumentDB

司马昕
2023-03-14

我使用Azure Stream Analytics将Json复制到DocumentDB,并使用upsert用最新数据覆盖文档。这对于我的基础数据来说很好,但我希望能够附加列表数据,因为不幸的是,我一次只能发送一个列表项。

在下面的示例中,文档在id上匹配,并且所有项目都更新了,但我希望“myList”数组随着来自每个文档的“myList”数据(具有相同的id)不断增长。这可能吗?是否有其他方法使用Stream Analytics在文档中更新此列表?

如果可能的话,我宁愿避免使用滚动窗口,但这是一个可行的选择吗?

示例文档:

{
    "id": "1234",
    "otherData": "example",
    "myList": [{"listitem": 1}]
}

{
    "id": "1234",
    "otherData": "example 2",
    "myList": [{"listitem": 2}]
}

期望输出:

{
    "id": "1234",
    "otherData": "example 2",
    "myList": [{"listitem": 1}, {"listitem": 2}]
}

我当前的查询:

SELECT id, otherData, myList INTO [myoutput] FROM [myinput] 

共有1个答案

酆俊远
2023-03-14

目前数组尚未合并,这是 ASA 的 DocumentDB 输出的现有行为,本文中也提到了这一点。我怀疑使用翻滚的窗户会在这里有所帮助。

请注意,JSON文档中数组属性值的更改会导致整个数组被覆盖,即数组未合并。

您可以使用 获取数组函数 将作为数组 (myList) 传入的输入转换为字典。

您的查询可能类似于-

选择i.id,i.otherData,listItemFromArray进入我的输出从我的输入i交叉应用GetArrayElements(i.myList)作为listItemFromArray

干杯!

 类似资料:
  • 问题内容: 我正在尝试编写一个脚本,该脚本会将新的用户记录追加到ElasticSearch,如果该用户已经存在,则更新任何信息,如果新对象中存在更新的PaymentInfo对象,则将其添加到用户的Payments数组中。这是到目前为止我正在使用的简化版本: 这几乎可以满足我的要求,因为它可以正确地插入文档,或者如果用户具有相同的ID,则可以更新文档,但是如果该用户已经存在,则缺少将这个Paymen

  • 问题内容: 我正在使用插入命令通过PHP将大型数据集传递到MySQL表中,并且我想知道是否有可能通过查询而不是将每个值附加到一英里长的字符串的末尾一次插入大约1000行,然后执行它。我正在使用CodeIgniter框架,因此我也可以使用它的功能。 问题答案: 在MySQL中,用多行汇编一条语句要比每行一条语句快得多。 也就是说,听起来您可能会遇到PHP中的字符串处理问题,这实际上是算法问题,而不是

  • 我正在使用vertx的JDBC lib,我需要批量插入包含数组字段的值。 我试过: 我的输出: 在切换到准备好的报表之前,我的工作要求是: 我的数据库是Apache Phoenix,是Hbase的sql层。 知道怎么解决吗?

  • 问题内容: 我能够通过VLC命令行接收/查看UDP h264数据包(即VLC –network-caching 0 –demux h264 udp:// …) 我正计划通过OpenCV算法处理那些帧。但是,我似乎找不到找到将VLC帧发送到我的Python OpenCV脚本的方法。 是否可以在单独的脚本中通过Numpy传递要处理的VLC流输出? 之前,我曾尝试使用其VideoCapture函数直接将

  • 问题内容: 我如何创建一个CI批处理插入数组,就像 从我的正常数组是 问题答案: 尝试这个: 欲了解更多信息,请点击这里

  • 问题内容: 我在python中遇到以下问题。 我需要并行执行一些计算,这些计算的结果需要按顺序写入文件中。因此,我创建了一个函数,该函数接收和文件句柄,进行计算并将结果打印到文件中: 但是脚本运行后文件最终为空。我试图将worker()函数更改为: 并将文件名作为参数传递。然后它按我的预期工作。当我尝试按顺序执行相同的操作而不进行多处理时,它也可以正常工作。 为什么它在第一个版本中不起作用?我看不