如何将包含 Google BigQuery 中数据集的项目备份到另一个 GCS 存储桶?使用 Python 脚本来完成此任务是否可行?如何自动化该过程?
只是想收集想法来实施灾难恢复。将项目克隆到另一个 GCP 存储桶中
数据结构如下:
Project -> dataset -> table
-> table
-> ...
-> dataset -> table
-> table
-> ...
-> ...
现在进入下一部分 - 绝对可以创建一个执行此备份的 python 脚本。您甚至可以按计划使用 Google Cloud 服务帐户将其作为 Google Cloud Function 运行,它会自动将您的整个数据集/项目复制到您决定执行此操作的任何位置。
您应该使用
google-bigquery
python 包,这将允许您连接到 bigquery 并创建导出作业。
您可以参考Google文档提供的示例代码来开始使用:
# from google.cloud import bigquery
# client = bigquery.Client()
# bucket_name = 'my-bucket'
project = "bigquery-public-data"
dataset_id = "samples"
table_id = "shakespeare"
destination_uri = "gs://{}/{}".format(bucket_name, "shakespeare.csv")
dataset_ref = bigquery.DatasetReference(project, dataset_id)
table_ref = dataset_ref.table(table_id)
extract_job = client.extract_table(
table_ref,
destination_uri,
# Location must match that of the source table.
location="US",
) # API request
extract_job.result() # Waits for job to complete.
print(
"Exported {}:{}.{} to {}".format(project, dataset_id, table_id, destination_uri)
)