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.

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.

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. Implement a GraphQL Provider (repost)

    (Previous post with the same title was closed without giving the correct solution.)

    graphql {http://graphql.org/} is becoming increasingly adopted by front end frameworks (including mobile) for querying backend / API data.

    Rather than having to translate each graphql query into a DocumentDB client call it would be optimal and very powerful to issue the query directly.

    It would also provide enhanced query abilities over the existing REST approach.

    38 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  2. Add a json data type

    I have json data i dont need to query but would like to be able to persist to a vertex. In my particular case the json is data for a client side quilljs editor. I dont need to be able to query or manipualte it on the server only retrieve it.

    9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  3. Support Pandas DataFrame

    Support saving pandas data frames directly to Tables.

    43 votes
    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 →
  4. Microsoft join and support GQL

    I think it would be a great benefit for Cosmos DB to support the new movement to get to a single Graph Query Language. Microsoft joining this movement might help in rapid evolution and acceptance of such a language.

    Taken from https://neo4j.com/blog/time-for-single-property-graph-query-language/:

    The time has come to create a single, unified property graph query language.

    Different languages for different products help no one. We’ve heard from the graph community that a common query language would be powerful: more developers with transferable expertise; portable queries; solutions that leverage multiple graph options; and less vendor lock-in.

    One language, one skill set.

    56 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  5. Pricing Granularity per Minute instead of per Hour

    It is buried in the FAQ;s on the pricing page. The current billing structure will take the largest RU offer in a given hour increment and that's what is charged for that hour. If you scale up to 1000RU's at 10:59 and down to 400 at 11:01, the billing for both hours will be @ 1000RU's. This makes scaling up and down harder to deal with and reason about. Can you evaluate changing the billing granularity down to the minute level in order to allow shorter bursts of scale up / down billed for the actual usage.

    18 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for your suggestion. Currently, we don’t have anything planned in changing our billing meter from hour to minute. But will leave this request open and will include this in future planning discussions for our roadmap.

    Thank you for your suggestion.

  6. Support multiple collections in stored procedures

    Currently CosmosDB Stored procedures only allow access to a SINGLE collection (because they seem to be scoped to collections rather than to the database), via getContext() :

    var collection = getContext().getCollection();

    But any "useful" / "real-life" application using ComosDB will typically have to interact with more than one collection. For example, it is currently IMPOSSIBLE to insert documents into two distinct collections within a database using a single stored procedure -- a VERY SERIOUS drawback / limitation.

    I would propose that stored procedures be scoped to the database level and then we would be allowed to do something like:

    var…

    150 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    7 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  7. Include stored procedures and udfs and triggers as part of Data Migration export

    Include stored procedures, udf's and triggers as part of Data Migration export for document db

    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 →
  8. 4 votes
    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 →
  9. monitor and kill queries

    Add ability to monitor (ie. see SQL query) and kill long running user queries from within Data Explorer.

    14 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Portal  ·  Flag idea as inappropriate…  ·  Admin →
  10. Support for Graph API in Data Migration tool

    Looking for a way to do backup/restore or manual export/import of a Cosmos DB graph using Graph API - or equivalent.
    I want to be able to restore state of a database while developing and found that Data Migration tool can do what I want, but does not support Graph API.

    61 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  11. Gzip query response

    When data is returned from DocumentDb it does not respect the Accept-Encoding header. The DocumentDb SDK actually adds the Accept-Encoding header to the request but DocumentDb ignores it and does not compress the response data. For clients like Mobile (and even API requests) this would be an incredible savings for queries.

    8 votes
    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 →
  12. Provide load balancing option across regions at the server level

    I have a read replica set up in a different region/same country. Since I am paying full price for that region I want to be able to use it to carry some of the query load. Using the node.js SDK, although preferred location and endpoint discovery is set as documented all queries get sent only to the primary region. Regardless, it should not be left up to client side applications to manage load balancing - that might be ok if you only have 1 application. Also, we might want to use applications that (shock horror) are not coded ourselves- Power…

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →

    @Ian.

    With regards to secondary regions having different RU/s we do not have this on our road map at this time. There is another User Voice items which have this suggestion, Please feel free to vote that item up.

    @Nick.

    For scenario 1. Same answer.

    For scenario 2. Typically, just putting the front-end closer to users is not something we see help with application latency where they are backed by a database as the app still needs to call the database which is still separated by some distance.

    With regards to knowing which region to point to I would suggest conducting tests to see which regions provide the best latency and include this as the preferred regions for each regional deployment.

    Thank you both for your suggestion and comments.

  13. Gremlin console in Azure portal

    Currently the option to do search queries in azure portal with gremlin is very slow. To avoid the setup of a local Gremlin console, it would be an improvement to have a gremlin console integrated into the portal. No need to specify connection string and keys, just ready to use and fast.

    Would same time to each developer and be a frictionless no setup, just ready to use.

    11 votes
    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 →
  14. Better handling of "request limit too large"

    Here (https://docs.microsoft.com/en-us/azure/cosmos-db/performance-tips) you can see that when you have exceeded your RU/s quota, Cosmos DB will respond with HTTP Status 429 with an HTTP header x-ms-retry-after-ms telling you when you can make the next request. It also says that the request will be retried automatically, if you use the SQL API.

    For the MongoDB API, requests will not be retried automatically and there is nothing telling the user how long to wait before retrying. Instead you have to catch a MongoCommandException, look at the Code property for 16500 and guess when to retry,

    I'd like the same support…

    191 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  15. Allow me to create global read replicas with different partition keys

    There is really no way to come up with a single partition key for my graph database to satisfy all queries. Some queries would benefit from a different partition key, so why not let people create copies of their whole graphs with different partition keys and give them a way to intelligently route queries to the correct server?

    one write region with partition key A
    multiple read regions with partition key A
    multiple read regions with partition key B
    multiple read regions with partition key C
    ...

    In other words, there would still be a single write region but multiple…

    13 votes
    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 →
  16. Support $GraphLookup

    $graphLookup is not implemented in Mongo API
    If you try to do this with Mongo API (or Cosmos DB) + Gremlin you need to know what the relationships are upfront. Need DYNAMIC joins 
    which MongoDB supports today.

    44 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  17. Support TTL that is fixed (not relative to last modified timestamp)

    The TTL function is great, but it would be very useful to have a method of ejecting a document at an exact time after it was created NOT modified.

    With the GDPR act coming into play very soon, having a datastore that has the potential to eject customer data at a specific time is very desirable because it prevents us having to roll our own deletion mechanisms.

    Please allow the the option of the TTL to be a fixed point in time and not be updated every time the document is modified.

    Thanks

    10 votes
    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 →
  18. Linq provider should respect JsonSerializerSettings ContractResolvers

    JsonSerializerSettings are now supported when creating the client, as per https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/6422364-allow-me-to-set-jsonserializersettings

    However, when using for example a CamelCasePropertyNamesContractResolver to store the data, the linq queries will fail if the properties on the POCO classes are Pascal case.

    421 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    10 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  19. Support lambda steps

    Lambda steps (i.e. steps that take arbitrary groovy-functions as arguments) are currently not supported. We plan to migrate to CosmosDB but have a few traversals that contain lambdas.

    10 votes
    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 →
  20. EventGrid publisher for CosmosDB

    Instead of, or in addition to, the existing ChangeFeed please publish changes to Event Grid.

    This shud be mngt ops like DB create, collection create etc.
    AND changes to documents, including deletes.

    133 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    9 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Azure Cosmos DB

Categories

Feedback and Knowledge Base