是否有一种方法可以使用一个命令提取完整的BigQuery分区表,以便将每个分区的数据提取到part_col = date_yyyy-mm-dd格式的单独文件夹中
由于Bigquery分区表可以从配置单元类型的分区目录中读取文件,因此有一种方法可以类似地提取数据。我可以分别提取每个分区,但是当我提取很多分区时非常麻烦
答案 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。