提取BigQuery分区表

时间:2019-07-02 14:38:09

标签: google-bigquery

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

由于Bigquery分区表可以从配置单元类型的分区目录中读取文件,因此有一种方法可以类似地提取数据。我可以分别提取每个分区,但是当我提取很多分区时非常麻烦

1 个答案:

答案 0 :(得分:2)

您可以通过编程方式执行此操作。例如,您可以export partitioned data by using the partition decorator如table $ 20190801。然后,在bq extract命令上,可以对GCS对象使用URI Patterns(看一下worker模式的例子)。

由于所有对象都将位于同一存储桶中,因此文件夹只是an hierarchical illusion,因此您也可以在文件夹上指定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]

仅使用bq命令不能自动执行此操作。为此,最好使用Felipe建议的raise a feature request