Integrate Neo4j with Apache Zeppelin

This autumn I’ve attended couple of conferences. It’s always interesting to learn about new tools popping up. One that took my attention is Apache Zeppelin. Zeppelin is a notebook style application focussing on data analytics. I’ll show in this article how Zeppelin can be used to access data residing in your favourite graph database Neo4j.

quick hint: neo4j backup via ssh

Neo4j Enterprise edition ships with a feature to take consistent backups while the database is up and running. Using config option dbms.backup.address you can expose the port to the outside. However that port should not be exposed to public networks for two reasons. First the backup is transferred unencrypted and second no authentication is used.… Continue reading quick hint: neo4j backup via ssh

`LOAD CSV` without csv – introducing neo4j-csv-firehose

This blog post quickly introduces one of my side projects called neo4j-csv-firehose. The goal is to enrich Cypher’s great `LOAD CSV` command by adding support for non-csv datasources. For now there’s the capability to use jdbc datasources. In future other sources might be added – think of json, xml, … It features three deployment modes:… Continue reading `LOAD CSV` without csv – introducing neo4j-csv-firehose

Neo4j cluster and firewalls

This article summarizes the required and optional communication channels for a Neo4j enterprise cluster and provides some sample rules. For the firewall rules I’m using Ubuntu’s ufw package. As a sample setup we assume the following servers. All of them have 2 network interfaces, eth0 is for communication with outside world, eth1 is for cluster… Continue reading Neo4j cluster and firewalls

neo4j and haproxy: some best practices and tricks

TL;DR The goal of that blog post is to provide a reasonable haproxy configuration suitable for most neo4j clusters. It covers the Neo4j specific needs (authentication, stickyness, request routing) suitable for typically deployments. Some words for introduction When running a Neo4j cluster you typically want to front it with a load balancer. The load balancer… Continue reading neo4j and haproxy: some best practices and tricks

Cypher fun: finding the position of an element in an array

At a onsite workshop with a new potential customer in wonderful Zurich I was challenged with a requirement I’ve never had in the last few years with Cypher. Since I cannot disclose any details of the use case or the data used let’s create an artificial example with a similar structure: a restaurant has several rooms each… Continue reading Cypher fun: finding the position of an element in an array

getting insight in Neo4j’s JMX beans when running embedded

Neo4j exposes a lot of valuable information via JMX. Sometimes you want to gain some insight in some JMX beans when running Neo4j in embedded mode. For this it’s crucial to have the neo4j-jmx-[version].jar file on the classpath. The following short Groovy script demos this by using the @Grab annotation to fetch dependencies: [gist id=”9117489″]… Continue reading getting insight in Neo4j’s JMX beans when running embedded

quick tooling tip for hacking Cypher statements – Linux only

When developing Cypher statements for a Neo4j based application there are multiple ways to do this. A lot of people (including myself) love the new Neo4j browser shipped with 2.0 and subsequent releases. This is a nicely built locally running web application running in your browser. At the top users can easily type their Cypher… Continue reading quick tooling tip for hacking Cypher statements – Linux only