代码之家  ›  专栏  ›  技术社区  ›  Filipe Ferminiano

AWS Athena-操作无法分页:get\u query\u results

  •  1
  • Filipe Ferminiano  · 技术社区  · 7 年前

    我正试图使用boto3在AWS Athena中运行一个查询。但我得到了一个错误:

     Operation cannot be paginated: get_query_results
    

    这是我的代码:

    client = boto3.client(
        'athena',
        aws_access_key_id=ACCESS_KEY,
        aws_secret_access_key=SECRET_KEY,
        region_name='us-east-1'
    )
    
    query = """ 
    
        select 1;
    
    """
    response = client.start_query_execution(
        QueryString=query,
        # QueryExecutionContext={
        #     'Database': 'Test45'
        # },
        ResultConfiguration={
            'OutputLocation': 's3://dft-dwh-files/raw_data/google_analytics/dev-test/'
        }
     )
    
    
    paginator = client.get_paginator('get_query_results')
    
    response_iterator = paginator.paginate(
        QueryExecutionId='string',
        PaginationConfig={
            'MaxItems': 123,
            'PageSize': 123,
            'StartingToken': 'bafe7afc-07b5-4622-9019-2e3c92853913'
        }
    )
    

    1 回复  |  直到 7 年前
        1
  •  8
  •   Ema    7 年前

    response .

    query_id = response['QueryExecutionId']
    
    response_iterator = paginator.paginate(
        QueryExecutionId=query_id,
        PaginationConfig={
            'MaxItems': 123,
            'PageSize': 123,
            'StartingToken': None
        }
    )
    

    即使如此,如果您的查询需要一段时间,您也需要先实现一个服务员函数,然后在知道查询成功后进行分页。我建议检查 State 来自 get_query_execution