【问题标题】:Push Data to Existing Table in BigQuery将数据推送到 BigQuery 中的现有表
【发布时间】:2019-01-28 18:02:28
【问题描述】:

我正在使用 Java 和 SQL 将数据推送到 BigQuery 中的时间戳分区表。在我的代码中,我指定了目标表:

.setDestinationTable(TableId.of("MyDataset", "MyTable"))

当我运行它时,它会完美地创建一个表格。但是,当我尝试插入新数据时,它会抛出 BigQueryException 声称该表已存在:

Exception in thread "main" com.google.cloud.bigquery.BigQueryException: 
Already Exists: Table MyProject:MyDataset.MyTable

【问题讨论】:

    标签: java sql google-bigquery


    【解决方案1】:

    经过一些文档挖掘,我找到了一个可行的解决方案:

    .setWriteDisposition(WriteDisposition.WRITE_APPEND)
    

    添加上述内容会附加任何数据(即使它是重复的)。我不确定为什么 .setDestinationTable() 的默认设置等同于 WRITE_EMPTY,它会返回重复错误。 .setDestinationTable() 的谷歌文档是:

    描述应存储查询结果的表。如果不 目前,将创建一个新表来存储结果。

    文档可能应该澄清默认值。

    【讨论】:

      猜你喜欢
      • 2014-12-31
      • 2021-06-18
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 2022-06-14
      相关资源
      最近更新 更多