BigQuery - 您可以通过 ALLOW_FIELD_ADDITION 添加值吗?

Posted

技术标签:

【中文标题】BigQuery - 您可以通过 ALLOW_FIELD_ADDITION 添加值吗?【英文标题】:BigQuery - can you add a value via ALLOW_FIELD_ADDITION? 【发布时间】:2017-11-15 11:53:12 【问题描述】:

我正在尝试在将数据加载到 BigQuery 时添加一个新列,其中包含一个不在我的源文件/数据中的重复/静态值。

我已经设法在加载时使用 ALLOW_FIELD_ADDITION 选项向我的表中添加了一个可为空的列,但这只是添加了一个值为空的列。

我将如何为这个新列中的每一行设置一个静态值?

我的加载配置如下所示:

config= 
  'configuration'=> 
      'load'=> 
        'sourceUris'=> files_array,
        'schema'=> 
          'fields'=> fields_array
          ,
        'schemaUpdateOptions' => [ 'ALLOW_FIELD_ADDITION'=> true],  
        'destinationTable'=> 
          'projectId'=> my_project,
          'datasetId'=> 'my_dataset',
          'tableId'=> my_table
        ,
        'sourceFormat' => 'NEWLINE_DELIMITED_JSON',
        'createDisposition' => 'CREATE_IF_NEEDED',
        'writeDisposition' => 'WRITE_TRUNCATE',
        'maxBadRecords'=> 10,
      
    ,
  

提前致谢!

【问题讨论】:

【参考方案1】:

您必须分两步完成:

第 1 步:使用现有列加载数据。

第 2 步:SELECT *, 3 AS new_column FROM ...,并将此查询的结果保存为表格。

【讨论】:

谢谢,费利佩。我一直在想,如果我可以在加载数据时附加文件名,另一种解决方案会起作用吗?我不认为这是可能的?我的文件名遵循包含 ISO2 代码的约定。 有趣的问题!您会将其作为一个不同的问题提交吗? ***.com/questions/47325630/…@Felipe Hoffa

以上是关于BigQuery - 您可以通过 ALLOW_FIELD_ADDITION 添加值吗?的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery - 您可以通过 ALLOW_FIELD_ADDITION 添加值吗?

您可以 SQL 填充 BigQuery 表并在同一个 API 调用中设置表列模式吗?

谷歌 bigquery - 更新 sql?

您可以通过 bigquery API 在单个请求中将数据导入多个表吗?

在新的欧洲区域中移动 BigQuery 数据

我们可以请求从 Google Cloud Storage 到 BigQuery 的多少并发上传?