Google bigquery 将10个数据集(每个数据集有80个表)从bigquery导出到google存储的有效方法?
我在BigQuery中有10个数据集,每个数据集有80个表。我知道我可以使用控制台或Web UI将每个数据集中的每个表逐个导出到google存储。这是出于备份目的。然而,这需要一段时间Google bigquery 将10个数据集(每个数据集有80个表)从bigquery导出到google存储的有效方法?,google-bigquery,google-cloud-storage,Google Bigquery,Google Cloud Storage,我在BigQuery中有10个数据集,每个数据集有80个表。我知道我可以使用控制台或Web UI将每个数据集中的每个表逐个导出到google存储。这是出于备份目的。然而,这需要一段时间 我想知道是否有更方便的方法来处理这个问题 您可以使用bq命令行工具() 以下代码将帮助您实现相同的目标: project="bigquery-project" dataset="your-dataset" bucket="your-bucket" # get list of tables tables=$(bq
我想知道是否有更方便的方法来处理这个问题 您可以使用
bq
命令行工具()
以下代码将帮助您实现相同的目标:
project="bigquery-project"
dataset="your-dataset"
bucket="your-bucket"
# get list of tables
tables=$(bq ls "$project:$dataset" | awk '{print $1}' | tail +3)
for table in $tables
do
bq extract --destination_format "CSV" --compression "GZIP" "$project:$dataset.$table" "gs://$bucket/$table/$table.csv.gz"
done
此外,如果您想在async
模式下运行该命令,请将extract命令替换为以下命令
bq --nosync extract --destination_format "CSV" --compression "GZIP" "$project:$dataset.$table" "gs://$bucket/$table/$table.csv.gz"
附言:
- 确保安装了
命令行工具,并且它位于您的环境中。它附带了bq
。要验证是否可以运行googlecloudsdk
bq帮助
bq
模式在命令行中写入多行代码?例如,当我尝试这个#get list of tables=$(bq ls“$project:$dataset”| awk'{print$1}'| tail+3)
,我收到这个错误未知语法
只需将上面的脚本保存在一个文件中,比如说,export_bq.sh
,然后通过运行bash export_bq.sh
来执行它。如果您只想运行单行,请用实际值替换参数$project:$dataset
,谢谢您的回答!你是说我把它保存到本地还是云?有什么指南可以解释这一点吗?例如,我找不到谷歌云的任何资源来解释如何使用bash
运行外部脚本?我是否遗漏了什么,或者没有足够的文档?