问题标签 [amazon-athena]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
993 浏览

hive - Kinesis Firehose 到 s3:数据在 s3 路径中传送到错误的时间

我正在使用 Kinesis Firehose 缓冲 IoT 数据,并将其写入 s3。Firehose 以格式将缓冲区写入 s3s3://bucket.me.com/YYYY/MM/DD/HH

在 10:59a 进入的数据可能会被 Firehose 缓冲,直到 11:00a ( s3://bucket.me.com/2017/03/09/11) 才被写入。

问题是,在为 Athena 创建分区时,第 10 小时的分区不会包含第 10 小时的所有数据,因为它位于第 11 小时的路径中。

这是一个更好地说明的示例:

物联网将以下数据发送到 Firehose,Firehose 在 2a 将其写入s3://bucket.me.com/2017/03/24/02/file-0000. 文件内容如下所示:

然后我创建一个 Athena 表:

当我运行时select * from sensor_data where hour = 1,我不会返回上面的 3 条记录,因为它只会从为分区定义的 s3 路径中读取hour=1(并且 3 条记录确实在hour=2分区中)。

我该如何避免这个问题?

0 投票
2 回答
9498 浏览

python - 使用 Python 和 pyathenajdbc 与 Athena 连接

我正在尝试使用 python 连接到 AWS Athena。我正在尝试使用 pyathenajdbc 来完成这项任务。我遇到的问题是获得连接。当我运行下面的代码时,我收到一条错误消息,指出它找不到 AthenaDriver。(java.lang.RuntimeException:找不到类 com.amazonaws.athena.jdbc.AthenaDriver)。我确实从 AWS 下载了这个文件,并确认它位于该目录中。

回溯(最后一次调用):文件“/usr/lib64/python2.7/runpy.py”,第 174 行,在 _run_module_as_main“ main ”、fname、loader、pkg_name)文件“/usr/lib64/python2.7/ runpy.py”,第 72 行,在 run_globals 文件中的 _run_code 执行代码“/home/ec2-user/jason_testing/mdpbi/rsi/athena/ main .py”,第 53 行,在 rtn = main() 文件中“/home/ ec2-user/jason_testing/mdpbi/rsi/athena/ main .py”,第 39 行,在 main driver_path=athena_jdbc_driver_path 文件“/opt/mdpbi/Python_Envs/2.7.10/local/lib/python2.7/dist-packages/ pyathenajdbc/ init .py”,第 65 行,在连接 driver_path,**kwargs) 文件“/opt/mdpbi/Python_Envs/2.7.10/local/lib/python2.7/dist-packages/pyathenajdbc/connection.py”,第 68 行,在init中 jpype.JClass(ATHENA_DRIVER_CLASS_NAME) 文件“/opt/mdpbi/Python_Envs/2.7.10/lib64/python2.7/dist-packages/jpype/_jclass.py”,第 55 行,在 JClass raise _RUNTIMEEXCEPTION.PYEXC("Class %s未找到”% 名称)

0 投票
3 回答
3232 浏览

amazon-web-services - 将格式正确的 JSON 写入 S3 以加载到 Athena/Redshift

我有一个触发器,它为 Kinesis 上收到的每个事务执行 lambda 函数。生产者通过 PutRecordsRequest() 方法发送多个事务。Lambda函数如下;

但是,在编写事务时,在 S3 上它们不会被编写为 JSON 数组。下面是一个例子:

这种格式的数据可以直接加载到 Athena 或 Redshift,还是必须在有效的数组中?我可以在这里看到http://docs.aws.amazon.com/redshift/latest/dg/copy-usage_notes-copy-from-json.html它仍然应该能够加载到 Redshift 中。

以下是在 Athena 中创建表时使用的属性...

如何加载这些数据以便能够查询它?

0 投票
1 回答
834 浏览

sql - Hive - 相关值的总和

我在 AWS Athena 上工作以过滤负载均衡器日志。我创建了下表并将日志导入表中。

现在我想获得200 OK、400 和 500 响应计数的计数。所以我执行了以下查询。

它有效,但它返回所有响应,如下所示。

我想对所有 400,401,404,413,422 和 2xx、3xx 和 5xx 求和所以结果应该是 4xx sum(400,401,404,413,422)

0 投票
1 回答
208 浏览

amazon-web-services - Hive Join - 基于多个条件

在我的一张表中,其中包含日期和事件列。

它返回,

我希望结果使用按日期分组

0 投票
2 回答
1448 浏览

sql - Hive - 仅按日期时间列分组到日期

在我的表事件时间列看起来像,

我只想按事件时间和日期分组。

0 投票
1 回答
2599 浏览

amazon-s3 - 如何提高对来自 Athena 的 s3 数据的查询性能

我已经将存储在 S3 中的数据以这样的配置单元格式进行了分区。

每个分区有大约 1,000,000 条记录。为此,我在 Athena 中创建了表和分区。

现在从 Athena 运行查询

此查询需要 1800 秒来扫描 1,000,000 条记录。

所以我的问题是如何提高这个查询性能?

0 投票
3 回答
3689 浏览

amazon-web-services - 通过 JPA spring boot 访问 AWS athena

我正在尝试使用 spring boot jpa datasource 来使用 AWS athena。我尝试设置具有给定属性的数据源。

我低于异常

0 投票
2 回答
7497 浏览

java - Athena 从 parquet 模式创建表

有没有办法直接从基于 avro 模式的 parquet 文件在 Amazon Athena 中创建表?架构被编码到文件中,所以我需要自己实际创建 DDL 似乎很愚蠢。

我看到了这个和另一个重复

但它们与 Hive 直接相关,它不适用于 Athena。理想情况下,我正在寻找一种无需在控制台上定义它的编程方式。

0 投票
1 回答
633 浏览

amazon-web-services - AWS Athena JDBC Driver ResultSet.getCharacterStream 方法未实现

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

在此处输入图像描述

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

我正在使用来自AWS 文档的驱动程序 AthenaJDBC41-1.0.0.jar ,我的示例连接可以在这里看到

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

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