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

How to execute query over Amazon Athena with Ruby?

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

我们找不到任何 gem 或示例来帮助我们在 ruby 中连接 Amazon Athena。

请提供我们可以用来与 Amazon Athena 建立连接并在 Ruby 中构建自定义查询执行器的任何参考资料。

只是为了澄清我的生产应用,所以将 SDK 从 Ruby 更改为 JRuby 对我来说不是一个合适的选择。

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

如果不能接受使用 JRuby,还有另一个可行的选项 - 但请注意,它不是 100% Ruby!

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

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

使用 Lambda 函数是一个很好的选择,但如果有人不喜欢支付额外的服务金额,那么可以使用 JAVA 中的休息服务以 sql 查询作为参数和响应来实现带有码头的小型应用程序文本作为输出(您喜欢的格式)将为您提供继续前进的解决方法。

根据 May 19th 2017,Amazon Athena 支持通过 SDK 和 CLI 执行查询。

Ruby API client for Athena documentation@docs.aws.amazon.com

Source code of aws-sdk-athena@github.com/aws/aws-sdk-ruby

我发现用于 athena 的官方 Amazon SDK 有点复杂,所以我制作了一个名为 Athens 的新 gem,将 SDK 包装在一个更好的界面中:

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