Azure Cosmos DB
Have feedback for Azure Cosmos DB product? Submit your idea here or upvote other ideas. All feedback is monitored and reviewed by the Azure Cosmos DB team.
This site is for feature suggestions only. For technical questions or issues, please submit them to StackOverflow,where we and the community can better help you.
Please use the following categories when submitting your idea.
Gremlin API: Graph features and capabilities using Gremlin API.
MongoDB API: Features and capabilities using MongoDB API.
Table API: Features and capabilities using Table API.
Etcd API: Features related to using etcd as a configuration store for Kubernetes.
Built-in Apache Spark: Features related to built-in Apache Spark in Azure Cosmos DB.
Built-in Notebooks: Features related to built-in Notebooks in Azure Cosmos DB.
SDK: Features related to Azure Cosmos DB SDKs for SQL API.
Change Feed: Features related to Change Feed.
Management: All management features, backup/restore,monitoring, ARM, PowerShell and CLI.
Portal: All features for Azure Portal and Cosmos DB Explorer.
Emulator: Features related to the Azure Cosmos Emulator.
Other: Features not related to any other category.
-
[DocumentDB] Allow Paging (skip/take)
Allowing paging would be huge. Btw, Thank You for rolling out this feature at all! It looks wonderful! Can't wait to try it! However, I won't be able to use it for actual work projects until it supports paging and sorting.
3,845 votesReopening this user voice item as our support for Skip/Take (Offset/Limit) was only limited to single partition queries.
Update.
The newly released .NET SDK v3 now includes support for x-partition queries using Offset/Limit. You can learn more about v3 SDK and try it and provide feedback on our github repo here.
github.com/azure/azure-cosmos-dotnet-v3We will also be back-porting this functionality to our .NET v2 SDK. This work will begin shortly and we anticipate it to be released in September.
Once that is released we will mark this feature as complete.
Thank you for your patience and votes.
-
Add Group By support for Aggregate Functions
We're really happy about the new aggregate functions that recently were announced. But without Group By support they fall short and will leave many disappointed. Please add Group By support as well.
2,831 votesAzure Cosmos DB now supports GROUP BY queries! With GROUP BY, you can run queries that group your results according to the values of one or more specified properties. This feature is currently supported in Data Explorer, JavaScript SDK 3.4, and .NET SDK 3.3. Support for other SDKs will be available later this year.
-
Autoscale Throughput (UR/s)
Depending on the average amount of incomming requests/ required RU's, (or other parameters,)
I would like to autoscale the througput(RU/s) of a collection.1,791 votesWe’re excited to announce that we are making this a lot easier with our preview of Autopilot. With Autopilot, Azure Cosmos DB will automatically manage and scale the RU/s of your containers based on the usage. This eliminates the need for custom scripting to change RU/s and makes it easier to handle bursty, unpredictable workloads.
You can try out Autopilot in your Cosmos accounts by going to the Azure Portal and enabling the feature in the “Preview Features” blade.
-
Support stored procedure execution over all partitions
So I'm in a bit of a corner performance wise. Querying data from a broad and not necessarily well defined range of devices - some update once a day, some every 10 seconds. Need to query over the longer time span to make sure all devices are represented but only need the latest record. So might need a 100 or so results at the end but due to the lack of a GROUP BY function in Cosmos SQL, the output can be more like 100,000 which then have to be filtered out client side. No worries, just use a stored…
53 votesHave you considered using a lambda architecture in Cosmos DB?
This is a very typical pattern for IOT and Cosmos DB. Feel free to take a look here but I think you can get precisely what you want using Cosmos DB with Change Feed and Spark.
https://docs.microsoft.com/en-us/azure/cosmos-db/lambda-architecture
Thanks.
-
Support TTL indexes on any field
Please add support for TTL indexes on any field, not just the internal and inaccessible
_ts
field. We need document specific TTLs.27 votesPer document TTL is now available in Preview for customers to try.
To enable and test this feature access your MongoDB API account for Cosmos DB in the Azure Portal, click Preview tab on left hand side, then click Enable to test Per-document TTL.
You will can also enable and try Aggregation Pipeline and MongoDB 3.4 support from here as well.
Please try TTL and all these features and please feel free to give us feedback.
Thank you for your suggestion and your votes.
-
Make debugging expirience easier and exception messages valuable
Now error message for queries frequently useless
"{"code":500,"body":"{"message":"An error occurred while sending the request."}"}"And I have no ideas what exception happened and what I did wrong.
Please- add more valuable error messages
21 votesWe’ve made improvements in our error messages in Version 3 of the .NET SDK, currently in preview.
Let us know what you think by providing feedback on GitHub: https://github.com/Azure/azure-cosmos-dotnet-v3
Thank you.
-
Be able to use the OFFSET LIMIT clause with cross-partition queries
In order to scale our collections, we need to define a partition key, and with scaling comes pagination, so the new OFFSET LIMIT clause becomes appealing, but right now the SDK doesn't support cross-partition queries with this new clause.
In my case, I cannot use the Continuation Token because I need to be able to come back to previous pages, and the CT is forward-only.
10 votesUpdate. The newly release .NET SDK v3 now includes support for x-partition queries using Offset/Limit. You can learn more about v3 SDK here.
https://github.com/azure/azure-cosmos-dotnet-v3We will also be backporting this functionality to our v2 SDK. This work will begin shortly and we anticipate it to be released in September.
Thank you.
-
Add more options for GraphSONMode
Currently I am using the GraphSONMode.Normal to get adjcency information of a 'vertex' but then I only use the outgoing edge information and ignore the incomming edge information.
From optimization point of view we should add more options to have more fine-grained control on the output format of the gremlin query.
I would like to suggect that we add 'IncludeOutE' option for GraphSONMode to return GraphSON format including only Outgoing edge information and 'IncludeInE' option to return GraphSON format including only Incomming edge information.
7 votesThis is currently not on our road map. We’d like to get more feedback on this to see if there are more users that would want this. Will mark as need-feedback to see if this gets more votes and input from users.
Thank you for your suggestion.
-
Support recursive calling of stored procedures
Please support recursively calling the stored procedures and support stored procedure continuation, error handling and make it easy to deploy to all partitions..
4 votesThere are multple requests here. While we do not support stored procedures to call other stored procedures, we do support allowing a stored procedure to call a UDF today. Can you provide more information and scenarios for the other requests for continuation, error handling, etc?
Thank you.
-
allow javascript api client side
allow javascript type queries in the client as per https://docs.microsoft.com/en-us/azure/cosmos-db/javascript-query-api
It would be great to be able to do this from a JS client.
I'm using sql sdk currently4 votesCan you provide more feedback about this feature request?
We support client-side JS via our JavaScript SDK and also have CORS support as well.
Let us know and thanks
-
Select network interface for Cosmos DB emulator to allow network access
When the client SDK connects to the emulator it connects to the URL https://<myemulator DNS>:8081/.
The emulator returns back the writeableLocations and the readableLocations in the JSON response and these URIs are used for subsequent access. It appears that the IP address returned are the first in the list of LAN network interfaces (e.g. in IPCONFIG). If you have multiple IP addresses (for example you have a DockerNAT virtual switch installed) then it might not be the best IP Address returned to allow network access.
Why am I connecting to my emulator across the network you might ask? I'm…
4 votesHello Andrew. This should be possible today with our Emulator. Have you tried using our Docker image for the Cosmos emulator? You can learn more from here.
https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator#running-on-docker
If this does not work for you, please feel free to email us at askcosmosdb@microsoft.com and we can help troubleshoot.
Thank you.
-
Query data through the portal without showing keys
We want our developers to see information in the cosmosdb when using data explorer in the portal. Unfortunately the roles to provied that option gives also read access to the keys. We don't want that our developers can see the keys.
From what I can see, the Cosmos DB Account Reader only gives access to the “Read-Only Keys”. Without this access, even with all the other rights, the “Cosmos DB Account Reader” wouldn’t be able to see the information in the Data Explorer pane.
I tested this by creating a custom RBAC role copy of the Cosmos DB Account Reader…
3 votesYou can already do this today.
Log in to https://cosmos.azure.com/ and select the directory, subscription and Cosmos account you want to work with.
Let us know if this meets your needs.
thanks.
-
Base metrics of the "Average RU/S" on the whole selected period
In the troughtput Metrics the indicator about Average RU/S should be modified as follows:
•The label/tooltip should be clear about the fact that the average refers to the last hour and not the selected period
OR
•The calculation should be done on the whole selected period (From-To or Last Week)3 votesThe Metrics tab already provides this capability via the highlighted time windows highlighted in the attached image.
If this is not what you are asking for or is not clear, let us know.
Thanks.
-
Support for Atomic Updates in SQL API
I would need in a stored procedure or via SQL client API to perform the same thing you can do in SQL Server or MongoDB:
SQL Server:
UPDATE Accounts SET Balance = Balance + @Amount WHERE ...MongoDB
db.accounts.findOneAndUpdate(
{ "id" : "XXXX" },
{ $inc: { "balance" : 5 } }
)Stored procedure support is required because I would like to atomically update the balances of several accounts (credit - debit, or credit - debit,debit etc) in a transaction, provided all accounts are in the same partition.
It seems that the MongoDB client…
3 votesCosmos DB supports atomic transactions using stored procedures. Transactions are scoped to a logical partition key.
Can read more here, https://docs.microsoft.com/en-us/azure/cosmos-db/stored-procedures-triggers-udfs#scope-of-a-transaction
Please provide feedback if this is what you are looking for.
Thanks.
-
Graph DB - more query tabs
You should add more query tabs on CosmosDB for Gremlin, so that users can run different queries and compare the result without deleting every time the content of the textbox
1 voteThank you for your suggestion. This is currently not on our roadmap but want to get feedback and input.
How many tabs do you think you need?
thanks.
-
please add function can see execution status of query
please add function can see execution status of query
1 voteThank you for your suggestion.
Can you provide more details around why you need or use this feature?
Thanks.
-
1 vote
We already have recommendations that go to the Azure Recommendations Dashboard.
Can you be more specific what you would want to see?
Thanks.
-
migration to cosmos with array
in data migration from sql to cosmos, i am not able to create items with array.
1 voteHello Elie. There is really not enough feedback here to go on. Can you describe how or what tool you are using to migrate from SQL to Cosmos DB?
Thank you.
-
AutoSuggest RUs when executing heavy queries
As we know Cosmos DB pricing is based on RUs, most of the time as a developer I tend to execute "Select * from something". This results in more RUs and if most of the developers execute the same thing which is going to result in heavy cost.
My suggestion is to disable "Select *" for developers(magic way) or enable AutoSuggestion like Intellicode when someone is going to execute a query which will result in more RUs.
1 voteThank you for your suggestion.
I am not quite clear on what you are suggesting.
During development, it is normal for developers to write queries that may be costly as they work to understand the data access patterns for their apps.
Cosmos provides query metrics and diagnostic logs that records the cost of queries so developers can understand if their partitioning and model are efficient. This data can and should be used early on in the development cycle such that if need be, the model and partitioning scheme can be modified to ensure most queries can be answered with in-partition queries to ensure the best efficiency when moving from a development phase to production.
There is no automated or magical way of knowing what the cost of query will be before it is executed, either through the portal or via the SDK. It is also not possible to disable…
- Don't see your idea?