在谷歌应用引擎中将数据流式传输到 bigquery - java

Posted

技术标签:

【中文标题】在谷歌应用引擎中将数据流式传输到 bigquery - java【英文标题】:Streamig data to bigquery in google appengine - java 【发布时间】:2016-11-15 09:27:39 【问题描述】:

我正在尝试将数据上传到 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();


    

这是正确的方法吗?

【问题讨论】:

【参考方案1】:

App Engine 没有 BigQuery 库。您的示例是正确的,这是上传流数据的推荐方式。

【讨论】:

以上是关于在谷歌应用引擎中将数据流式传输到 bigquery - java的主要内容,如果未能解决你的问题,请参考以下文章

将数据流式传输到BigQuery

如何在谷歌云数据流中停止流式传输管道

如何在谷歌应用引擎上将帖子从数据库异步加载到 django 模板?

Google BigQuery - 将数据流式传输到 BigQuery

将数据流式传输到 bigquery 仅返回部分数据

将 JSON 流式传输到 Bigquery