Athena查询由于时间问题返回空结果
创始人
2024-09-21 13:30:21
0

可以使用Retry机制重新运行查询以解决Athena查询由于时间问题而返回空结果的问题。

以下是使用Python中的Boto3库实现的示例代码:

import boto3
import time
from botocore.exceptions import ClientError

# 创建Athena客户端
athena_client = boto3.client('athena')

# 设置Retry次数和间隔时间
num_retries = 3
retry_interval = 5

# 定义查询函数
def run_query(query, database, s3_output):
    for i in range(num_retries):
        try:
            # 运行查询
            response = athena_client.start_query_execution(
                QueryString=query,
                QueryExecutionContext={
                    'Database': database
                },
                ResultConfiguration={
                    'OutputLocation': s3_output,
                }
            )
            # 获取查询ID
            query_execution_id = response['QueryExecutionId']
            # 等待查询完成
            while True:
                query_status = athena_client.get_query_execution(QueryExecutionId=query_execution_id)
                query_execution_state = query_status['QueryExecution']['Status']['State']
                if query_execution_state == 'SUCCEEDED':
                    return query_execution_id
                elif query_execution_state == 'FAILED':
                    error_message = query_status['QueryExecution']['Status']['StateChangeReason']
                    raise Exception('Athena query failed: {}'.format(error_message))
                else:
                    time.sleep(retry_interval)
        except ClientError as e:
            error_code = e.response['Error']['Code']
            if error_code == 'TooManyRequestsException':
                time.sleep(retry_interval)
                continue
            else:
                raise
    raise Exception('Athena query timed out')

# 调用查询函数并获取结果
query = "SELECT * FROM your_table"
database = "your_database"
s3_output = "s3://your-bucket/your-folder/"
query_execution_id = run_query(query, database, s3_output)
result = athena_client.get_query_results(QueryExecutionId=query_execution_id)
print(result['ResultSet']['Rows'])

相关内容

热门资讯

透视代打!德州局HHpoker... 透视代打!德州局HHpoker透视脚本,新海贝辅助器(透视)开挂辅助工具详细教程 >>您好:软件加薇...
教程书开挂"天天福建... 教程书开挂"天天福建十三张辅助器"开挂(修改器)辅助平台(有挂助手)1、下载安装好天天福建十三张辅助...
原先有辅助"逗娱科技... 原先有辅助"逗娱科技碰胡辅助"开挂(透视)辅助下载(专业教程有挂猫腻)>>您好:软件加1367043...
透视科技!微乐小程序晃晃脚本,... 微乐小程序晃晃脚本是一款专注玩家量身打造的游戏记牌类型软件,在微乐小程序晃晃脚本这款游戏中我们可以记...
积累辅助"蘑菇云辅助... 蘑菇云辅助怎么使用开挂教程视频分享装挂详细步骤在当今的网络游戏中,蘑菇云辅助怎么使用作为一种经典的娱...
原本有辅助"微乐自建... 原本有辅助"微乐自建房脚本免费下载"开挂(透视)辅助软件(安装教程有挂透视) 了解更多开挂安装加(1...
透视游戏!新久久辅助器,财神1... 透视游戏!新久久辅助器,财神13张辅助工具(透视)开挂辅助安装系统教程;无需打开直接搜索加(薇:13...
模块开挂"至友互娱情... 模块开挂"至友互娱情怀辅助"开挂(修改器)辅助插件(有挂工具)至友互娱情怀辅助ai黑科技系统规律教程...
原本有开挂"余干中至... 原本有开挂"余干中至五十k有挂装不"开挂(透视)辅助脚本(黑科技教程有挂解密)您好:余干中至五十k有...
透视了解!好友赣南新版本挂,新... 透视了解!好友赣南新版本挂,新海贝之城辅助(透视)开挂辅助神器2026新版这是一款可以让一直输的玩家...