【发布时间】:2018-06-20 07:23:44
【问题描述】:
我正在为我的 Python 应用程序创建一个 Athena 连接器,但如果我使用通常的同步分页,处理大型结果需要很长时间。因此,我很好奇是否可以通过 Boto 客户端或其他解决方案提供异步分页以优化大型查询结果的执行。
【问题讨论】:
我正在为我的 Python 应用程序创建一个 Athena 连接器,但如果我使用通常的同步分页,处理大型结果需要很长时间。因此,我很好奇是否可以通过 Boto 客户端或其他解决方案提供异步分页以优化大型查询结果的执行。
【问题讨论】:
我发现从 S3 结果存储桶中检索查询结果文件然后(对于我的用例)将 CSV 转换为 Pandas 数据帧比使用 boto3 分页器性能要高得多。
from boto3.session import Session
import pandas #you will have to pip install s3fs
ACCESS_KEY='your access key'
SECRET_KEY='your secret key'
session = Session(aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY)
s3 = session.resource('s3')
bucket = 'your results bucket'
key = queryExecutionId + '.csv' #the query execution id from the response
obj = s3.Object(bucket, key)
obj = obj.get()
frame = pandas.read_csv(obj['Body'])
【讨论】: