Azure Cosmos DB: Graph API

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

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

  1. 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!

    1 vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)

      We’ll send you updates on this idea

      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
    • 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.

      2 votes
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)

        We’ll send you updates on this idea

        0 comments  ·  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).

        3 votes
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)

          We’ll send you updates on this idea

          0 comments  ·  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.

          6 votes
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)

            We’ll send you updates on this idea

            0 comments  ·  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.

            3 votes
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)

              We’ll send you updates on this idea

              0 comments  ·  Flag idea as inappropriate…  ·  Admin →
            • Support for "has" method with non ASCII property name

              I expect to support non ASCII letters in query.

              It is possible to add a property with non ASCII property name.
              e.g. (歳 means "age")

              g.addV().property('歳', 45).property('age', 45)

              {"id":"e063ebdc-f9fd-4e5e-bfd4-b9a6fb425128",
              "label":"vertex",
              "type":"vertex",
              "properties":{
              "歳":[{"id":"71f4d6cc-7e44-4a07-b5db-7f762cf2e964","value":45}],
              "age":[{"id":"691c9227-4da9-4b64-b481-128ee64d1cab","value":45}]}}

              but this query occurs an exception.

              g.V().has('歳', eq(45))

              IndexOutOfRangeException

              g.V().has('age', eq(45))

              {"id":"e063ebdc-f9fd-4e5e-bfd4-b9a6fb425128",
              "label":"vertex",
              "type":"vertex",
              "properties":{
              "歳":[{"id":"71f4d6cc-7e44-4a07-b5db-7f762cf2e964","value":45}],
              "age":[{"id":"691c9227-4da9-4b64-b481-128ee64d1cab","value":45}]}}

              2 votes
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)

                We’ll send you updates on this idea

                0 comments  ·  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.

                5 votes
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)

                  We’ll send you updates on this idea

                  1 comment  ·  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.

                  4 votes
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)

                    We’ll send you updates on this idea

                    0 comments  ·  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/)

                    13 votes
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)

                      We’ll send you updates on this idea

                      0 comments  ·  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

                      23 votes
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)

                        We’ll send you updates on this idea

                        2 comments  ·  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)

                        17 votes
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)

                          We’ll send you updates on this idea

                          4 comments  ·  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…

                          30 votes
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)

                            We’ll send you updates on this idea

                            3 comments  ·  Flag idea as inappropriate…  ·  Admin →
                          • 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.

                            36 votes
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)

                              We’ll send you updates on this idea

                              2 comments  ·  Flag idea as inappropriate…  ·  Admin →
                            • Implement a graphql provider

                              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.

                              51 votes
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)

                                We’ll send you updates on this idea

                                2 comments  ·  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

                                23 votes
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)

                                  We’ll send you updates on this idea

                                  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                                • Don't see your idea?

                                Azure Cosmos DB: Graph API

                                Feedback and Knowledge Base