从 appengine 上传到 bigquery 时如何忽略未知值

Posted

技术标签:

【中文标题】从 appengine 上传到 bigquery 时如何忽略未知值【英文标题】:How to ignore unknown values when uploading to bigquery from appengine 【发布时间】:2016-12-01 16:09:13 【问题描述】:

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

这是我使用来自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();



现在我如何进行大查询ignoreUnknownValues? 有没有我可以使用的库?

【问题讨论】:

【参考方案1】:

请看

TableDataInsertAllRequest.setIgnoreUnknownValues()

https://developers.google.com/resources/api-libraries/documentation/bigquery/v2/java/latest/com/google/api/services/bigquery/model/TableDataInsertAllRequest.html#setIgnoreUnknownValues(java.lang.Boolean)

【讨论】:

以上是关于从 appengine 上传到 bigquery 时如何忽略未知值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Appengine和来自API的Python脚本流数据将数据流式传输到Google Cloud BigQuery?

在 1 个请求中将多个文件从 Android 上传到 AppEngine

AppEngine BigQuery PHP 库在运行时不隐含?

从 python 脚本将日志摄取到 bigquery

在 Google AppEngine 中读取 Java 资源文件

Google api - bigquery & Appengine - 无法创建数据集