提取 BigQuery 分区表

Tri*_*osh 5 google-bigquery

有没有办法用一个命令提取完整的 BigQuery 分区表,以便将每个分区的数据提取到格式为 part_col=date_yyyy-mm-dd 的单独文件夹中

由于 Bigquery 分区表可以从 hive 类型的分区目录中读取文件,有没有一种方法可以以类似的方式提取数据。我可以单独提取每个分区,但是当我提取很多分区时这很麻烦

Héc*_*eri 8

您可以以编程方式执行此操作。例如,您可以使用分区装饰器(例如 table$20190801)导出分区数据。然后在 bq extract 命令上,您可以对 GCS 对象使用URI 模式(查看工作人员模式的示例)。

由于所有对象都在同一个存储桶中,文件夹只是一种分层错觉,因此您也可以在文件夹上指定 URI 模式,但不能在存储桶上指定。

因此,您将执行一个脚本,在其中循环 DATE 值,例如:

bq extract 
--destination_format [CSV, NEWLINE_DELIMITED_JSON, AVRO] 
--compression [GZIP, AVRO supports DEFLATE and SNAPPY] 
--field_delimiter [DELIMITER] 
--print_header [true, false] 
[PROJECT_ID]:[DATASET].[TABLE]$[DATE]
gs://[BUCKET]/part_col=[DATE]/[FILENAME]-*.[csv, json, avro]
Run Code Online (Sandbox Code Playgroud)

您不能仅使用 bq 命令自动执行此操作。为此,最好按照 Felipe 的建议提出功能请求