Giter VIP home page Giter VIP logo

neo4j-tableau's Introduction

Neo4j - Tableau Integration

Neo4j Tableau Web Data Connector v2.3

Since Tableau 9.1 the Web Data Connector SDK can be used to connect Tableau to any web data accessible over HTTP. You can follow the WDC Tutorial to read about the details here:

This Neo4j Tableau WDC implements WDC version 2.3.0 and can be used with Tableau v10.4 or later and Neo4j v3.0.4 or later:

The Neo4j WDC uses the Neo4j Driver for Javascript which implements the Bolt network protocol:

The Neo4j WDC v2.3 can be used directly via GitHub Page URL:

New in Version 2.3

  1. Neo4j Temporal values https://neo4j.com/docs/developer-manual/current/cypher/syntax/temporal/

    • converts Neo4j Date and DateTime values to Tableau Date or DateTime

    • converts Neo4j Time values to Tableau Integer (seconds of the day)

    • doesn’t convert Neo4j Duration values but creates separate columns for all parts (months, days, seconds, nanoseconds)

  2. Neo4j Spatial values https://neo4j.com/docs/developer-manual/current/cypher/syntax/spatial/

    • converts Neo4j Point values to Tableau Geometry (GeoJSON)

Connect from Tableau

Start Tableau Desktop and choose to connect a Web Data Connector:

tableau wdc connect

Enter the URL of the hosted Neo4jWdc2.html page in the selection popup:

tableau neo4j wdc connect

Now the Neo4jWdc2 form appears. The WDC consists of a HTML page including a form and JavaScript code to leverage the Tableau WDC API and to processes up to five Cypher queries against Neo4j. The result sets will be converted into tables and then passed into the Tableau workbook.

tableau neo4j wdc form

Connector Parameters

  1. Data Source Name: the name for the data source in the Tableau Workbook

  2. Neo4j URL: URL to connect a Neo4j server, usually bolt://<server> when default Bolt port or bolt://<server>:<port>

  3. Username/Password: authentication credentials

  4. Inspect Rows for Schema: number of sample rows (default: 1000) to inspect JSON result set (can contain complex objects) from Cypher queries for used properties, important to build the table schema with columns for Tableau; set to 1 when first row includes all properties

  5. Cypher Queries: a list to add up to 5 Cypher queries for execution; use a table name per query in left column; tables can then be joined in Tableau data wizard later

The resulting tables can be prepared in the Tableau data wizard:

tableau neo4j wdc wizard

After all queries are executed the created and loaded Tableau Workbook will appear and shows the data source: Neo4j, the name we’ve entered, and the dimensions and measures from the Cypher queries' result sets.

tableau neo4j analysis

Now we can easily start analyzing the Data from Neo4j.

TDE File Generator Extension

We also provide a Neo4j Server extension to generate TDE files to be used with Tableau Desktop and Server.

Read more about that approach in our documentation.

Create TDE file via GET request

To create a TDE from the results of a Neo4j Cypher query, pass for instance the following query:

MATCH (n:Movie) RETURN n

It will generate and return a TDE file as download for usage in Tableau.

Create TDE file via POST request

You can use same endpoint to pass a POST request and upload a text file (ASCII) containing one Cypher query:

curl -H "Content-Type: text/plain" -X POST --user neo4j:neo4j --data-ascii @/Users/username/Desktop/cypher-query.txt -o result.tde http://localhost:7474/export/tableau/tde

The resulting TDE file specified with option -o outputfile is then stored locally.

Versions

  • This code has been tested on Neo4j 3.0 versions.

  • This code has been tested against Tableau 10.1.

  • The TDE format should be able to be read by Tableau versions 7 and higher.

neo4j-tableau's People

Contributors

albertodelazzari avatar davidfauth avatar jexp avatar moxious avatar ralfbecher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neo4j-tableau's Issues

Currently not usable

Hey,
currently I'm using Neo4J 1.1.8 Desktop with a database version of neo4j 3.4.1:
image
However, I was not able to use the connector (3.0.0) giving the following setups:

  • using the github.io version
  • using my own localhost version
  • using a dockerized Apache deployed version in our intranet
    I'm guessing that the error concerns the QT-Webtoolkit browser security settings, but I have no idea how to activate the development mode of the Webtoolkit window in tableau or extract the logs of the application.
    This is a screenshot with my detailed setup:
    image
    This is the error message:
    image
    Any ideas?

Thx for your help!

neo4j v4.0.3: Unknown Bolt protocol version: 0

I've tried to use this connector with neo4j v4.0.3 and got the next error. Could you clarify, is version 4.0.3 of neo4j will be supported?

image

Also, I've tried to use it with v3.5.17 and all worked fine.

TDE query segfaults server on 3.3.0 enterprise

This query:

curl -v --user 'neo4j:admin' 'http://localhost:7474/export/tableau/tde/MATCH%20%28n%3AMovie%29%20RETURN%20n'

Produces a segfault on neo4j server (enterprise) 3.3.0.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00000000000041fe, pid=1, tid=0x00007fa4acab4ae8
#
# JRE version: OpenJDK Runtime Environment (8.0_131-b11) (build 1.8.0_131-b11)
# Java VM: OpenJDK 64-Bit Server VM (25.131-b11 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea 3.4.0
# Distribution: Custom build (Fri Jun 16 13:41:54 GMT 2017)
# Problematic frame:
# C  0x00000000000041fe
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /var/lib/neo4j/hs_err_pid1.log
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
#   http://icedtea.classpath.org/bugzilla
#

Under the following configuration:

dbms.unmanaged_extension_classes=org.neo4j.unmanaged.extension.tableau=/export

epoch time conversion wrongly handled

I have stored the date value in epoch format in one of the neo4j nodes and while fetching that in tableau using this WDC, it tries convert into integer and giving me wrong(negative number) values.

Please help me to fix this.

WebSocket connection failure.

When i use the WDC. It got below error:

WebSocket connection failure. Due to security constraints in your web browser, the reason for the failure is not available to this Neo4j Driver. Please use your browsers development console to determine the root cause of the failure. Common reasons include the database being unavailable, using the wrong connection URL or temporary network problems. If you have enabled encryption, ensure your browser is configured to trust the certificate Neo4j is configured to use. WebSocket readyState is: 3

Can u guide me to solve it.

Neo4j Credential Issue

WDC connector for neo4j is not working without credential. In my case neo4j not having any authentication.

build.sh file does not build due to zip error

In the extension subdir, when running ./build.sh:

[INFO] --- maven-install-plugin:2.4:install (default-install) @ neo4j-unmanaged-extension-tableau ---
[INFO] Installing /Users/davidallen/hax/neo4j-tableau/extension/target/neo4j-unmanaged-extension-tableau-3.0.jar to /Users/davidallen/.m2/repository/org/neo4j/example/neo4j-unmanaged-extension-tableau/3.0/neo4j-unmanaged-extension-tableau-3.0.jar
[INFO] Installing /Users/davidallen/hax/neo4j-tableau/extension/pom.xml to /Users/davidallen/.m2/repository/org/neo4j/example/neo4j-unmanaged-extension-tableau/3.0/neo4j-unmanaged-extension-tableau-3.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17.970 s
[INFO] Finished at: 2017-12-27T10:14:37-05:00
[INFO] Final Memory: 40M/324M
[INFO] ------------------------------------------------------------------------
	zip warning:   first full name: jars/neo4j-unmanaged-extension-tableau-3.0.jar
                      second full name: target/neo4j-unmanaged-extension-tableau-3.0.jar
                     name in zip file repeated: neo4j-unmanaged-extension-tableau-3.0.jar
                     this may be a result of using -j

Fix is to change the last line of build.sh to the following to exclude the second copy of the unmanaged extension jar. Will hopefully soon submit a PR when I can.

zip -rj neo4j-tableau-3.0.zip jars/commons*.jar jars/jna*.jar jars/tableau*.jar target/neo4j-unmanaged-extension-tableau-*.jar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.