mua*_*aiz 5 amazon-web-services boto3 amazon-athena
我正在尝试使用boto3运行一组查询,并且不想将数据保存到s3。相反,我只想获得结果并希望使用这些结果。我正在尝试执行以下操作
import boto3
client = boto3.client('athena')
response = client.start_query_execution(
        QueryString='''SELECT * FROM mytable limit 10''',
        QueryExecutionContext={
            'Database': 'my_db'
            }.        
        ResultConfiguration={
            'OutputLocation': 's3://outputpath',
            }
        )
print(response)
但是在这里我不想给,ResultConfiguration因为我不想在任何地方写结果。但是,如果删除ResultConfiguration参数,则会出现以下错误
botocore.exceptions.ParamValidationError: Parameter validation failed:
Missing required parameter in input: "ResultConfiguration"
因此,给s3输出写入位置似乎是必须的。那么,如何避免这种情况并仅以响应方式获得结果呢?
小智 2
每当运行“start_query_execution”命令时,您都必须指定 S3 临时存储桶位置。但是,您可以通过使用查询 ID 运行“get_query_results”方法来获取结果集(字典)。
响应(dict)将如下所示:
{
'UpdateCount': 123,
'ResultSet': {
    'Rows': [
        {
            'Data': [
                {
                    'VarCharValue': 'string'
                },
            ]
        },
    ],
    'ResultSetMetadata': {
        'ColumnInfo': [
            {
                'CatalogName': 'string',
                'SchemaName': 'string',
                'TableName': 'string',
                'Name': 'string',
                'Label': 'string',
                'Type': 'string',
                'Precision': 123,
                'Scale': 123,
                'Nullable': 'NOT_NULL'|'NULLABLE'|'UNKNOWN',
                'CaseSensitive': True|False
            },
        ]
    }
},
'NextToken': 'string'
}
有关更多信息,请参阅 boto3 客户端文档:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/athena.html#Athena.Client.get_query_results
然后,您可以删除指定的 S3 临时存储桶中的所有文件。
| 归档时间: | 
 | 
| 查看次数: | 2349 次 | 
| 最近记录: |