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.

SQL API: Query language features, syntax using SQL API, indexing, any other core features in Azure Cosmos DB.

Gremlin API: Graph features and capabilities using Gremlin API.

Cassandra API: Features and capabilities using Cassandra 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.

Azure Synapse Link: Features related to Azure Cosmos DBanalytical store and Azure Synapse Analytics run-time support

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.

Security:
Authentication, authorization,permissions and encryption features.

Monitoring:
Metrics, monitoring, alerts,and diagnostics features.

Server-side: Stored procedures, Triggers,and User-Defined Functions.
  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Table Strorage JAVA SDK Performance Tuning

    Table Storage JAVA SDK does not provide concurrency option for any of its operation. We are getting TPS of around 500 for table insert queries but it is also because we have designed our data model such that.
    Async functionality is available for Table Storage C sharp SDK but not for JAVA SDK.
    It would be good if there is concurrency option for Table Storage Java SDK.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Table API  ·  Flag idea as inappropriate…  ·  Admin →
  2. Return random for $sample

    $sample should return an actual random sample.

    Right now it returns the top/first N items. This is preventing us from porting code over the Cosmos DB.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  3. cosmos db metric not raising/recording http 401/403 response

    cosmos db metric not raising/recording http 401/403 response.
    It will be helpful if this is included as part of metrics

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Monitoring  ·  Flag idea as inappropriate…  ·  Admin →
  4. lack of documents for cosmos gremlin

    cosmos gremlin - DB lack of Documentation. Do you have any support team who can help us .

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  5. Clear Rate Limiting warning faster

    When you reach a rate limit, and then subsequently increase the RU's the Map shows Orange / rate limited for a long time (a few hours it seems) after it has been increased and no longer rate limiting...

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Portal  ·  Flag idea as inappropriate…  ·  Admin →

    Hello Anton. Thank you for your suggestion. Yes, the rate limit graphic is overly aggressive. We are planning to change that behavior so it more closely maps actual rate limiting.

    This work is planned but we do not have a precise ETA. Will update here either when this is started and for sure when it is complete.

    Thank you for your suggestion.

  6. Change stream starting point

    Please add these options to change streams startAtOperationTime / startAfter / resumeAfter

    The absence of the opportunity to set a change stream beginning point makes it absolutely useless :(

    https://docs.mongodb.com/manual/reference/method/db.collection.watch/#db.collection.watch

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →

    This was mistakenly marked as completed but we’re not quite complete with all three of these options.

    Currently only resumeAfter is complete. Sample is available here, https://github.com/Azure-Samples/azure-cosmos-db-mongodb-java-changestream/tree/master

    startAtOperationTime is nearly complete. Samples for that are currently being developed.

    startAfter is planned but not yet started. ETA some time later this year.

    Marking item as Planned until all three are complete.

    Thanks.

  7. Add Callback handler based on partition key, so polling is not needed/charged RUs


    1. ChangeFeedProcessorBuilder does not support subscribing only to certain PartitionKeys, so it'd be great if you supported that.


    2. If not, I can get by with GetChangeFeedIterator and manual polling (pull model), but that's in preview, so please release that officially.


    3. I believe even in #1, we are charged RUs for polling behind the scenes (correct me if I'm wrong.) So idle host instances are constantly consuming RUs. Is it possible to trigger Cosmos to call the registered callback handler only when something happens on the change feed --for the specified partition key. A trigger replaces polling. Then only charge RUs for…

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Change Feed  ·  Flag idea as inappropriate…  ·  Admin →
  8. slice projection not working mongodb

    User.findById({ _id: req.params.id }).slice('blacklistGroup', [0, 2]).then((res) => { outputs slice must be an integer error. More details here https://stackoverflow.com/q/61290693/2683814

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  9. Azure portal Data Explorer works poorly with databases with both docdb and gremlin collections.

    We use a mix of gremlin and docdb collections in a gremlin api database (one per tenant). We initially started with 2 databases per tenant, one for gremlin and one for docdb, but this was just to much too manage, too expensive, etc. The only problem with this is the Data Explorer does not support it. It does not show documents for docdb collections so no way to add, delete, edit documents from Data Explorer. Instead we are using 3rd party tool CosmosDbExplorer that overcome this limitation, but it feels unnecessary complicated.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  10. 1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  11. Gremlin edge check

    How will check edge details . If i have created one edge and if run again ..is it duplicate or drop and recreated

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  12. Add Select * without X capability (project-away)

    Add Select * without X capability (similar to project-away in Kusto). To be able to bring all documents, but without a nested field (that can be large array for example), and this in order to save RUs

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  13. Type decimal for column columnName is not supported as a cluster key yet.

    Type decimal for column marketcapital is not supported as a cluster key yet. for cassandra api in cosmos db

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Cassandra API  ·  Flag idea as inappropriate…  ·  Admin →
  14. orchestration for ETL processing for cosmos db gremlin API

    Dataware house concept - from on premise database to cosmos db germlin API to load data in to different stages into cosmos db germlin API.I didn't find orchestration component for this .Can you please suggest ?

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  15. Tail() Gremlin step support

    Create an empty graph and add the following with partition as a.

    g.addV('person').property('a','1').property('name','person 1').property('number',1)
    g.addV('person').property('a','1').property('name','person 2').property('number',2)
    g.addV('person').property('a','1').property('name','person 3').property('number',3)

    Then run the following:
    g.V().order().by('number')
    returns: person 1, person 2, person 3
    g.V().order().by('number').tail(1)
    returns: person 1

    ​This is not expected result as it should return person 3. But when the property is used to run the same thing or use the query with fold()/unfold() before .tail()

    g.V().order().by('number').properties('name')
    returns: person 1, person 2, person 3
    g.V().order().by('number').properties('name').tail(1)
    returns: person 3

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  16. Allow partition key to be changed to new items

    Request feature to update partition key to new value(item) because there should be chance users want to change partition key to new value after it spent some time since partition key is set. Like they will need to prepare for other queries with different partition key.
    under such situation, it will be annoying to migrate all data to newly created account.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  17. array_contains for empty array should not use high RU

    A trivial query like

    SELECT * FROM c WHERE c.partitionKey = '***' and arraycontains([], c.id)

    will not return any results, but it does take COSMOS a lot of RU to determine this.

    E.g. On a partition with 6k small documents this consumes 622RU!

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  18. A tutorial to pull data from API and insert directly into Cosmos Graph Database

    Can we pull data from API and insert them directly it into Cosmos Graph . Inserting the API data directly to Graph DB tutorial would be helpful for Developer community. Please let me know if there are any related links.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  19. Update CosmosDB connector for Databricks Runtime 7.X

    Please add support to Databricks Runtime 7.X -> Spark 3 through the Maven connector

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SDK  ·  Flag idea as inappropriate…  ·  Admin →
  20. TimeSpan system function to add\subtract to a DateTime

    You recently made Date and time functions (https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-date-time-functions) and this is very good. But then I wanted more:-) I wish I could add\remove a TimeSpan string (eg. "3.12:32:32.54545") to a DateTime.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feedback and Knowledge Base