2017-01-30 19 views
0

TableauをEMRクラスタで事前に接続することはできません。 バージョン:タブロー10、EMR-5.3.0、プレスト0.157.1私はコマンドTableauをemrのprestoに接続できません

[[email protected] scripts]$ presto-cli 
presto> use hive.poc; 
presto:poc> show tables; 
     Table 
... 

を使用してプレスト-CLI経由で接続することができるが、私は、タブローから接続しようとしてablewhenないのです

Teradata ODBCコネクターを使用します。結果として「カタログが指定されていません」というエラーが表示されます。

しかし、Presto Webインターフェイス(http://ec2-aaa-bbb-ccc-ddd.eee.compute.amazonaws.com:8889/query.html?20170130_165412_00329_5gbba)で入手できるjavaエラーのトレースを調べると、次のエラーが発生します。これは、解析エラーのように見えます。

{"query":"select * from \"hive.poc\".\"information_schema\".\"tables\" WHERE table_schema LIKE 'default' AND table_name LIKE '*'","preparedStatements":{}} 

すべてのヘルプ/ヒントが理解されるであろう。

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 

は、送信されたクエリは、以下の通りでした。

注:EMRクラスタ内、プレストサーバがない通常で8080

ありがとう、ポート8889で利用可能です!

答えて

0

EMRのPrestoは、デフォルトでHiveをカタログとして使用します。 presto-cli --catalogハイブ

これで、すべてのテーブルにアクセスできるはずです。 tableauでは、ハイブをカタログとして定義する必要があります。

+0

答えに感謝します。私はpresto-cli経由で接続することができます。私の問題は、Tableauからの接続を確立しようとするときです。ハイブカタログを認識しません – Miquel

0

私も同じ問題があります。

rest-clientを使用して、送信されたクエリをjsonエンベロープなしのSQL文だけに変更しました。問題を解決するわけではありませんが、解決策のヒントが得られます。

1

これは、TableauがTeradataドライバを使用しているためです(少なくとも、これはTableauのWebサイトからインストールの指示があるためです)。バージョン1.1.8のドライバは、Presto 0.157t(Teradataリリース0.157)とのみ互換性があります。

これは、表示されているエラーの原因となる特定のプルリクエストです:https://github.com/prestodb/presto/pull/5868。解決策はおそらくEMRに0.157tをインストールすることですが、これはEMRでクラスタをスピンアップするときに単にPrestoボックスをチェックするよりもはるかに多くの作業を必要とします。

プル要求5868で導入された問題を修正し、回避策:AWS EMRコマンドで

は、ローカルのJSONファイルに--configurationsフラグとポイントを追加します。たとえば、次のように

clusterConfiguration.jsonのビーイングの内容に
aws emr create-cluster [...] --configurations file://./clusterConfiguration.json 

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

これは0.148にさきがけの公開バージョンを設定します。これは、Teradataドライバによって取得され、0.157が予期する古いペイロードを使用します。

+0

この変更に接続できましたか? Presto-0.148バージョンで新しいクラスタを作成することはできませんでした。 Prestoバージョン0.148でクラスタを作成する唯一の方法は、emr-4.7クラスタを使用することでした。それを作成した後でも、私たちはまだTableauから接続できません。 – Miquel

+0

はい、これは私たちのために働いています。 0.148のクラスタを作成すべきではありませんが、EMRで0.157または0.166を使用している場合でも、バージョン文字列を0.148に設定するようにPrestoに指示する必要があります。したがって、ドライバがクラスタに接続すると、バージョン文字列が読み込まれ、0.148に接続していることを「考える」。上記の手順に従えば、これはうまくいくはずです。 – Niels

関連する問題