使用BQ加载加载兽人文件时,保留BQ表格架构



使用" bq load"命令将orc文件加载到现有的BQ表中时,我观察到一旦加载数据,表格架(表的列名称(也会更改。

要求是将ORC文件从GCS加载到BigQuery的登台表。此步骤IM试图使用" BQ Load"命令来实现,但它改变了表的现有模式。

示例代码:

bq load -replace -source_format = orc some_dateset.some_table_stable_staging gs://some_bucket/some_table/*

即使将ORC文件加载到表中,我也希望将实际的列名保留在BigQuery表中。但是截至目前,该表的列名根据ORC文件架构

更改

我确实在我的数据上提供了AVRO和orc文件的测试BQ加载命令。

  1. --replace or replace=true
    标志有望删除所有数据,并且正在这样做。
    因此,从字面上发生的事情,所有的表格和模式都将被删除并用文件中的新架构代替。

  2. 如果要将数据附加到表,则需要使用
    --noreplace or --replace=false
    仅当您的兽人文件架构与表中已经存在的相同时,此标志才能正常工作。

  3. 如果您的数据模式与表中定义的架构有所不同,则需要使用schema_update_option:
    --schema_update_option=ALLOW_FIELD_ADDITION

因此,最后您只需要使用:

bq load --schema_update_option=ALLOW_FIELD_ADDITION --source_format=ORC <project_id>:<schema>.<table> gs://<bucket_name>/<file_name>

相关内容

  • 没有找到相关文章

最新更新