python - 错误:尝试使用 PyAthena 访问 Athena
问题描述
我目前正在尝试从 AWS Athena 数据库构建数据管道,以便我的团队可以使用 Python 查询信息。但是,我遇到了权限不足的问题。
我们能够在 Tableau 中查询数据,但我们希望将其集成到我们正在开发的应用程序中。
这是我们从 PyAthena 的文档中遵循的代码。
from pyathena import connect
import pandas as pd
conn = connect(aws_access_key_id='YOUR_ACCESS_KEY_ID',
aws_secret_access_key='YOUR_SECRET_ACCESS_KEY',
s3_staging_dir='s3://YOUR_S3_BUCKET/path/to/',
region_name='us-west-2')
df = pd.read_sql("SELECT * FROM many_rows", conn)
print(df.head())
这是由此产生的错误。
OperationalError: Insufficient permissions to execute the query. User: arn:aws:iam::OUR_ADDRESS:user/USER is not authorized to perform: glue:GetTable on resource: arn:aws:glue:us-west-2:OUR_ADDRESS:table/default/OUR_DATABASE
我猜这是关于 Amazon Glue 的服务器端 IAM 权限的问题。但我不确定如何解决它。
解决方案
推荐阅读
- python - Tkinter 文本框(随机/交替更改 Tkinter 文本框的前景色)
- sql - 在实体框架中包含外键记录
- spring-webflux - 进行网络调用时,Blockhound 在 webclient 上出错
- entity-framework - 在 OSX 上使用 sql lite 开发的策略,并轻松切换到 Sql server 进行生产
- python-3.x - 如何添加缺失的时间序列数据
- python - 熊猫:比较数据帧之间的平均比率
- reactjs - nextjs 自定义响应检测钩子调用了两次
- javascript - 将触摸功能应用于滑块javascript
- node.js - socket.broadcast.emit 不发送给客户端
- python - 让它如此 pytest 要求所有测试都具有全局唯一名称