Azure流处理使用数组向上插入DocumentDB

Azure流处理使用数组向上插入DocumentDB,azure,azure-cosmosdb,azure-stream-analytics,Azure,Azure Cosmosdb,Azure Stream Analytics,我正在使用Azure Stream Analytics将Json复制到DocumentDB,并使用upsert用最新数据覆盖文档。这对于我的基础数据来说是非常好的,但是我希望能够附加列表数据,因为不幸的是,我一次只能发送一个列表项 在下面的示例中,文档在id上匹配,并且所有项目都会更新,但我希望“myList”数组随着每个文档(具有相同id)中的“myList”数据不断增长。这可能吗?是否有其他方法使用流分析来更新文档中的此列表 如果可能的话,我宁愿避免使用翻滚窗口,但这是一个可行的选择吗 样本

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

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

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

样本文件:

{
    "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] 

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

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

您可以使用GetArrayElements将作为数组(myList)的输入转换为字典

您的查询可能类似于--

选择i.id、i.otherData、listItemFromArray
投入产出
从myinput i
交叉应用GetArrayElements(i.myList)作为listItemFromArray


干杯

谢谢,我真的需要聚合而不是拆分数组。我可以将列表项对象作为单个字段(而不是数组中的一个项目)发送,但我仍然需要能够以某种方式将当前id的所有列表项分组,即使它们一次发送一个。为什么要使用流分析?您简单的
SELECT*
类型查询并没有真正利用流分析的真正威力。我不知道这是否是做这项工作的错误工具。在数据流分析之前,数据从哪里来?我还在查询的其他地方对最后一个小时的数据进行聚合,这只是我问题的相关部分。