使用bq CLI在bigquery中列出数据集中的所有表,并将它们存储到Google云存储中

时间:2019-01-15 23:20:08

标签: google-cloud-platform google-bigquery gcloud-cli

我在数据集中大约有108张表。我正在尝试使用以下bash脚本提取所有这些表:

# get list of tables
tables=$(bq ls "$project:$dataset" | awk '{print $1}' | tail +3)

# extract into storage
for table in $tables
do
    bq extract --destination_format "NEWLINE_DELIMITED_JSON" --compression "GZIP" "$project:$dataset.$table" "gs://$bucket/$dataset/$table.json.gz" 
done

但是,bq ls一次只能显示大约50张表,因此我无法将它们提取到云存储中。

我是否可以使用bq ls命令访问所有108个表?

2 个答案:

答案 0 :(得分:4)

列出bq ls将显示的表时的默认行数是100。您可以使用命令行选项--max_results-n进行更改。

您还可以在bq中为$HOME/.bigqueryrc设置默认值。

Adding flags to .bigqueryrc

答案 1 :(得分:2)

我尝试使用CLI,此命令对我有用:-

bq ls --max_results 1000 'project_id:dataset'

注意:--max_resultsnumber_based_on_Table_count