使用 bq CLI 列出 bigquery 数据集中的所有表并将它们存储到 google 云存储
List all the tables in a dataset in bigquery using bq CLI and store them to google cloud storage
我在一个数据集中有大约 108 个表。我正在尝试使用以下 bash 脚本提取所有这些表:
# get list of tables
tables=$(bq ls "$project:$dataset" | awk '{print }' | 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 个表?
列出表时 bq ls
将显示的默认行数是 100。您可以使用命令行选项 --max_results
或 -n
.
更改此设置
您还可以在 $HOME/.bigqueryrc
中设置 bq
的默认值。
我尝试使用 CLI,这个命令对我有用:-
bq ls --max_results 1000 'project_id:dataset'
注:--max_resultsnumber_based_on_Table_count
我在一个数据集中有大约 108 个表。我正在尝试使用以下 bash 脚本提取所有这些表:
# get list of tables
tables=$(bq ls "$project:$dataset" | awk '{print }' | 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 个表?
列出表时 bq ls
将显示的默认行数是 100。您可以使用命令行选项 --max_results
或 -n
.
您还可以在 $HOME/.bigqueryrc
中设置 bq
的默认值。
我尝试使用 CLI,这个命令对我有用:-
bq ls --max_results 1000 'project_id:dataset'
注:--max_resultsnumber_based_on_Table_count