我正在尝试将数据上传到appengine中的bigquery。

为了上传到存储,我有一个特殊的library for appengine

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


我的问题是:是否有一个库可以上传到appengine中的bigquery还是应该使用常规api库?

这是我尝试的效果很好的方法-使用来自此streaming sample的常规api:

@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();


    }


这是正确的方法吗?

最佳答案

没有适用于App Engine的BigQuery库。不过,您的示例是正确的,建议您使用此方法上传流数据。

关于java - 将数据流传输到Google App Engine中的bigquery-Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40606263/

10-10 14:48