替换为cosmos db的分组

时间:2017-07-23 21:37:31

标签: azure-cosmosdb

鉴于cosmos db不支持group by,有什么是实现类似功能的好方法:

>>> dct = MyDict()
>>> dct[Obj('item1')] = 1
>>> dct[Obj('item2')] = 2
>>> dct
{'item1': 1, 'item2': 2}    
>>> dct['item1']
1
>>> dct[Obj('item1')]
1

我可以在宇宙存储过程中有效地实现这一点吗?

3 个答案:

答案 0 :(得分:9)

Cosmos_DB所述:

  

SQL中的聚合功能仅限于COUNT,SUM,MIN,MAX,AVG功能。不支持GROUP BY或数据库系统中的其他聚合功能。但是,存储过程可用于实现数据库内聚合功能。

  

我可以在宇宙存储过程中有效地实现这一点吗?

适用于.NET和Node.js

Larry Maccherone提供了一个很棒的包documentdb-lumenize,它支持聚合(分组,数据透视表和N维立方体)和时间序列转换作为DocumentDB中的存储过程。

此外,对于Python和Scala,您可以参考azure-cosmosdb-spark

答案 1 :(得分:6)

Cosmos db SQL API现在支持

分组依据。您将需要SDK版本3.3或更高版本

  

Azure Cosmos DB当前在.NET SDK 3.3或更高版本中支持GROUP BY。   目前不支持其他语言的SDK和Azure门户   可用,但已计划。

https://docs.microsoft.com/en-gb/azure/cosmos-db/sql-query-group-by

答案 2 :(得分:2)

最后,Azure Cosmos DB当前支持GROUP BY in .NET SDK 3.3或更高版本。目前尚不支持其他语言的SDK和Azure门户。

<group_by_clause> ::= GROUP BY <scalar_expression_list>

<scalar_expression_list> ::=
          <scalar_expression>
        | <scalar_expression_list>, <scalar_expression>

enter image description here