web-dev-qa-db-fra.com

Alternative au group by pour cosmos db

Étant donné que cosmos db ne prend pas en charge le regroupement, quelle est une bonne alternative pour obtenir des fonctionnalités similaires:

Select sum(*) , groupterm from tble group by groupterm

Puis-je y parvenir efficacement dans une procédure stockée cosmos?

8
Slicc

Le regroupement par est désormais pris en charge dans l'API SQL Cosmos db. Vous aurez besoin du SDK version 3.3 ou supérieure

Azure Cosmos DB prend actuellement en charge GROUP BY dans .NET SDK 3.3 ou version ultérieure. La prise en charge d'autres SDK dans d'autres langues et du portail Azure n'est pas actuellement disponible mais est prévue.

https://docs.Microsoft.com/en-gb/Azure/cosmos-db/sql-query-group-by

7
Apurv Gupta

Comme Cosmos_DB déclare comme suit:

Capacité d'agrégation dans SQL limitée à COUNT, SUM, MIN, MAX, AVG. Aucune prise en charge de GROUP BY ou d'autres fonctionnalités d'agrégation trouvées dans les systèmes de base de données. Cependant, les procédures stockées peuvent être utilisées pour implémenter dans -la capacité d'agrégation de la base de données.

Puis-je y parvenir efficacement dans une procédure stockée cosmos?

Pour .NET et Node.js

Larry Maccherone a fourni un excellent package documentdb-lumenize qui prend en charge les agrégations (regroupement, tableau croisé dynamique et cube à N dimensions) et les transformations de séries temporelles en tant que procédures stockées dans DocumentDB.

De plus, pour Python et Scala, vous pouvez vous référer à Azure-cosmosdb-spark .

11
Bruce Chen

Enfin, Azure Cosmos DB prend actuellement en charge GROUP BY in .NET SDK 3.3 ou version ultérieure. La prise en charge d'autres SDK dans d'autres langues et du portail Azure n'est pas actuellement disponible mais est prévue.

<group_by_clause> ::= GROUP BY <scalar_expression_list>

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

enter image description here

2
Sajeetharan