Tableau api 无法将Tableau连接到emr上的presto

Tableau api 无法将Tableau连接到emr上的presto,tableau-api,emr,presto,Tableau Api,Emr,Presto,我无法将Tableau连接到EMR群集上的presto。 版本:Tableau 10、emr-5.3.0、Presto 0.157.1 我可以使用命令通过presto cli进行连接 [hadoop@ip-172-xx-yy-zz scripts]$ presto-cli presto> use hive.poc; presto:poc> show tables; Table ... 但是,当尝试使用Teradata ODBC连接器从tableau连接时,我无法启动

我无法将Tableau连接到EMR群集上的presto。 版本:Tableau 10、emr-5.3.0、Presto 0.157.1

我可以使用命令通过presto cli进行连接

[hadoop@ip-172-xx-yy-zz scripts]$ presto-cli
presto> use hive.poc;
presto:poc> show tables;
        Table
...
但是,当尝试使用Teradata ODBC连接器从tableau连接时,我无法启动。我得到的结果是错误“未指定目录”

但是,在检查prestoweb界面()上提供的java错误跟踪时,我得到了以下错误。它看起来更像是一个解析错误

com.facebook.presto.sql.parser.ParsingException: line 1:1: no viable alternative at input '{'
    at com.facebook.presto.sql.parser.SqlParser$1.syntaxError(SqlParser.java:45)
    at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:65)
    ... 60 more
提交的查询如下所示:

{"query":"select * from \"hive.poc\".\"information_schema\".\"tables\" WHERE table_schema LIKE 'default' AND table_name LIKE '*'","preparedStatements":{}}
如有任何帮助/提示,将不胜感激

注意:在EMR集群中,presto服务器在端口8889中可用,而不是在普通的8080中


谢谢大家!

默认情况下,EMR上的Presto使用配置单元作为其目录。尝试使用如下命令进入presto cli presto cli—目录配置单元


然后您应该能够访问所有表。在tableau中,您可能还必须将配置单元定义为目录

我也有同样的问题


使用rest客户机,我将提交的查询更改为只有SQL语句,没有json信封,并且它工作正常。它没有解决问题,但给出了一个解决方案的提示。

之所以会出现这种情况,是因为Tableau正在使用Teradata驱动程序(至少Tableau网站会告诉您安装这种驱动程序)。版本1.1.8的驱动程序仅与Presto 0.157t兼容(即Teradata版本0.157)

这是导致您看到的错误的特定拉取请求:。一个解决方案可能是在EMR上安装0.157t,但这需要比在EMR上旋转集群时简单地检查Presto框更多的工作

解决拉取请求5868引入的问题的解决方法:

在aws emr命令中,添加--configurations标志并指向本地json文件。例如:

aws emr create-cluster [...] --configurations file://./clusterConfiguration.json 
clusterConfiguration.json的内容为:

{
  "Classification": "presto-config",
  "Properties": {
    "presto.version": "0.148"
  }
}

这将presto的发布版本设置为0.148。这由Teradata驱动程序获取,然后使用0.157期望的旧负载

谢谢你的回答。我可以通过presto cli进行连接。我的问题是当试图从Tableau建立连接时。它无法识别蜂箱目录。您是否能够通过此修改连接?我无法使用Presto-0.148版本创建新集群,甚至无法按照您的建议指定配置文件。使用Presto版本0.148创建集群的唯一方法是使用emr-4.7集群。在创建它之后,我们仍然无法从Tableau连接。是的,这对我们有用。您不应该使用0.148创建集群,但应该告诉Presto将其版本字符串设置为0.148,即使您在EMR上使用的是0.157或0.166。因此,当驱动程序连接到集群时,他们读取版本字符串并“认为”他们正在连接到0.148。如果您按照上面的步骤操作,这应该会起作用。