如何在云功能中为具有不同架构的CSV文件准备架构

时间:2018-07-11 18:26:17

标签: google-cloud-platform google-bigquery google-cloud-functions

我有一个云功能,可以读取输入的csv文件并将其加载到大查询中。现在的挑战是,我可以获取具有不同架构的csv文件(不是结尾,顺序可以在任何地方更改),如何通过读取头记录和准备架构并为不属于此的列插入null /默认值来处理文件出现在输入中。

1 个答案:

答案 0 :(得分:0)

确保将--schema_update_option设置为ALLOW_FIELD_ADDITION并指定新表的模式,例如

bq --project_id <project_id> load --source_format=CSV --schema_update_option ALLOW_FIELD_ADDITION <dataset_id>.<table_id> <data> new_col:STRING,new_col2:STRING

取决于原始的表架构,您可能需要使用--schema_update_option ALLOW_FIELD_RELAXATION来将必填字段放松为可空值。

https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv#appending_to_or_overwriting_a_table_with_csv_data