无法使用 Python 连接到 BigQuery - ServiceUnavailable

Posted

技术标签:

【中文标题】无法使用 Python 连接到 BigQuery - ServiceUnavailable【英文标题】:Failed to connect to BigQuery with Python - ServiceUnavailable 【发布时间】:2020-08-05 15:49:51 【问题描述】:

从 BigQuery 查询数据一直对我有用。然后我更新了我的谷歌包(例如 google-cloud-bigquery),突然我不能再下载数据了。不幸的是,我不再知道我正在使用的旧版本的软件包。现在,我使用的是 google-cloud-bigquery 版本“1.26.1”。

这是我正在运行的代码:

from google.cloud import bigquery
from google.oauth2 import service_account
import pandas as pd

KEY_FILE_LOCATION = "path_to_json"
PROCECT_ID = 'bigquery-123454'

credentials = service_account.Credentials.from_service_account_file(KEY_FILE_LOCATION)
client = bigquery.Client(credentials= credentials,project=PROCECT_ID)

query_job = client.query("""
SELECT
x,
y
FROM
`bigquery-123454.624526435.ga_sessions_*` 
WHERE
_TABLE_SUFFIX BETWEEN '20200501' AND '20200502' 
""")

results = query_job.result()

df = results.to_dataframe()

除了最后一行df = results.to_dataframe(),代码运行良好。现在我得到一个奇怪的错误,它由三个部分组成:

第 1 部分:

_InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
    status = StatusCode.UNAVAILABLE
    details = "failed to connect to all addresses"
    debug_error_string = ""created":"@1596627109.629000000","description":"Failed to pick subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3948,"referenced_errors":["created":"@1596627109.629000000","description":"failed to connect to all addresses","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":394,"grpc_status":14]"
>

第 2 部分:

ServiceUnavailable: 503 failed to connect to all addresses

第 3 部分:

RetryError: Deadline of 600.0s exceeded while calling functools.partial(<function _wrap_unary_errors.<locals>.error_remapped_callable at 0x0000000010BD3C80>, table_reference 
  project_id: "bigquery-123454"
  dataset_id: "_a0003e6c1ab4h23rfaf0d9cf49ac0e90083ca349e"
  table_id: "anon2d0jth_f891_40f5_8c63_76e21ab5b6f5"

requested_streams: 1
read_options 

format: ARROW
parent: "projects/bigquery-123454"
, metadata=[('x-goog-request-params', 'table_reference.project_id=bigquery-123454&table_reference.dataset_id=_a0003e6c1abanaw4egacf0d9cf49ac0e90083ca349e'), ('x-goog-api-client', 'gl-python/3.7.3 grpc/1.30.0 gax/1.22.0 gapic/1.0.0')]), last exception: 503 failed to connect to all addresses

我没有对此错误的解释。我认为这与我更新软件包无关。

一旦我遇到代理问题,但这些问题导致另一个/不同的错误。

我的同事说项目“bigquery-123454”在 BigQuery 中仍然可用。

有什么想法吗?

提前感谢您的帮助!

【问题讨论】:

【参考方案1】:

出现网络问题时会出现 503 错误。一段时间后重试或重试作业。 您可以在 Google Cloud Page 上阅读更多有关该错误的信息

【讨论】:

【参考方案2】:

我找到了答案: 将包“google-cloud-bigquery”从版本 1.26.1 降级到 1.18.1 后,代码再次运行!所以新包导致了错误。 我使用pip install google-cloud-bigquery==1.18.1 --force-reinstall 降级了软件包

【讨论】:

以上是关于无法使用 Python 连接到 BigQuery - ServiceUnavailable的主要内容,如果未能解决你的问题,请参考以下文章

无法将 Google Ads 连接到 BigQuery

导入 GoogleCredentials 以连接到 BigQuery

将 ColdFusion 连接到 Google Bigquery

将工作表连接到 BigQuery

使用 R 连接到 BigQuery 时不断收到拒绝访问

在 Google Apps 脚本中使用 BigQuery 连接到 Google 电子表格