Ошибка аутентификации при попытке доступа к BigQuery с использованием клиента Python - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь запросить набор данных BigQuery через клиент Python.

У меня есть проект с включенным биллингом, служебная учетная запись с ролью администратора BigQuery, назначенная в соответствии с инструкциями: https://cloud.google.com/bigquery/docs/quickstarts/quickstart-client-libraries

Это фрагмент кода, который я пытаюсь

from google.cloud import bigquery
jsonPath = "/Users/xyz/Downloads/serviceaccount.json"
client = bigquery.Client.from_service_account_json(jsonPath)
query_job = client.query("""
    SELECT
    CONCAT(
    'https://stackoverflow.com/questions/',
    CAST(id as STRING)) as url,
    view_count
    FROM `bigquery-public-data.stackoverflow.posts_questions`
    WHERE tags like '%google-bigquery%'
    ORDER BY view_count DESC
    LIMIT 10""")

results = query_job.result() 

Вызов client.query приводит к этой ошибке:

Traceback (most recent call last):
  File "<stdin>", line 10, in <module>
  File "/Users/xyz/Library/Python/2.7/lib/python/site- 
packages/google/cloud/bigquery/client.py", line 1254, in query
    query_job._begin(retry=retry)
  File "/Users/xyz/Library/Python/2.7/lib/python/site- 
packages/google/cloud/bigquery/job.py", line 552, in _begin
    method='POST', path=path, data=self._build_resource())
  File "/Users/xyz/Library/Python/2.7/lib/python/site- 
packages/google/cloud/bigquery/client.py", line 336, in _call_api
    return call()
  File "/Users/xyz/Library/Python/2.7/lib/python/site- 
packages/google/api_core/retry.py", line 260, in retry_wrapped_func
    on_error=on_error,
   File "/Users/xyz/Library/Python/2.7/lib/python/site- 
packages/google/api_core/retry.py", line 177, in retry_target
    return target()
  File "/Users/xyz/Library/Python/2.7/lib/python/site- 
packages/google/cloud/_http.py", line 293, in api_request
    raise exceptions.from_http_response(response)
google.api_core.exceptions.Unauthorized: 401 POST . 
https://www.googleapis.com/bigquery/v2/projects/xyzproject/jobs: HTTP 
Basic Authentication is not supported for this API

Есть ли какие-либо указатели на то, что я могу сделать, чтобы устранить эту ошибку аутентификации?Большое спасибо

python -V 2.7.10 У меня установлены последние облачные библиотеки Google

1 Ответ

0 голосов
/ 16 октября 2018

Я взял ваш код, добавил операторы для вывода результатов запроса и запустил программу как на Python 2.7.15, так и на Python 3.6.1, и он работал просто отлично.

Это наводит меня на мысль, что выиметь устаревшую библиотеку.В SDK Google Python используются google-auth, urllib3 и т. Д. Проверьте, установлены ли последние версии.

Кроме того, я бы обновил вашу версию Python.2.7.10 был выпущен в 2015 году.

В командной строке:

pip freeze > python_modules.list

Затем с помощью grep или вашего любимого редактора проверьте версии, установленные в вашей системе.

Моя среда Python 2.x использует:

  • google-api-core == 1.4.1
  • google-auth == 1.5.1
  • google-cloud-bigquery == 1.6.0
  • google-cloud-core == 0.28.1
  • google-resumable-media == 0.3.1
  • googleapis-common-protos == 1.5.3
  • urllib3 == 1.22

Пример вывода:

https://stackoverflow.com/questions/13530967 : 44672 views
https://stackoverflow.com/questions/22879669 : 34745 views
https://stackoverflow.com/questions/13221978 : 31584 views
https://stackoverflow.com/questions/6607552 : 27736 views
https://stackoverflow.com/questions/16609219 : 26271 views
https://stackoverflow.com/questions/35159967 : 26258 views
https://stackoverflow.com/questions/10604135 : 25860 views
https://stackoverflow.com/questions/22004216 : 23496 views
https://stackoverflow.com/questions/10644993 : 22356 views
https://stackoverflow.com/questions/11647201 : 18547 views
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...