You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Glue调用get_column_statistics_for_table报EntityNotFoundException错误

问题描述

调用AWS Glue的get_column_statistics_for_table()方法,从S3存储位置关联的表中拉取列元数据统计值时返回EntityNotFoundException错误,已知前置情况:

  • 可正常调用create_crawler()、start_crawler()等其他Glue接口,客户端基础配置、账号权限无异常
  • 接口要求的数据库名、表名、列名3个必填参数均直接复制自AWS控制台,参数值完全准确
  • 检索技术站点未找到同类问题,核心疑问:调用该接口是否需要提前创建Glue到S3的连接?

复现代码

import boto3
client = boto3.client('glue', region_name="us-east-1")
response = client.get_column_statistics_for_table(
    DatabaseName='Name_of_Database',
    TableName='Name_of_my_table',
    ColumnNames=[
        'Column_name_1'
    ]
)
print(response)

接口返回结果

{
    'ColumnStatisticsList': [], 
    'Errors': [
        {
            'ColumnName': 'Column_name_1', 
            'Error': {
                'ErrorCode': 'EntityNotFoundException', 
                'ErrorMessage': 'Statistics do not exist for this column'
            }
        }
    ], 
    'ResponseMetadata': {
        'RequestId': 'Some_alphanumeric no', 
        'HTTPStatusCode': 200, 
        'HTTPHeaders': 'common HTTP Headers'
    }, 
    'RetryAttempts': 0
}
解答

不需要提前创建Glue到S3的连接,该报错和网络连通性、连接配置完全无关。
从返回的错误信息Statistics do not exist for this column可以明确,报错原因是目标列从未生成过列统计信息,并非接口找不到对应的库、表、列资源,也不是无法访问S3上的源数据。

列统计信息不会随Crawler爬取元数据自动生成,Crawler默认只会同步表结构、分区基础信息,不会主动计算列的最大值、最小值、空值率、基数这类统计值。要正常获取列统计,需要先主动触发统计计算任务:

  1. 调用start_column_statistics_task_run接口提交列统计计算任务,需要传入有S3源路径读取权限、Glue操作权限的服务角色ARN,示例代码:
stat_task_resp = client.start_column_statistics_task_run(
    DatabaseName='Name_of_Database',
    TableName='Name_of_my_table',
    ColumnNames=['Column_name_1'],
    Role='arn:aws:iam::你的账号ID:role/你的Glue服务角色名'
)
  1. 等待任务运行完成(可以通过get_column_statistics_task_run接口查询任务状态)后,再调用get_column_statistics_for_table()接口即可正常获取对应列的统计数据。

如果你的表是分区表,提交统计任务时可以按需传入PartitionPredicate参数筛选需要统计的分区范围,避免全量扫描S3数据产生不必要的资源消耗。


内容的提问来源于stack exchange,提问作者learner1205

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:48:27