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. Azure CosmosDB is too expensive for small but multiple collections

    Currently using on-prem MongoDB (on Linux) and wish to move to Azure, but I find CosmosDB is too expensive for small but multiple (MongoDB)collections because it seems that a minimum of 400 RRU's/per second will be charged for each collection.

    The terminology used on the pricing web pages is somewhat unclear though and I am not sure if the pricing for the minimum of 400 RRU's/second applies to partitions or collection (or if these terms are in fact identical semantically)

    1,549 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    127 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →

    We have just released a major update to our pricing for Cosmos DB.

    Starting today, customers can now provision a database with just 400 RU/s (or about $ 0.77/day USD). Combined with the ability to share throughput across collections this should make Cosmos DB much more affordable to users with many small collections

    We invite you to checkout our new pricing in the Azure Portal and give us feedback.

    Thank you for your patience and feedback.

  2. MongoDB API : aggregation operation is too slow

    the aggregation operation is too slow ...

    54 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    9 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →

    We are currently working on this feature and have made it available in Preview in the Azure Portal.

    Please feel free to test Aggregation Pipeline support for your MongoDB API accounts in Cosmos DB by opening your MongoDB API account, then clicking on “Preview” tab on left hand side and then Enable for Aggregation Pipeline.

    While there please feel free to test support for MongoDB 3.4 support as well as Per-Document TTL support.

    Thank you for your request and votes.

  3. 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…

    36 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. Better documentation on integration with Logic Apps (or bugfix?) - We have serious difficulties with an error on "PartitionKey"

    We are trying to do serverless with logic apps and have connected the Logic App to an Event Grid Topic. Our intent is to store events in Document DB, but we are unable to get it to work because of errors regarding the Partition Key. We have tried all possible strings in the partition key field and created a number for collections with different partion keys. We don't know what black magic spells we need to use and cannot really find good documentation with examples of such operations on the docs for either Cosmos DB or Logic Apps.:

    One of…

    33 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  5. Bug: emulator's Data Explorer stops working if left inactive for 15 minutes

    Steps to reproduce:

    1) Install Cosmos DB
    2) Open Data Explorer in a browser tab
    3) Make a query
    4) Wait for > 15 minutes
    5) Execute another query
    Expected: it works
    Actual result: the following error pops up:

    {"code":403,"body":"{\"code\":\"Forbidden\",\"message\":\"The authorization token is not valid at the current time. Please create another token and retry (token start time: Mon, 09 Jul 2018 08:22:30 GMT, token expiry time: Mon, 09 Jul 2018 08:37:30 GMT, current server time: Mon, 09 Jul 2018 08:46:19 GMT).\\r\\nActivityId: 1bb68cc4-6bae-4e94-83ab-445da191c8e2, Microsoft.Azure.Documents.Common/1.22.0.0\"}","activityId":"1bb68cc4-6bae-4e94-83ab-445da191c8e2"}

    This is extremely annoying, as a multiple times a day I have to open a new…

    31 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →

    This was a bug we saw reported back in November. We released a fix for this issue back in late December.

    Can one of you reporting here confirm whether this is still an issue? If so, can you email us at askcosmosdb at microsoft dot com. We want to gather more information so we can identify and fix if this is a separate issue from the one above.

    Thanks.

  6. 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…)
    Password icon
    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.

  7. Support strategies on graph traversals

    Currently, the graph traversal in Cosmos DB graph (usually referenced by 'g') does not support the 'withStrategies'-method that is normally part of a Tinkerpop implementation. 'withStrategies' allows e.g to enhance the traversal with custom vertex- and edge-filtering on every step (by a SubgraphStrategy).

    14 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  8. Add Support for Service Tags to Azure Cosmos DB Firewalls

    At the moment CosmosDB firewall rules are restricted to IP addresses or ranges. 0.0.0.0 is too permissive and permits access from other Azure users Subscriptions. It would be beneficial if it were possible to use Service tags in security rule definition to reduce the complexity of the Cosmodb firewall configuration in the manner available to Virtual Networks, Firewall or NSGs.

    for example

    AzureCloud
    AzureCloud.EastUS

    It is impractical to download the list of Microsoft Azure Datacenter IPs to check and update firewall rules.

    6 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. CosmosDB should provide enough tools to analyze and tune query/index performance

    The lack of tools available to analyze query/index performance in CosmosDB and to fine tune this performance is frustrating. CosmosDB should provide tools to analyze and tune performance from queries and indexes, similar to the tools already available in MongoDB.

    6 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →

    We have a number of articles and resources to help analyze and tune performance across our documentation. Here are a list of articles and a sample app to help you with this.

    Articles and resources to help with performance analysis, testing, tuning. If there is something specific you are looking for, please let us know.

    Articles
    Tuning query performance with Azure Cosmos DB https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-sql-query-metrics
    Performance tips for Azure Cosmos DB https://docs.microsoft.com/en-us/azure/cosmos-db/performance-tips
    Debugging why queries are running slow https://docs.microsoft.com/en-us/azure/cosmos-db/use-metrics#debugging-why-queries-are-running-slow
    Index Performance Tuning https://docs.microsoft.com/en-us/azure/cosmos-db/indexing-policies#performance-tuning
    Tunable data consistency levels in Azure Cosmos DB https://docs.microsoft.com/en-us/azure/cosmos-db/consistency-levels
    Set and get throughput for Azure Cosmos DB containers and database https://docs.microsoft.com/en-us/azure/cosmos-db/set-throughput

    Sample App
    Performance and scale testing with Azure Cosmos DB – Sample App https://docs.microsoft.com/en-us/azure/cosmos-db/performance-testing

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

    5 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  11. 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 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →

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

  12. Please change Error Message

    When I use this command "az cosmosdb database list" at not enrolled machine at firewall,
    Error message(”Operation Failed: Resource Not Found”) is displayed.  This error message is difficult to know that the cause is about firewall.
    So I want to change the error message something easy to know that  the cause is about firewall.
    For example, ”Operation Failed: Not enrolled white list of firewall”.

    4 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  DocumentDB API  ·  Flag idea as inappropriate…  ·  Admin →
  13. DocumentDB Data Migration Tool

    When you go to Target information and paste in the connection string from the Azure portal and click verify, it tells you to add the database. After adding that and clicking verify, it gives you an error occurred when sending the request without any way to tell what the error was, making the tool unusable.

    4 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. Allowing to change (or disable) the aggregation query size cap at the user's discretion.

    This would avoid situations where CosmosDb becomes the bottleneck due to security concerns on the database.

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. Problem with Gremlins API

    I have problems when i send a series of query to the dbs, the response arrived after a long time. How can i resolve it?

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

Azure Cosmos DB

Feedback and Knowledge Base