获取 BigQuery 外部表的 GCS 路径元数据

Posted

技术标签:

【中文标题】获取 BigQuery 外部表的 GCS 路径元数据【英文标题】:Getting GCS path metadata for BigQuery external tables 【发布时间】:2020-10-31 11:00:29 【问题描述】:

使用永久外部表查询 Cloud Storage 数据时,

CREATE OR REPLACE EXTERNAL TABLE mydataset.sales
OPTIONS (
  format = 'CSV',
  uris = ['gs://mybucket/sales-google.csv', 'gs://mybucket/sales-microsoft.csv']
)

有没有办法知道该行是从哪个文件中提取的?元数据?

SELECT * FROM mydataset.sales

【问题讨论】:

【参考方案1】:

您可以使用此处概述的 _FILE_NAME 伪列:

https://cloud.google.com/bigquery/external-data-drive#the_file_name_pseudo_column

【讨论】:

【参考方案2】:

使用_FIE_NAME伪列:

SELECT 
  *,
  _FILE_NAME AS file_name
FROM mydataset.sales

【讨论】:

以上是关于获取 BigQuery 外部表的 GCS 路径元数据的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 获取外部代码资源的元数据时出错

如何将 GCS 中的 csv 随机样本导出到 BigQuery

从外部表读取与加载数据并在 Bigquery 中读取

BigQuery 最佳 ETL 方法(外部表和视图与数据流)

Bigquery 导出拆分为多个文件,其中包含一些空文件

分区 BigQuery 表,从 AVRO 加载