google.api_core.exceptions.ResourceExhausted: 429 查询 bigquery 时收到的消息大于最大值
Posted
技术标签:
【中文标题】google.api_core.exceptions.ResourceExhausted: 429 查询 bigquery 时收到的消息大于最大值【英文标题】:google.api_core.exceptions.ResourceExhausted: 429 Received message larger than max when querying bigquery 【发布时间】:2020-10-12 14:26:55 【问题描述】:我遇到了一个问题,我尝试查询 BQ 并将其放入 AI 作业内的 pandas 数据框中。错误如下:
google.api_core.exceptions.ResourceExhausted:429 收到的消息大于最大值(4364379 与 4194304)
这似乎表明有一些元数据与超过 4MB 的查询结果一起发送,因为查询本身的数量级大于 4MB。
问题是,当我通过 google cloud bigquery 包发送查询时如何更改此设置?我的代码如下所示:
bqstorage_client = BigQueryReadClient(credentials=credentials)
client = bigquery.Client(
credentials=credentials,
project='PROJECT_NAME'
)
sql_query = 'QUERY STRING'
df = client.query(sql_query).to_dataframe(bqstorage_client=bqstorage_client)
如果我将其更改为一个简单的查询,这确实有效,但发回的元数据似乎有一些任意限制,有没有办法改变这个限制?
【问题讨论】:
【参考方案1】:乍一看,这可能是 grpc 通道设置的问题,但需要更多详细信息才能调查。您能否在https://github.com/googleapis/python-bigquery/issues 上提出问题并提供更多信息?
需要包含的有用内容是您环境中的包版本(例如pip freeze
或类似),以及有关查询/结果形状的一些基本细节。如果您设置了任何带有 GRPC
前缀的环境变量,请将它们也包括在内。
【讨论】:
【参考方案2】:如果你有一堆数组列,大查询会发送大量元数据,我在查询中取消嵌套表,这个问题就消失了。
【讨论】:
我仍然鼓励您提交有关详细信息的问题。作为缓解措施,这应该不是必需的。以上是关于google.api_core.exceptions.ResourceExhausted: 429 查询 bigquery 时收到的消息大于最大值的主要内容,如果未能解决你的问题,请参考以下文章