Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Migrating from Neo4J to DataStax Graph DB (DSE)

We have developed custom and proprietary Software for Route Optimization, using Neo4J as our Graph DB. We also developed few plugins and unmanaged Extensions in Java, that implement specific Business Logic whenever search is done on the Graph. Since we are facing severe Performance Issues with Neo4J, we are considering to migrate our proprietary Software from Neo4J to DataStaX DSE 5.0 Graph. But would like to evaluate DSE Graph initially.

We have few specific questions regarding Migration Path from Neo4J --> DataStax Graph DB

  1. How to migrate data from Neo4J to DataStax Graph DB?
  2. What are the changes we need to make in Neo4J Cypher Code in our Application so that it will work on DataStax DSE Graph DB?
  3. We have developed some Plugins/Unmanaged Extensions in Neo4J using Java which have lots of core business rules incorporated into Neo4J. Our business logic code in Java gets called whenever Neo4J searches/traverses graph database. Does DataStax DSE Graph support something similar to plugins and/or unmanaged Extensions?

We would like to see what it takes to migrate our existing Neo4J Java code to DataStax DSE Graph code. We need to determine the level of effort would involved to do this exercise before we could be up and running on DataStax DSE Graph.

like image 962
Auro Avatar asked Jul 28 '16 20:07

Auro


People also ask

Is DataStax a graph database?

DataStax Graph (DSG) is a real-time distributed graph database, tightly integrated in DataStax's distribution of Apache Cassandra®. It is optimized for fast data storage and traversals, zero downtime, and analysis of complex, disparate, and related datasets.

Is Cassandra graph database?

The combination of all the components comprising Apache Cassandra and DataStax Graph Database makes Cassandra a graphical database. Therefore, you can retrieve complex data with a detailed and easy-to-read representation. Additionally, these components make Cassandra the most popular database.

Why DSE graph?

In short, DSE Graph enables you to identify and analyze hidden relationships between connected data and build powerful modern applications.

What is DataStax enterprise?

DataStax Enterprise (DSE), built on Apache Cassandra™, is the world's most scalable database, well known for 100% uptime, unmatched low latency, and the ability to handle massive data at planetary scale.


1 Answers

This might help: http://www.tinkerpop.com/docs/3.0.0.M1/#neo4j-gremlin

You can essentially connect to your Neo4J instance via the gremlin console, get the data you'd like, and write it out to a file that can be loaded into DSE Graph. That looks something like

graph.io(IoCore.gryo()).writeGraph("tinkerpop-modern.kryo"); 

See: http://www.tinkerpop.com/docs/3.0.0.M1/#gremlin-kryo

There's a lot to your question, especially around design, that can't be accurately answered in a StackOverflow post since a lot of it is specific to your use case. I suggest reaching out to DataStax directly for those questions, they'll be happy to help. That being said, I will be upfront with you, Neo4J and DSE Graph are very different systems. As such, you may have to rethink schema design as well as application code design.

If you're already familiar with Cassandra, that helps quite a bit around the architecture side. Even so, I do recommend checking out some of the free training around DSE Graph, specifically: https://academy.datastax.com/courses/ds330-datastax-enterprise-graph

like image 198
MarcintheCloud Avatar answered Oct 05 '22 13:10

MarcintheCloud