Earlier quoted context omitted.
Sql syntax for such queries is super awkward with tones of gottyas, not sure how performance compares
There's admittedly some ongoing work on extending the SQL standard syntax with some extra sugar for "Property Graph Query". But there's nothing wrong technically with just using basic SQL syntax, it's just a matter of getting it to work. Performance will vary depending on query optimizer, any INDEX definitions, etc. and is quite a separate concern. Overall, graph databases are so general as a model that writing slow…
Neo4j raises $325M series F
121–130 of 135 posts
Re: Neo4j raises $325M series F
#122Graph DBs work if you know your relationships of interest ahead of time, and are happy to have them baked into your dataset. With relational databases, you can join on anything anywhen, so you can explore new relationships as you go.
Why isn’t this sufficient to explore novel relationships?
Re: Neo4j raises $325M series F
#123We did evaluate Neo4j, but put down due to its complex query language (cypher) and slowness. It was really an awkward language, super awkward.
We also evaluated arangodb and we found it much better than Neo4j. Performance was good and its query language was better too.
What we realised in the process is, using graph databases is more of a cultural transformation as well. SQL is much well understood, well adopted and well supported by community.
Ultimately we implemented the use case in Postgres, and thank God we did it that way. IMO, we can still get all the benefits of graphs we SQL databases with little efforts.
Re: Neo4j raises $325M series F
#124Earlier quoted context omitted.
GraphQL has been such a bad name to deal with. I've seen so much "we need a graph, so isn't graphQL a good idea?" or "this is a graph database, so doing graphQL on it will be way easier & more natural than on a SQL db, right?". Even from technical and semi-technical people.
This always annoyed me more than it should. It's also torturing the definition of "query language." There is no equivalent of "join", or any other typical query feature such as aggregation, grouping, sorting, filtering. GraphQL has as much to do with graphs or query languages as my smart TV has to do with intelligence. It's RPC, but RPC fell out of fashion when SOAP/WSDL/XML died.
Re: Neo4j raises $325M series F
#125What this tells me is that the graph db space has a lot of room in it for someone to come along and make a kick ass product, because honestly every time I've had a problem a graph db can solve I remember I basically only have a few mediocre choices to choose from. Neo4J has been very meh in my experience, but they are the biggest.
Do you have any opinions on ArangoDB or Dgraph? My new tech lead is talking about switching from MongoDB to one of those.
Re: Neo4j raises $325M series F
#126According to Crunchbase, Neo4j was founded in 2007! Is this correct? 14 years in and they are still raising VC money!?
and the sheer size of these rounds always astonishes me for very specialized software products. 300 million bucks, that's enough to build a death star, what do they do with all of the cash
Re: Neo4j raises $325M series F
#127If you are using relational db you can use recursion to achieve the same effect without having bring n4j and cipher into your stack.
A simple example of implementing a hierarchical graph data structure on postgres and exposing it via graphql can be found on the hasura blog.
https://hasura.io/blog/authorization-rules-for-multi-tenant-...
Re: Neo4j raises $325M series F
#128Neo4j can be a useful supplement to apps that have data models that include graphs. If you are using relational db you can use recursion to achieve the same effect without having bring n4j and cipher into your stack. A simple example of implementing a hierarchical graph data structure on postgres and exposing it via graphql can be found on the hasura blog. https://hasura.io/blog/authorization-rules-for-multi-tenant-.…
Has anyone tried that? Would love any notes/pointers!
Join data across the two to get the best of both basically. Hasura doesn't support Neo4j natively yet, but maybe using Neo4j's graphql wrapper as an input to Hasura perhaps?
Re: Neo4j raises $325M series F
#129Earlier quoted context omitted.
Sql syntax for such queries is super awkward with tones of gottyas, not sure how performance compares
There's admittedly some ongoing work on extending the SQL standard syntax with some extra sugar for "Property Graph Query". But there's nothing wrong technically with just using basic SQL syntax, it's just a matter of getting it to work. Performance will vary depending on query optimizer, any INDEX definitions, etc. and is quite a separate concern. Overall, graph databases are so general as a model that writing slow…
To summarize this post[0] by someone involved with the standards:
- GQL (ISO/IEC 39075) is a full database language to create and manage property graphs and create, read, update, and delete nodes and edges (or vertices and relationships)
- SQL/PGQ (ISO/IEC 9075-16) is a new add-on part of the SQL standards which introduces the capabilities to create property graph views on top of existing tables in an SQL database, as well as the ability to query property graphs using a GRAPH_TABLE function in an SQL FROM clause
- The input to the SQL/PGQ GRAPH_TABLE function is a property graph query, sometimes referred to as Graph Pattern Matching or GPM. Graph Pattern Matching is common between SQL/PGQ and GQL. That is, the syntax accepted in a GRAPH_TABLE function in an SQL FROM clause is identical to the syntax in a GQL graph query. Because GPM is the same in both draft standards, changes to GPM for SQL/PGQ also apply to the GPM portions of the GQL specification.
---
I also just came across the Apache AGE project[1] which basically allows you right now to extend PostgreSQL DBs with property graph capabilities and enables full(?) use of Cypher/GQL.
[0] http://www.jcc.com/resources/jcc-blogs-menu/blog-database-dr...