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. Cheat seat has misspelled for Graph

    Graph spelling in "Graph object attributes" section is written as Grapph.
    which is wrong. Please fix it.

    1 vote
    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 →
  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.

    6 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 →
  3. Cosmos DB BulkExecutor for .NET Core

    I would like Azure Cosmos DB BulkExecutor library for .NET Core compatible version.

    Recent application often uses Microsoft.Azure.DocumentDB.Core package, so the need for the .NET Core version is high.

    333 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    7 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  4. 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 →
  5. Managing local account and authentication for accessing database and collection

    We are using Cosmos DB with Mongo API .We are unable to restrict the user to collection or database level. The only option available is read write keys and read only keys which works on the DB account level.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. 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.

    50 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 →
  7. Document how to make & use Icon Sets in the Graph Data Explorer

    You have a Gremlin Graph Intro video that includes use an icon set (the video shows an icon set for Marvel characters) - but there is very little info on how you can create this icon set - i.e. the video shows a vertice that represents the icon set, but it isn't clear what properties on the vertice do what - and also what encoding is used for the icon picture content.

    11 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 →
  8. [CosmosDB] Be able to manage Backup and Restore with Portal and APIs

    Please provide the ability to manage backup and restore on our own.

    Restore through support is not clear and inconvenient.

    It turned out restore is only available through paid support plan.

    This document https://docs.microsoft.com/en-us/azure/cosmos-db/online-backup-and-restore#restoring-a-database-from-an-online-backup does not say it in any word.

    The situation made our customer extremely unhappy.

    317 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. 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.

    14 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 →

    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.

  10. Mongo DB API - cursor.sort() does not return sorted result

    When I use find() with sort(), the results are not sorted correctly. The order of the returned items do change, but in a strange order. (MongoDB returns correctly sorted result with the same query). Is this a CosmosDB bug?

    Here are the queries and results. The queries are executed with a Mongo DB shell connected to a Cosmos DB instance. You can see that the header_timestamp order are incorrect.

    > db.datastore.find({}, {_id: 1, header_timestamp: 1})

    { "_id" : "object-bbfg0pritvunrk0bi170", "header_timestamp" : NumberLong(1) }
    { "_id" : "object-bbfg0rjitvunrk0bi180", "header_timestamp" : NumberLong(3) }
    { "_id" : "object-bbfg0s3itvunrk0bi18g", "header_timestamp" : NumberLong(4) }
    {…

    96 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  11. 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 →
  12. Cosmos DB connector for Power BI is still in beta, Please make a stable version

    Cosmos DB connector for Power BI is still in beat and our customer are unwilling to accept this. Can we make a stable version of it?

    41 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 →
  13. Stored procedure samples and documentations should be updated to use latest JS features

    You seem to support Promises, async/await, and other JS features in stored procedures yet all of the samples and docs still use callbacks, which makes the code rather ugly. Can we get the docs and samples updated?

    The samples should also be updated to use parameterized queries.

    4 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 →
  14. File name messes up with status after uploading JSON documents to Cosmos DB

    File name messes up with status after uploading JSON documents to Cosmos DB when the file name is a little too long. It ruins the look and feel of Azure

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. Cannot download Azure CosmosDB Mongo collection to local file(s)

    I had to use 3rd party tool (mongoexport.exe) to export Mongo collection in Azure to local json file. Would be nice for MS to have button in Azure portal to export and import. Ideally (I think) users do not want to use external (i.e., especially 3rd party) migration tool, and leverage portal security instead of transferring details from portal to tool.

    Thanks

    4 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 →
  16. 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…

    78 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  17. 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: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  18. 4 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 →
  19. 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 →
  20. CosmosDB's implementation of the Tinkerpop DSL has a wrong/missing signature for limit(...)

    Tinkerpop's GraphTraversal DSL suggests that the limit-operator should take a value of type long, i.e. a 64 bit number. Microsofts version of that operator however seems to only accept values of type int (which is 32 bit). This is not a problem if we only use queries without any bindings, i.e.

    g.addV('person').property('firstName', 'Bob').limit(1)

    will just work fine. Trouble starts whenever we use bindings (using Gremlin.net, the seemingliy now preferred way to query CosmosDB graph). Issuing

    g.addV('person').property('firstName', 'Bob').limit(x)

    with a binding of 'x' to (long)1 will throw the following exception:

    Gremlin.Net.Driver.Exceptions.ResponseException: 'ScriptEvaluationError:

    ActivityId : 919d7a89-70fd-43d1-b736-e1d1bb9aa7ac
    ExceptionType : GraphCompileException
    ExceptionMessage :
    Gremlin…

    4 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 →
  • Don't see your idea?

Azure Cosmos DB

Feedback and Knowledge Base