半空洞男女関係

思ったこととかプログラミングしてるときのメモとか色々かいてます。メールはidそのままgmail

DataGrip w/Presto JDBC DriverがTreasureDataと相性悪い問題

tl;dr

最近IntelliJからTD使おうとしてうまくいかないな、というときは 0.179のPresto JDBC Driverを使う(最新は0.181)

https://repo1.maven.org/maven2/com/facebook/presto/presto-jdbc/0.179/presto-jdbc-0.179.jar

Treasure Dataのかたにworkaroundを教えてもらった。

  • パスワードにダミーの文字列を入れる。
  • SSLを有効にする。jdbc:presto//api-presto.treasuredata.com:443/td-presto?SSL=true

問題

IntelliJからTreasure DataのPrestoアクセス出来る機能があるんだけれど、その通信のためにはPrestoが提供しているJDBC Driverを使う。ただ良い感じに設定してもうまく行かなかったので軽く調べたところ、とりあえずバージョン下げて使えば良いことがわかった。

どうやら0.180から入ったこのコミットが原因っぽい。 https://github.com/prestodb/presto/commit/defabcba4e1b89d5df536da51258cfdbfea906cb

TreasureDataの認証はUsernameにAPI Keyを入れて、Passwordは空欄でやり取りするという方式なのだけど、0.180からValidationをきちんとするようになってPasswordが空欄だと怒られるので、うまく接続できなかったという感じ。

TD側でPasswordは無視されるんで、適当に入れとけばいいじゃんと思いきや、それはSSLで通信しなくてはならず、うまくいかなかった。

というわけで、ひとまず0.179のバージョンを使えば良さそうです。

https://repo1.maven.org/maven2/com/facebook/presto/presto-jdbc/0.179/presto-jdbc-0.179.jar

元気があったらレポートする。