【问题标题】:AWS Athena asynchronous pagination in PythonPython 中的 AWS Athena 异步分页
【发布时间】:2018-06-20 07:23:44
【问题描述】:

我正在为我的 Python 应用程序创建一个 Athena 连接器,但如果我使用通常的同步分页,处理大型结果需要很长时间。因此,我很好奇是否可以通过 Boto 客户端或其他解决方案提供异步分页以优化大型查询结果的执行。

【问题讨论】:

    标签: pagination amazon-athena


    【解决方案1】:

    我发现从 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'])
    

    【讨论】:

      猜你喜欢
      • 2015-12-22
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 2021-07-28
      相关资源
      最近更新 更多