【问题标题】:How to handle BigQuery insert errors in dataflow pipelines using Java?如何使用 Java 处理数据流管道中的 BigQuery 插入错误?
【发布时间】:2019-08-14 00:31:45
【问题描述】:

我正在解析 XML 并使用数据流管道写入 Bigquery。如果在 BigQuery 中插入失败,如何处理错误?我想编写一个自定义代码来将失败的 xml 写入错误存储桶。

【问题讨论】:

    标签: java google-cloud-platform apache-beam


    【解决方案1】:

    以下代码在写入 bigquery 时获取失败的行:

    TableRow row1 = new TableRow().set("name", "a").set("number", "1");
    TableRow row2 = new TableRow().set("name", "b").set("number", "2");
    TableRow row3 = new TableRow().set("name", "c").set("number", "error");    
    PCollection<TableRow> failedRows =
            p.apply(Create.of(row1, row2, row3))
                .apply(
                    BigQueryIO.writeTableRows()
                        .to("project-id:dataset-id.table-id")
                        .withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
                        .withSchema(
                            new TableSchema()
                                .setFields(
                                    ImmutableList.of(
                                        new TableFieldSchema().setName("name").setType("STRING"),
                                        new TableFieldSchema().setName("number").setType("INTEGER"))))             
                .getFailedInserts();
    

    【讨论】:

      猜你喜欢
      • 2020-03-10
      • 1970-01-01
      • 2016-02-26
      • 2017-07-20
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      相关资源
      最近更新 更多