Подтвердить что ты не робот

Как использовать потоковое вещание Bigquery insertall в приложении engine & python

Я хотел бы разработать приложение для приложения, которое напрямую передает данные в таблицу BigQuery.

Согласно документации Google есть простой способ потоковой передачи данных в bigquery:

Вот пример фрагмента кода о том, как должна быть закодирована вставка потоковой передачи:

body = {"rows":[
{"json": {"column_name":7.7,}}
]}

response = bigquery.tabledata().insertAll(
   projectId=PROJECT_ID,
   datasetId=DATASET_ID,
   tableId=TABLE_ID,
   body=body).execute()

Хотя я загрузил клиент api, я не нашел ссылки на модуль или объект "bigquery", упомянутый в примере выше Google.

Где находится объект bigquery (из фрагмента)?

Может ли кто-нибудь показать более полный способ использования этого фрагмента (с правильным импортом)?

Я много искал и нашел документацию запутанной и частичной.

4b9b3361

Ответ 1

Минимальная работа (пока вы заполните правильные идентификаторы для своего проекта):

import httplib2
from apiclient import discovery
from oauth2client import appengine

_SCOPE = 'https://www.googleapis.com/auth/bigquery'

# Change the following 3 values:
PROJECT_ID = 'your_project'
DATASET_ID = 'your_dataset'
TABLE_ID = 'TestTable'


body = {"rows":[
    {"json": {"Col1":7,}}
]}

credentials = appengine.AppAssertionCredentials(scope=_SCOPE)
http = credentials.authorize(httplib2.Http())

bigquery = discovery.build('bigquery', 'v2', http=http)
response = bigquery.tabledata().insertAll(
   projectId=PROJECT_ID,
   datasetId=DATASET_ID,
   tableId=TABLE_ID,
   body=body).execute()

print response

Как говорит Иордания: "Обратите внимание, что это использует робот appengine для аутентификации с помощью BigQuery, поэтому вы должны добавить учетную запись робота в ACL набора данных. Обратите внимание, что если вы также хотите использовать робота для запуска запросов, вам нужно, чтобы робот был членом команды проекта, чтобы иметь возможность запускать задания".

Ответ 2

Вот пример рабочего кода приложения appengine, который передает записи в таблицу BigQuery. Это open source на code.google.com:

http://code.google.com/p/bigquery-e2e/source/browse/sensors/cloud/src/main.py#124

Чтобы узнать, откуда возникает объект bigquery, см. http://code.google.com/p/bigquery-e2e/source/browse/sensors/cloud/src/config.py

Обратите внимание, что это использует робот appengine для аутентификации с помощью BigQuery, поэтому вы должны добавить учетную запись робота в ACL набора данных.

Обратите внимание, что если вы также хотите использовать робота для запуска запросов, а не только для потока, вам нужно, чтобы робот был членом команды проекта, чтобы иметь возможность запускать задания.