Neo4j Apoc : A Blessing For Developer

Hello Folks,

As we know about Neo4j, it pulls out developers life from the trouble and black & white screen of the databases. It doesn’t give freedom from the old databases also provides best support with it’s predefined procedures.

As we know that in the Relational Database, Procedure provide advantages of better performance, scalability, productivity, ease of use and security and Neo4j also provides some amazing tool which can perform as mention above.

Yes, I am talking about the Apoc and using of Apoc with Neo4j, is a blessing for the developers. It provides many predefined procedures or user defined functions/views so that we can easily use it and improve our productivity in very simple manner.

APOC is stands for ‘Awesome Procedure On Cypher‘. APOC is a library of procedure for the various areas. It is introduce with the Neo4j 3.0

There are many areas where we use APOC and the lit of areas are :

  • Graph Algorithm
  • Metadata
  • Manual indexes and relationship indexes
  • Full text search
  • Integration with other databases like MongoDB, ElasticSearch, Cassandra and relational databases
  • Path expansion
  • Import and export
  • date and time function
  • Loading of XML and JSON from APIs and files
  • String and text function
  • Concurrent and batched Cypher Execution
  • spatial Function and Lock
  • Collection and map utilities

When you are using APOC there are two ways to get it and use with Neo4j :

First Way :

  • Download binary jar from the latest release [Hit Here]
  • Put that into your $Neo4j_Home/plugins/ folder
  • Restart your Neo4j Server.

Second Way :

  • Clone neo4j-apoc-procedure from Hit Here.
  • Go to the folder with ‘cd neo4j-apoc-procedures’.
  • Now create a jar with the help of command ‘mvn clean compile install’.
  • Now copy your jar file from target to $Neo4j_Home/plugins/ folder.[cp target/apoc-1.0.0-SNAPSHOT.jar $Neo4j_Home/plugins/]
  • Restart your Neo4j Server.

Now you are ready to use APOC with Neo4j. Today we will discuss about the data migration between the other data base to Neo4.

We use many databases for storing the data. But when we have a large amount of data and tables that time it becomes so hard to make query and execute them on the database. We have to be extra cautious to perform the task and we get bored to see same screen without any fun 🙂 . When we worked on any other database and think to use neo4j that time we face the issue for migrating data into Neo4j. We are going to discuss migrating data from some famous and use databases.

Oracle :

We are in the last database to migrate data to Neo4j but as obvious not least. We can download JDBC .jar file (Download) and keep it in the $Neo4j_Home/plugins and restart the Neo4j. We can provide URL in the $Neo4j_Home/conf/neo4j.conf as :

  • After restarting the Neo4j server we are set for migrating the data from the Oracle to Neo4j. We fetch the data from the Oracle where we have a table with name employee_details to Neo4j.Now we load the driver with the APOC.

screenshot-from-2016-09-10-123634

  • Let’s create Index, Constraints and Relation the data.

Screenshot from 2016-09-10 14:53:00.png

  • Now we will load data and perform Merge and Create operation so that we can create the node and relationship between the node.

screenshot-from-2016-09-10-145400

  • We can see Relation Graph and it will look something like this :

screenshot-from-2016-09-10-145506

MYSQL :

We want to migrate data from the MYSQL as before we have to download JDBC .jar file (Download) and keep it in the $Neo4j_Home/plugins and update $Neo4j_Home/conf/neo4j.conf as:

Restart the Neo4j server and we are set for migrating the data from the Cassandra to Neo4j.

  • We hit the MySQL and start fetching data and perform count operation.

Screenshot from 2016-09-10 12:36:34 (copy).png

PostgreSQL :

When we use PostgreSQL, we have to download JDBC .jar file (Download) and keep it in the $Neo4j_Home/plugins and restart the Neo4j. After restarting the Neo4j server we are set for migrating the data from the PostgreSQL to Neo4j.

  • Now we load the driver with the APOC.
  • Now we create the call for fetching the data from the PostgreSQL where we have a table with name employee_details to Neo4j.
  • If we don’t want to use these step than we can provide URL in the $Neo4j_Home/conf/neo4j.conf and restart the server :

We can now fetch data direct. We don’t need to load driver also.

  • Create Nodes and Relation in the data.

Screenshot from 2016-09-09 11:09:37.png

screenshot-from-2016-09-09-010005

Cassandra :

Now we migrate data from the Cassandra to Neo4j. Now we first import data into the cassandra if we don’t have data in the cassandra or we can use it for test also.

  • We have to run following command for setting up initial data in the cassandra :
  • We have set our cassandra database with the data. We have to download JDBC .jar file (Download) and keep it in the $Neo4j_Home/plugins. We can provide URL in the $Neo4j_Home/conf/neo4j.conf as :

Restart the Neo4j server and we are set for migrating the data from the Cassandra to Neo4j.

  • We hit the cassandra and start fetching data and perform count operation.

screenshot-from-2016-09-09-130005

  • Let’s create Index, Constraints and Relation the data.

Screenshot from 2016-09-09 13:12:25.png

  • Now we will load data and perform Merge and Create operation so that we can create the node and relationship between the node.

Screenshot from 2016-09-09 13:13:28.png

  • We can see Relation Graph and it will look something like this :

Performed.png

Screenshot from 2016-09-09 14:11:41.png

After importing the data in Neo4j, we have to thing about the sync of data. We can use schedule process which can be timebase and automatically sync data between the databases. We can also used event based integration where we will defined the event at which we want to update the database.

Note : As we discuss I want to notify again if you do not update driver name into $Neo4j_Home/conf/neo4j.conf then you have to load driver in Neo4j otherwise you have to provide only driver name into the query.

This is an basic example for using the APOC and it is also a first step when you start using Neo4j and want to replace it with your old databases that time you don’t want to use loose your data. After migrating the data you are ready to use Neo4j with your data which was exists in the old databases.

If You have any questions you can contact me here or on Twitter: @anuragknoldus

KNOLDUS-advt-sticker

Written by 

Anurag is the Sr. Software Consultant @ Knoldus Software LLP. In his 3 years of experience, he has become the developer with proven experience in architecting and developing web applications.

11 thoughts on “Neo4j Apoc : A Blessing For Developer

  1. […] Apoc : A Blessing For Developer {$excerpt:n} submitted by /u/srivastava_anurag [link] [comments] Source: […] […] Apoc : A Blessing For Developer {$excerpt:n} submitted by /u/srivastava_anurag [link] [comments] Source: […] Follow this […]

  2. […] Apoc : A Blessing For Developer {$excerpt:n} submitted by /u/srivastava_anurag [link] [comments] Source: […] […] Apoc : A Blessing For Developer {$excerpt:n} submitted by /u/srivastava_anurag [link] [comments] Source: […] Follow this […]

  3. […] Apoc : A Blessing For Developer {$excerpt:n} submitted by /u/srivastava_anurag [link] [comments] Source: […] […] Apoc : A Blessing For Developer {$excerpt:n} submitted by /u/srivastava_anurag [link] [comments] Source: […] Follow this […]

  4. […] Apoc : A Blessing For Developer {$excerpt:n} submitted by /u/srivastava_anurag [link] [comments] Source: […] […] Apoc : A Blessing For Developer {$excerpt:n} submitted by /u/srivastava_anurag [link] [comments] Source: […] Follow this […]

Leave a Reply

%d bloggers like this: