2016-07-22 14 views
0

Ich möchte Abfrageergebnisse in neue Tabelle speichern. Mit BigQuery Online-Editor wie bigquery.cloud.google mache ich es einfach mit micro-solution von Felipe Hoffa. Ergebnisse mit ~ 150.000.000 Zeilen mit mehreren Sekunden eingefügt.Wie können BigQuery-Abfrageergebnisse in einer anderen Tabelle gespeichert werden?

Aber wie führe ich Abfrage mit "Zieltabelle" Parameter über BigQuery API?

+0

die configuration.query.destinationTable Set * Felder in der Job-Konfiguration, dann jobs.insert nennen? https://cloud.google.com/bigquery/docs/reference/v2/jobs/insert enthält weitere Informationen. – shollyman

Antwort

3

Mit der Jobs.insert API-Aufruf.

Zum Beispiel in Java.

[...] 
TableReference tableRef = new TableReference(); 
tableRef.setProjectId("<project>"); 
tableRef.setDatasetId("<dataset>"); 
tableRef.setTableId("<name>"); 

JobConfigurationQuery queryConfig = new JobConfigurationQuery(); 
queryConfig.setDestinationTable(tableRef); 
queryConfig.setAllowLargeResults(true); 
queryConfig.setQuery("some sql"); 
queryConfig.setCreateDisposition(CREATE_IF_NEEDED); 
queryConfig.setWriteDisposition(WRITE_APPEND); 

JobConfiguration config = new JobConfiguration().setQuery(queryConfig); 
Job job = new Job(); 
job.setConfiguration(config); 

Bigquery.Jobs.Insert insert = bigquery.jobs().insert("<projectid>", job); 
JobReference jobId = insert.execute().getJobReference(); 
[...]