在导入BigQuery时将文件名添加为列?

时间:2017-11-16 09:13:50

标签: google-bigquery google-cloud-storage

这是一个关于将数据文件从Google云端存储导入BigQuery的问题。

我有许多遵循严格命名约定的JSON文件,以包含一些未包含在JSON数据本身中的关键数据。

例如:

xxx_US_20170101.json.gz
xxx_GB_20170101.json.gz
xxx_DE_20170101.json.gz

哪个是client_country_date.json.gz目前,我在Ruby应用程序中有一些复杂的进程读取文件,附加其他数据,然后将其写回文件,然后导入到单个日常表中BigQuery中的客户端。

我想知道是否可以抓取并解析文件名作为导入BigQuery的一部分?然后,我可以放弃复杂的Ruby进程,这些进程偶尔会在较大的文件上失败。

1 个答案:

答案 0 :(得分:3)

您可以定义指向文件的外部表:

enter image description here

请注意,表类型是“外部表”,并且它指向具有* glob的多个文件。

现在,您可以查询这些文件中的所有数据,并查询元列_FILE_NAME

#standardSQL
SELECT *, _FILE_NAME filename
FROM `project.dataset.table` 

您现在可以将这些结果保存到新的本机表中。

enter image description here

相关问题