For context here’s @kakakazuma’s blog post: http://qiita.com/yskazuma/items/99f5892d5a303528aad3. It’s in Japanese but easy to understand by just following the code examples and/or using Google Translate.
Here’s my comment re. his approach (using Py4J):
"Last week I started working on Athena support myself and got a working prototype but didn’t have the chance to release it yet as it needed some more work. The approach I took is somewhat similar but different - I wrote a REST API/Proxy in Java that takes Athena connection details, runs the query and returns results in “Redash format”.
At first it seemed to me that the Py4J approach might be better, but to the best of my understanding Py4J requires you to run the gateway program along side Redash. In this case it has limited value compared to having just a REST proxy, while the later is easier to deploy/scale/maintain. Also we reduce cases of bugs in a middleware (Py4J) impacting the stability of the solution.
Once I release it, I will post a link here to my codebase, so we can have a discussion on top of the code and decide which one to keep."