2016-11-15 1 views
0

Ich versuche, Daten in BigQuery in appengine hochladen.Stream Daten zu BigQuery in Google Appengine - Java

Für den Speicher hochladen Ich habe eine spezielle library for appengine

import com.google.appengine.tools.cloudstorage.*; 

Meine Frage ist: Gibt es eine Bibliothek für die in appengine BigQuery Hochladen oder sollte ich die regelmäßige api-Bibliothek verwenden?

hier ist das, was ich versuchte, die gut funktioniert - mit dem regelmäßigen api von diesen streaming sample:

@Override 
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { 

     String projectId = "myprojectId"; 
     String datasetId = "mydatasetId"; 
     String tableId = "person"; 
     System.out.println("Enter JSON to stream to BigQuery: \n" + "Press End-of-stream (CTRL-D) to stop"); 

     String string = "[\n {\"Name\": \"test\", \"Age\": 0, \"Weight\": 100.0, \"IsMagic\": false},\n {\"Name\": \"test\", \"Age\": 1, \"Weight\": 100.0, \"IsMagic\": false},\n {\"Name\": \"test\", \"Age\": 2, \"Weight\": 100.0, \"IsMagic\": false},\n {\"Name\": \"test\", \"Age\": 3, \"Weight\": 100.0, \"IsMagic\": false},\n {\"Name\": \"test\", \"Age\": 0, \"Weight\": 100.0, \"IsMagic\": false}\n]"; 
     JsonReader jsonReader = new JsonReader(new StringReader(string)); 

     Iterator<TableDataInsertAllResponse> responses = StreamingSample.run(projectId, datasetId, tableId, jsonReader); 

     while (responses.hasNext()) { 
      log.info(responses.next()); 
     } 

     jsonReader.close(); 


    } 

Ist dies der richtige Weg?

Antwort

1

Es gibt keine BigQuery-Bibliothek für App Engine. Ihr Beispiel ist jedoch korrekt und es wird empfohlen, Streaming-Daten hochzuladen.