我正在为我的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'])