Neo4j & SSIS – Connecting and executing Cypher in a Control Flow
Last Friday, Anabranch released the first beta version of it’s connector to Neo4j from SSIS. Aside from a post saying that it existed, I didn’t go into detail, so this is going to be a series of posts on how you can use your existing SSIS infrastructure with Neo4j.
Today we’re going to look at 2 parts of the connector, the Neo4j Connection Manager (CM) and the Execute Cypher Task (ECT). The CM is fundamental to all the controls, without it, you can’t connect to the database. I’ll go into what it does, settings etc in another post, but for now – it’s enough to know that it provides the connection. The ECT allows us to execute Cypher against a given connection manager.
** NOTE **
In version 1.0.0(beta) – the ECT will only work with the first CM you add to the package
This video covers the same topic as the text version below:
I’m going to develop this in Visual Studio 2017, at the time of writing – I found the 2019 SSIS packages to be a bit flakey, whereas the 2017 has been sturdy so far – from a ‘demo’ point of view though – the 2019 process is exactly the same after you have it all installed.
SETUP
If you’ve never developed against SSIS before, you’ll need a couple of things, firstly SSDT (specifically the Integration services bits), Visual Studio – I think the community edition should work, but I can’t confirm. You’ll also need the Anabranch Ssis Controls for Neo4j – assuming you’ve registered ( http://anabranch.co.uk/Projects/Neo4jSsis) and have the download link, you’ll want the 2017 x86 version of the controls – (for VS2019 as well!).
Download and install the controls. NB. You want to install these when Visual Studio isn’t running – as we’re in the heady world of the GAC here, and VS won’t find them unless it’s started with them there.
Do do this example yourself – you’ll also need a Neo4j database instance running, I’d recommend using the Neo4j Desktop as it makes it easier to manage the process.
Create your first package
1. Start up Visual Studio
2. Create a new Integration Services project
3. In the new Package.dtsx file, we need to add a Connection Manager. Right click on the bottom ‘Connection Managers’ bar and add a Neo4j connection – if you don’t see it – you might have to restart Visual Studio, or possibly your machine.
Then select the Neo4j Connection:
You’ll now see it in the ‘Connection Managers’ section:
Select it – and change the connection properties to ones that match your database instance – at the moment this is done via the properties window:
At this stage, we have a connection – but we’re not using it, so let’s add a task to execute:
Drag the ‘Execute Cypher Task’ to the Control Flow, and double click on it. Then add the following Cypher:
CREATE (:Node {Id:1})
Press OK
Then we can execute the task:
Once that’s done:
If we go to our Neo4j Database, we can run:
MATCH (n:Node) RETURN n
If we look at the ‘Id’ property – we can see it is ‘1’
So. Now we have an SSIS integration package executing against a Neo4j database.
These controls are currently in an open beta, to register to get the controls, please go to: http://bit.ly/neo4jssis
How could I pass over the variables as parameters to the “Execute Cypher Task”? I need to pass the “Full result set” assigned to the variable from “Execute SQL Task”, but I don’t see an option to do that.
Hey, if you can provide me with an example of what you mean I can investigate how to do it – at the moment it doesn’t support parameters – it’s planned but I need examples to work from!
Hi, I have installed VS 2019 and installed 2017 x86 but I am not able to see the Neo4J Components. Is there anything what I miss? Thanks.
I’ve not tested with VS2019 – please email me directly – you should have the email, and we can have a more fruitful discussion about what needs to be done.
Me Too
are you find any solution
Hi, I have installed VS 2019 and installed 2017 x86 but I am not able to see the Neo4J Components. Is there anything what I miss? Thanks.
Hi Ali,
Have you tried the VS2019 x86 version?