Azure Cosmos DB

Azure Cosmos DB is a globally distributed database service designed to enable you to elastically and independently scale throughput and storage across any number of geographical regions with comprehensive SLAs. You can develop document, key/value, or graph databases with Cosmos DB using a series of popular APIs and programming models.

SQL API:
With the SQL API, Azure Cosmos DB provides rich and familiar SQL query capabilities with consistent low latencies over schema-less JSON data. In this article, we provide an overview of the Azure Cosmos DB’s SQL API, and how to best use the API.

Gremlin API:
Azure Cosmos DB provides the Gremlin API for graph modeling and traversal, along with turn-key global distribution, elastic scaling of storage and throughput, and low latency.

Cassandra API
Azure Cosmos DB supports the Cassandra API. This means that by using existing drivers, your application written for Cassandra can now communicate with Azure Cosmos DB instead of Apache Cassandra/Datastax Enterprise databases, and gain benefits like global distribution and elastic scale.

MongoDB API:
Azure Cosmos DB supports the MongoDB API. This means that by using existing drivers, your application written for MongoDB can now communicate with Cosmos DB instead of MongoDB databases, and gain benefits like global distribution & elastic scale.

Table API:
Azure Cosmos DB provides the Table API for key-value workloads. This provides a premium experience for Azure Table storage with secondary indexes, global distribution, low latency, and dedicated throughput.

How can we improve Azure Cosmos DB?

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Support Pandas DataFrame

    Support saving pandas data frames directly to Tables.

    28 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Table API  ·  Flag idea as inappropriate…  ·  Admin →
  2. Please don't surprise your customers with Azure Cosmos DB costs...

    1. RU/s are confusing, new and different. Please assume that your current and potential customers are not going to understand how they work for a while.
    2. Notify your customers via portal alerts when their costs are on track to increase by more than 50% on the next invoice.
    3. Every service needs a trial mode. There needs to be a very cheap and limited way that current and potential customers can test drive Azure services without being surprised by thousands of dollars in charges.
    4. Don’t default to 800 RU/s when creating an Azure Cosmos DB Table with the…

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

    Hi Robin, thank you for your feedback. Will take one at a time.

    1. We realize RU/s (provisioned throughput) is a different model than people may be used to. It is however, not different than say provisioning a VM where you are paying for compute, IO and memory. Customers here too do not want to over-provision as there are unused resources. The same goes for Cosmos DB. Where we need to do better, is in helping people measure their usage and tune their RU/s. This work is planned and ongoing.

    2. We are currently planning on enhancements to Azure Advisor in the portal around this.

    3. Cosmos DB has three different means for Trial. There is the Azure Trial itself. There is also our Emulator (https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator). Finally, there is TryCosmosDB, (https://azure.microsoft.com/en-us/try/cosmosdb/)

    4. I will review this with our SDK team. Agree we should use minimums as…

  3. Execute read-only stored procedures on secondary replica

    I have a many-to-many scenario close to the post below:
    https://feedback.azure.com/forums/263030-documentdb/suggestions/6611247-support-cross-document-joins
    I have multiple entities, and the relationships between them are saved as documents and can't be denormalized.
    Instead of doing multiple queries against the DB, I'd like to wrap it in a stored procedure to save round-trip time.
    However, current stored procedures can only execute on primary replica, so it would be slow if the users are from another region.
    Is that possible to define some read-only stored procedures so that it can be executed in read regions?

    27 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  4. Add support for latest $lookup step in aggregation pipeline

    In v3.6 of Mongo, the $lookup step of an aggregation pipeline added the ability to join on conditions instead of just an exact match. This is thoroughly documented in the official documentation.

    https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/index.html#join-conditions-and-uncorrelated-sub-queries

    When I attempt to use the step in CosmosDB, I receive the error "Unrecognized parameter to $lookup: let" which indicates that the latest API is not yet supported.

    24 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  5. 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.

    https://docs.mongodb.com/manual/tutorial/expire-data/

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

    Per 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.

  6. Filtered unique indexes

    I need my unique indexes to work when a soft delete flag is set to zero so that only the active records will participate in the uniqueness constraint per partition. This also makes it easier to determine deleted records in the Change Feed.

    23 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  7. 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 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  8. Please remove the 40MB limit, when migrate whole Cosmos DB's data.

    When I migrate whole Cosmos Mongo DB's data to external MongoDB, below error is occurred.

    [Error Mesaage]
    Query exceeded the maximum allowed memory usage of 40 MB. Please consider adding more filters to reduce the query response size.

    So, Could you remove the 40MB limit, when migrate whole Cosmos DB's data?

    21 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  9. Text search in documentdb with accented characters

    I've searched for an answer to this and can't find it...
    What I need is support for something like a text-analyzer that allows similar accented characters (e.g. àáâãäå) to match their normal latin equivalent.
    So searching for names like "Jose" will return results like "José"

    20 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. CosmosDB Graph API should support array types inside Gremlin properties

    Currently, the CosmosDB Graph API does not support array types inside of Gremlin properties. This forces users to rebuild their graph models to match what the Graph API requires. The CosmosDB Graph API should support array types inside of Gremlin properties.

    19 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  11. DocumentDB driver/package for R

    There is one for MySQL. Not sure how hard it would be to build one for DocumentDB.

    17 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  12. Support for schemas (full, mixed and none)

    Support schema-full and schema-mixed modes like OrientDB. This way one can _design_ a graph with vertex and edge classes. This is extremely useful when modelling known domains and removes all burden to do this in code.

    18 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  13. Improve range() step costs

    Graph API is nice, however in its current state it is unusable for large data sets due to high RU costs.
    We are trying to implement paging for retrieving large amounts of data, however RU cost is unacceptable. Query "g.V().range(0,100)" costs 63.11 RU, however "g.V().range(2000,2100)" costs 338.06 RU even though it is same amount of data. Higher values are even more expensive meaning it's impossible to retrieve high amount of data without scaling up throughput.

    18 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  14. Azure Cosmos DB: HBase API

    Add support to Azure Cosmos DB for HBase API. This will open up many Big Data use cases.

    18 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  15. 16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  16. Provide a version history or changelog for the CosmosDB Emulator

    Great to see that you're updating the emulator regularly. Please post a changelog or version history online so we can keep up with you!

    16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  17. Support MongoDB's $expr operation

    MongoDB's '$expr' operation (https://docs.mongodb.com/manual/reference/operator/query/expr/#op._S_expr) seems to be unsupported. When including '$expr' in a query it seems to be treated as a regular field name.
    This limits the usability of Cosmos as a drop-in replacement for MongoDB when these queries are needed.

    16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  18. Support Math functions in the graph

    simple arthimatic (like computing %s) have to be done after extracting the data. pl support math step

    15 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  19. store asp.net session state in azure documentdb

    i want store asp.net session state in azure documentdb.
    I remember there was a special store provider for appfabric cache to store session state (configured in web.config), it's also possible with sql server. however, in documrntdb you can't do this, if i use documrntdb as my main db and im using an adhoc loadbalancer it will be great to store the asp.net session state in documrntdb.

    15 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. CosmosDB Cassandra API should support materialized views

    Hi,

    we are currently using Materialized Views with Cassandra, and we would like this feature to be available with Cosmos DB.

    Thanks

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

Azure Cosmos DB

Feedback and Knowledge Base