Как создать таблицу, используя следующий Python BigQuery API? - PullRequest
0 голосов
/ 08 марта 2019

Здравствуйте, я клонировал следующий репозиторий:

https://github.com/tylertreat/BigQuery-Python

Я читал документацию о создании таблицы следующим образом:

schema = [
    {'name': 'foo', 'type': 'STRING', 'mode': 'nullable'},
    {'name': 'bar', 'type': 'FLOAT', 'mode': 'nullable'}
]
created = client.create_table('dataset', 'my_table', schema)

Я пытался выполнитьто же самое в моей консоли:

>>> schema = [
...     {'name': 'foo', 'type': 'STRING', 'mode': 'nullable'},
...     {'name': 'bar', 'type': 'FLOAT', 'mode': 'nullable'}
... ]
>>> created = client.create_table('data_set_course', 'my_table_testing', schema)

Я получил только «Ложь», и когда я проверяю визуальный интерфейс, таблицы нет.

>>> print(created)
False
>>> 

Я не имею ни малейшего представления об этой проблеме, я действительно разочарован, поскольку мне просто нужно создать одну таблицу, поэтому я действительно хотел бы поблагодарить за поддержку в преодолении этой задачи.

1 Ответ

1 голос
/ 08 марта 2019

Я проверил этот код, и он работает для меня:

from bigquery import get_client

# JSON key provided by Google
json_key = 'key.json'

client = get_client(json_key_file=json_key, readonly=False)

schema = [
    {'name': 'foo', 'type': 'STRING', 'mode': 'nullable'},
    {'name': 'bar', 'type': 'FLOAT', 'mode': 'nullable'}
]
created = client.create_table(dataset='yourDataset', table='tableToCreate', schema=schema)

Вам нужно проверить 2 вещи:

  1. readonly в методе get_client имеет значение False. В противном случае доступ BigQuery только для чтения.

  2. Учетная запись службы или пользователь, указанный в файле key.json, получили разрешения для создания таблицы BigQuery . По крайней мере, ему должна быть предоставлена ​​роль roles/bigquery.dataEditor. Для этого выполните следующую команду:

gcloud projects add-iam-policy-binding [PROJECT_ID] --member "serviceAccount:[NAME]@[PROJECT_ID].iam.gserviceaccount.com" --role "roles/bigquery.dataEditor"


В любом случае, я рекомендую вам использовать официальный Python Client для Google BigQuery , у вас будет лучшая документация и функциональность. А также огромное количество примеров кода в официальной документации BigQuery .

...