Domanda

Vorrei sviluppare un'applicazione Motore App che trasmette direttamente i dati in una tabella BigQuery.

Secondo la documentazione di Google c'è un modo semplice per trasmettere i dati in bigQuery:

Ecco lo snippet del codice di esempio su come deve essere codificato l'inserto in streaming:

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

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

Sebbene abbia scaricato l'API del client non ho trovato alcun riferimento a un modulo / oggetto "bigquery" referenziato nell'esempio di Google sopra.

Dove si dovrebbe trovare l'oggetto BigQuery (da Snippet)?

Qualcuno può mostrare un modo più completo per utilizzare questo snippet (con le giuste importazioni)?

Ho cercato di cercare una documentazione molto e trovata confusa e parziale.

È stato utile?

Soluzione

Minimo funzionante (finché si compili gli ID giusti per il tuo progetto) Esempio:

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
.

AS Jordan dice: "Si noti che questo utilizza il robot Appengine per autenticare con BigQuery, quindi dovrai aggiungere l'account Robot all'ACL del set di dati. Nota che se si desidera utilizzare il robot per eseguire query,Non solo il flusso, hai bisogno del robot per essere un membro del "team" del progetto in modo che sia autorizzato a eseguire posti di lavoro. "

Altri suggerimenti

Ecco un esempio di codice funzionante da un'app Appengine che trasmette record in una tabella bigquery.È open source su code.google.com:

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

Per scoprire dove viene l'oggetto BigQuery, vedi http://code.google.com/p/bigquery-e2e/source/browse/sensor/cloud/src/config.py

Si noti che questo utilizza il robot Appengine per autenticare con BigQuery, quindi aggiungerà l'account Robot all'ACL del set di dati.

Nota che se si desidera utilizzare anche il robot per eseguire query, non solo il flusso, è necessario robot per essere un membro del "team" del progetto in modo che sia autorizzato a eseguire posti di lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top