You can find the code and documentation in our neo4j-contrib/neo4j-tableau GitHub Repository.
This connector allows you to make your graph data accessible in Tableau, which is an integration many users of Neo4j asked for.
In most cases, graph query results from Neo4j are projected into a tabular format which is then made available within Tableau. The supported means are:
- Integration with the Tableau Web Data Connector
- Neo4j Server extension to generate and publish TDE files from Cypher results
- Standalone tool to generate and publish TDE files from JDBC, e.g., Neo4j-JDBC
Tableau Web Data Connector
Since version 9.1, Tableau offers a REST API connector that can be used to acquire data from remote sources. It requires a certain data format and form of interaction.
The Neo4j Tableau Web Data Connector is a proxy between Tableau and Neo4j and wraps the execution of a Cypher query to provide the results to Tableau.
Within our project, we provide a small web application that you can run locally or deploy somewhere which is used for this purpose.
It is even possible to run the Web Data Connector (WDC) from GitHub Pages.
Opening its URL from within Tableau, allows us to configure the Neo4j connection information and the Cypher query you want to run.
After setting up the Tableau component for WDC you can connect to that app from Tableau and pull the data into a workbook. The connection details are stored in the workbook, so you can use those to refresh the data later.
The details are outlined in our documentation.
The next two options are provided directly from Ralf for higher volume and lower-level integration with Tableau. Please contact him directly if you’re interested to use either of them. If you are planning to use Neo4j with an enterprise license, our field engineering team can also help you with those.
TDE File Generator Extension
Another option is to generate and publish Tableau Data Extract (TDE) files directly to your server. For that purpose, a Neo4j Server extension is available, that you provide an arbitrary Cypher query to. The extension then generates a TDE file from the tabular Cypher results on the fly to be loaded into Tableau or published to a Tableau Server project.
After setting up your Neo4j server to run this extension, it’s as easy as adding the Cypher query as a URL-encoded payload to the URL of the extension. (Going forward it will also be possible to POST one or more queries to the extension.)
For instance to generate and download the TDE file:
If you configured your Tableau server credentials in
tableau-server.propertiesyou can use the extension to publish to your Tableau server directly:
The auto-publication is a powerful feature which will be extended in the future to schedule or trigger automatic publication in the background so that your Tableau environment always works with the latest graph data.
Find more details on how to get started with the TDE file generation in the documentation.
There is also the option of querying Neo4j via our Neo4j-JDBC driver and generating TDE files from those results using a stand-alone tool from TIQ. More details on that can be found in the Tableau section of the JDBC docs.
As this is a first release, we need your feedback to make it better. If you are using Tableau at work, please give our integration a try and see if the two approaches work for you.
We tested the integration with Tableau 9 and 10 and it works with both. Tableau 10, which was just released, contains a new Web Data Connector 2.0 API which allows for a better integration and will be integrated within this project in the near future, utilizing Neo4j’s Bolt binary protocol and multi-table/statement configuration.
We are also interested in feedback on the documentation and would of course be thrilled to hear about any use cases where you integrate your Neo4j graph data with Tableau. Please raise an GitHub issue or email us at email@example.com.
If you need dedicated support with any of these integrations, feel free to reach out to our partner TIQ Solutions or us for individual support or join our neo4j-users Discord channel and ask in the #neo4j-tableau channel.
Big thanks again to Ralf Becher, who did all the work of putting the pieces together and making them work.
Dave Fauth & Michael Hunger