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 Cypher as a query language for Graph data

    Add Cyhper (see http://www.opencypher.org/) as a language to query graph databases. Cypher is a human readable query languages to easily access a graph database.

    299 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      9 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
    • Support Gremlin Bytecode to enable the fluent API of Gremlin.NET

      Azure Cosmos DB Graph API doesn't support Gremlin Bytecode. Therefor it is not possible to use the fluent traversal API of Gremlin.NET.

      Within the Azure Cosmos DB Graph .NET API (https://docs.microsoft.com/en-us/azure/cosmos-db/graph-sdk-dotnet) it is recommended to use Gremlin.NET. So it would be really nice if all features of Gremlin.NET would be supported.

      See also the idea of a "better type-safe APIs fro Gremlin" (https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/19340761-better-type-safe-apis-for-gremlin) within the Graph API feedback.

      237 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        5 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
      • Better type-safe APIs for Gremlin

        Hello guys,

        With the recent announcement of CosmosDB which includes Gremlin APIs, is there any plan to have a more fluent/linq/lambda-friendly APIs on .Net SDK?

        I'm looking at this sample https://github.com/Azure-Samples/azure-cosmos-db-graph-dotnet-getting-started/tree/master/GraphGetStarted from docs, and the Gremlin queries are fully string-based.

        I could contribute that to a package like Microsoft.Azure.Graphs.Extensions or something like that.

        I know that lambda/linq syntax don't map 100% to the the Gremlin one.

        So the idea would be translate:

        g.addV('person').property('id', 'thomas').property('firstName', 'Thomas').property('age', 44)"
        to something like that:

        graph.Vertice<Person>().Property(p => p.Id == "thomas").Property(p => p.FirstName == "thomas").Property(p => p.Age == 44);
        That would internally build the proper Gremlin…

        161 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          7 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
        • Support Gremlin APIs on Cosmos DB Emulator

          The Cosmos DB Emulator currently does not support the Gremlin API. So at the moment it is not possible to test against the emulator using the Gremlin Console (http://tinkerpop.apache.org/docs/3.2.5/tutorials/the-gremlin-console/)

          121 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            2 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
          • Support for W3C SPARQL as a query language

            SPARQL is a mature W3C standard for querying and updating graph-like data with well defined semantics and rich query capabilities.

            http://en.m.wikipedia.org/wiki/SPARQL

            74 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              3 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
            • Gremlin queries from stored procedures

              It would be nice to have the ability to execute Gremlin queries against the Graph API from a stored procedure. Ideally, this would also enable transactions.

              73 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                2 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
              • cosmos db Grah API for .net core pelase!!!

                i read many comments demanding Graph API, and Gremlin Traversal language to be compatible with .NET Core

                53 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  4 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                • Unique indexes on Graph vertex/edge properties

                  I need to ensure global uniqueness for things like username/email/mobile number/etc. Since we no longer have traditional SQL, this capability is lacking. Allow me to define unique indexes so the write region has only one occurrence of a distinct value.

                  Ideally, this should also make FILTERED unique indexes possible.

                  42 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    2 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                  • 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.

                    30 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                    • add spatial support to Graph API

                      Enable the same support for spatial queries that exists for DocumentDb for graph elements. Similar to Neo4j Spatial.

                      26 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                      • Support Parameter binding!

                        Have the graph api support binding of parameters to the gremlin query to help prevent sql injection.

                        22 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                        • 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.

                          20 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                          • Please release a .Net Standard build of Microsoft.Azure.Graphs

                            The v0.2.0 preview Nuget package only supports net451 (.NETFramework,Version=v4.5.1)

                            Also, it's dependencies are hard coded to older versions of libraries that are incompatible with just about everything I need:

                            Microsoft.CodeAnalysis.CSharp (= 1.3.0)
                            Microsoft.CodeAnalysis.Common (= 1.3.0)
                            System.Collections.Immutable (= 1.1.37)
                            System.Reflection.Metadata (= 1.2.0)

                            19 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              4 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                            • Support for "hasNot" step in Azure Graph API

                              One of our customer needs 'hasNot' step capability in Azure Graph API. Please bring this feature ASAP.

                              17 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                1 comment  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                              • Open Source Microsoft.Azure.Graphs

                                Please open source the library so that the community can help contribute to the code and especially the docs. I have had to decompile the library on several occasions to figure out what I was doing wrong. Having access to the test suite is a form of documentation in itself that would be super useful for consumers of the API.

                                Even if you are not actively accepting PR's, having the code be source open is still a benefit to everyone.

                                Thanks!

                                16 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  1 comment  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                                • Enable GraphSON v2 support for Gremlin API

                                  Enable using the GraphSON v2 serializer from the server side to parse Vertex/Edge objects automatically in the client-side.

                                  15 votes
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                                  • 13 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      1 comment  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                                    • 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
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                                      • 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.

                                        13 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          1 comment  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                                        • 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).

                                          10 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
                                          ← Previous 1
                                          • Don't see your idea?

                                          Azure Cosmos DB

                                          Feedback and Knowledge Base