5

我在一个数据集中有大约 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 个表吗?

4

2 回答 2

10

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

您还可以为bqin设置默认值$HOME/.bigqueryrc

向 .bigqueryrc 添加标志

于 2019-01-15T23:44:04.650 回答
6

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

bq ls --max_results 1000 'project_id:dataset'

注意:--max_results number_based_on_Table_count

于 2020-07-21T20:01:30.063 回答