我正在使用 Java 和 SQL 将数据移动到新表中。我想要:
从 BigQuery 中的旧表中提取数据
更新/修改多个条目
将其推送到 BigQuery 中的另一个现有表
不幸的是,一些旧数据遵循不同的模式。一些旧表可能有从一到几百个缺失的列(字段)。我没有任何可靠的方法来生成或填充这些缺失的数据,所以我决定将其保留为空。如何添加具有默认空值的列?
目前,我正在使用 SQL QueryJobConfiguration 来拉取、更新和推送数据到 BQ:
QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder( "SELECT PARSE_TIMESTAMP('%b %d %T %Y', CONCAT(time, ' 2018')) MyTimestamp, * EXCEPT(time)" + "FROM `myProject:MyDataset.MyTable` ") .setUseLegacySql(false) .setWriteDisposition(WriteDisposition.WRITE_APPEND) .setDestinationTable(TableId.of(MyOtherDataset, MyOtherTable)) .build();
当我尝试运行它时,BigQuery 会抛出一个异常,声称数据缺少一列:
线程“主”com.google.cloud.bigquery.BigQueryException 中的异常:架构更新无效。新架构中缺少字段 OtherField
阿晨1998
相关分类