Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Tableau connector cannot run any query over nodes #148

Closed
2 tasks done
jmlingeman opened this issue Feb 3, 2022 · 3 comments
Closed
2 tasks done

[BUG] Tableau connector cannot run any query over nodes #148

jmlingeman opened this issue Feb 3, 2022 · 3 comments
Assignees
Labels
bug Something isn't working

Comments

@jmlingeman
Copy link

jmlingeman commented Feb 3, 2022

Describe the bug

Tableau, using the provided TACO file and JDBC connector, cannot execute any queries over tables representing nodes in the graph. Queries over tables representing edges seem to work fine.

This happens in both "Live" and "Extract" modes in Tableau. According to the docs, Extract mode should be supported.

A Parse Error is thrown when attempting to run queries over node tables. When attempting to run Custom SQL that is simplified (i.e., SELECT city.name from gremlin.city) it results in a "Connection Error".

This image shows the error when a node table is dragged into the main tableau screen and "Update Now" is clicked to populate the interface with data from the table:
Screen Shot 2022-02-03 at 5 26 55 PM

This image shows the error from a simple custom SQL query:
Screen Shot 2022-02-03 at 5 29 58 PM

Steps to Reproduce

  • Is the JDBC Driver being used in a BI tool?

If being used in BI Tool, fill in:

  1. What vesion of the JDBC Driver are you using? 1.1.0
  2. What BI Tool are you using? Tableau
  3. What version of the BI tool are you using? 2021.4.3
  4. What Java version are you using? OpenJDK 17
  5. Please provide steps to reproduce bug from initial launch of BI tool
    1. Start ssh tunnel as per instructions
    2. Open Tableau
    3. Connect to server
    4. Watch Tableau populate tables with node and edge tables
    5. Attempt to run a query on any node table using either custom SQL or by asking it to populate the interface with data
  6. If bug occurred during query execution attach the SQL
    1. SELECT "city"."name" from "gremlin"."city"
  7. Attach debug logs if applicable/possible (please ensure it doesn't contain any sensitive information)
    1. Tableau logs seem very unhelpful, but happy to attach if requested.

Expected behavior

Expect Tableau to populate the interface with data from the node table and allow me to use it to do other things.

Environment

Please add the following information to your report:

  • OS: macOS Monterey
  • Version 12.1

Additional Context

Queries over edge tables work just fine. This led me to believe it was an issue with the cardinality of the properties in the node tables, since Neptune defaults to Cardinality.set for node properties. However after manually assigning all properties in the graph to be of Cardinality.single, this does not seem to be the case.

@jmlingeman jmlingeman added the bug Something isn't working label Feb 3, 2022
@lyndonbauto
Copy link
Contributor

Hey @jmlingeman, I am looking at this right now.

First off, custom sql doesn't work because it internally uses embedded SQL, though should work in extract mode.

I am wondering if your issue has to do with the - and -> in your SQL. I have never seen this naming, and it would make sense why the error is in your vertex table but not edge table.

Have you tried any other graphs?

@xiazcy
Copy link
Contributor

xiazcy commented Mar 25, 2022

Hi @jmlingeman, we have taken a closer look at your issue.

Queries over a node/vertex table should work, however, we did track down a bug that caused Error parsing in Tableau (see PR #160). This metadata bug will cause Error parsing in Tableau when it tries to retrieve data from one table whose name is part of other tables, as Tableau will generate a SELECT query with columns from all of those tables, which may lead to a CalciteContextException: Column 'y' not found in table 'x' (found in Tableau jprotocolserver logs), when a non-existent column name is retrieved . If your bug also has the exception in its log, this should fix it.

Please also let us know if this is not the case.

Unfortunately, custom SQL in Tableau is not something we support, due to its usage of embedded SQL, and it actually does not work in live or extract mode. We will make this more clearer in our limitation document. Depending on the use case, purely issuing SQL commands to live database through the driver does work through DbVisualizer, with instructions here https://github.com/aws/amazon-neptune-jdbc-driver/blob/develop/markdown/bi-tools/DbVisualizer.md.

Thank you!

@Cole-Greer
Copy link
Contributor

This appears to have been resolved with #160. Please reopen if there are any remaining issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants