问题标签 [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.
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
分区中)。
我该如何避免这个问题?
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未找到”% 名称)
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 中创建表时使用的属性...
如何加载这些数据以便能够查询它?
sql - Hive - 相关值的总和
我在 AWS Athena 上工作以过滤负载均衡器日志。我创建了下表并将日志导入表中。
现在我想获得200 OK、400 和 500 响应计数的计数。所以我执行了以下查询。
它有效,但它返回所有响应,如下所示。
我想对所有 400,401,404,413,422 和 2xx、3xx 和 5xx 求和所以结果应该是 4xx sum(400,401,404,413,422)
amazon-web-services - Hive Join - 基于多个条件
在我的一张表中,其中包含日期和事件列。
它返回,
我希望结果使用按日期分组
sql - Hive - 仅按日期时间列分组到日期
在我的表事件时间列看起来像,
我只想按事件时间和日期分组。
像
amazon-s3 - 如何提高对来自 Athena 的 s3 数据的查询性能
我已经将存储在 S3 中的数据以这样的配置单元格式进行了分区。
每个分区有大约 1,000,000 条记录。为此,我在 Athena 中创建了表和分区。
现在从 Athena 运行查询
此查询需要 1800 秒来扫描 1,000,000 条记录。
所以我的问题是如何提高这个查询性能?
amazon-web-services - 通过 JPA spring boot 访问 AWS athena
我正在尝试使用 spring boot jpa datasource 来使用 AWS athena。我尝试设置具有给定属性的数据源。
我低于异常
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 上结果的链接?