【问题标题】:AWS Athena JDBC Driver ResultSet.getCharacterStream method not implementedAWS Athena JDBC Driver ResultSet.getCharacterStream 方法未实现
【发布时间】:2017-03-30 19:01:48
【问题描述】:

我有一个 Athena/PrestoDB 查询,它返回多达 3 亿个设备 ID。此屏幕截图显示了在 AWS UI 中执行时的查询。结果显示在 1 分钟内,我在几分钟内从 UI 中提供的链接下载了完整的结果 (319MB)。

当我通过 JDBC 连接执行相同的查询时,我收到一个方法未实现的错误。 AWS docs 中的 AthenaJDBC41-1.0.0.jar 似乎还没有实现 getCharacterStream

ActiveRecord::StatementInvalid: ActiveRecord::JDBCError: com.amazonaws.athena.jdbc.NotImplementedException: Method ResultSet.getCharacterStream is not yet implemented: SELECT distinct(device_id) FROM presales.sightings_v3 WHERE DATE(date) BETWEEN DATE('2016-03-01') AND DATE('2016-03-02') AND ( contains(audiences, 1133) OR contains(audiences, 1149) OR contains(audiences, 1184) );

我正在使用来自AWS docs 和我的example connection can be seen here 的驱动程序 AthenaJDBC41-1.0.0.jar。

我的猜测是 ResultSet.getCharacterStream 方法仅用于大结果,因为我的其他查询工作正常。

理想情况下,我希望此响应包含 query_id 或 S3 路径与流式传输大数据结果。我很好奇 Athena UI 如何生成指向 S3 上结果的链接?

【问题讨论】:

  • Rahul Pathak 还表示 ResultSet.getCharacterStream 将在下一个版本中实现。

标签: amazon-web-services amazon-athena


【解决方案1】:

您可以从 ResultSet 中获取查询 id

((AthenaStatementClient)((AthenaResultSet)rs).getClient()).getQueryExecutionId()

您可以使用它构建 S3 路径

<s3_staging_dir>/<query_id>.csv

【讨论】:

    猜你喜欢
    • 2018-11-06
    • 2018-08-03
    • 2019-09-17
    • 2019-05-12
    • 2015-12-22
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多