如何使用ruby在Amazon Athena上执行查询?

时间:2017-03-20 06:15:34

标签: ruby ruby-on-rails-3 amazon-web-services rubygems amazon-athena

如何使用Ruby连接Amazon Athena并通过Amazon Athena执行查询并获得结果。

我们无法找到任何宝石或示例,帮助我们在ruby中连接Amazon Athena。

请提供我们可以用来与Amazon Athena建立连接的任何refrance,并在ruby中构建自定义查询exector。

只是为了将我的应用程序用于生产,所以将SDK更改为Ruby到JRuby不适合我。

5 个答案:

答案 0 :(得分:1)

Per May 19th 2017,Amazon Athena支持通过SDK和CLI执行查询。我已经用Python试过了。升级到最新的SDK后,Ruby也应该可用。

http://docs.aws.amazon.com/sdkforruby/api/Aws/Athena/Client.html

答案 1 :(得分:0)

JRuby是必需的。 Athena仅提供JDBC驱动程序。它仅适用于JRE。

答案 2 :(得分:0)

如果使用JRuby是不可接受的,还有另一种选择可行 - 但要注意它不是100%Ruby!

您可以设置一个Java Lambda function,它封装查询逻辑,接收搜索参数,然后使用JDBC驱动程序直接连接到Athena。

然后从Ruby调用Lambda函数 - 通过HTTP或通过Ruby client

答案 3 :(得分:0)

使用Lambda函数是一个不错的选择,但是如果有人不喜欢支付额外的服务金额,那么使用Java中的休息服务使用sql查询作为参数和响应文本作为输出(您的首选格式)将使用jetty来实现小应用程序你可以继续前进。

答案 4 :(得分:0)

我发现雅典娜的官方Amazon SDK有点复杂,所以我制作了一个名为Athens的新宝石,将SDK封装在一个更好的界面中:

conn = Athens::Connection.new(database: 'sample')
query = conn.execute("SELECT * FROM mytable")