如何在BigQuery中备份数据集?

时间:2018-11-20 16:13:23

标签: google-bigquery backup

我们希望为BigQuery数据集创建一个备份副本,以防万一表被意外删除,因为它只能恢复within 2 days

有没有办法延长恢复期的持续时间?如果没有,我们如何在BigQuery中创建保留期为30天的数据集备份?

2 个答案:

答案 0 :(得分:0)

当前无法延长恢复期的持续时间。如Katayoo​​n所评论,已经提出了一项功能要求,要求具有延长恢复期的能力。

以下是一个公共链接,用于监视有关该问题的进度:https://issuetracker.google.com/120038872

要在BigQuery中备份数据集,您可以复制数据集,或者作为更可行的解决方案,将数据导出到Cloud Storage,以便稍后再导入。 Cloud Storage允许您设置保留期限和生命周期策略,这将使您共同确保数据在期望的时间内保持不受干扰,并且如果希望节省存储成本,则可以在给定的时间后将其删除。

关于如何在BigQuery中导出: 您可以通过Web UI,命令行,API并使用各种语言(例如C#,Go,Python和Java)将表以AVRO,JSON或CSV文件的形式导出到Cloud Storage,只要两者位于同一位置即可。导出表还有其他限制,例如文件大小,整数编码,数据压缩等。 链接到表的导出和限制: https://cloud.google.com/bigquery/docs/exporting-data

您可以在此处找到有关过程的说明: 保留政策和存储桶锁定:https://cloud.google.com/storage/docs/using-bucket-lock#lock-bucket 对象生命周期管理: https://cloud.google.com/storage/docs/managing-lifecycles

可以使用各种文件格式将数据加载到BigQuery中,例如CSV,JSON,Avro,Parquet或ORC等。目前,您只能直接从本地存储或Google存储空间加载。通过以下链接获取有关加载数据,文件格式,数据源和限制的更多信息:https://cloud.google.com/bigquery/docs/loading-data

有关的更多信息 导出表:https://cloud.google.com/bigquery/docs/exporting-data 导出限制:https://cloud.google.com/bigquery/docs/exporting-data#export_limitations 将数据加载到BigQuery中:https://cloud.google.com/bigquery/docs/loading-data 通配符:https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames 合并文件:https://cloud.google.com/storage/docs/gsutil/commands/compose

答案 1 :(得分:0)

您可以使用https://github.com/GoogleCloudPlatform/bigquery-oreilly-book/tree/master/blogs/bigquery_backup中的工具进行备份和还原:

将表格备份到GCS

./bq_backup.py --input dataset.tablename --output gs://BUCKET/backup

这会将schema.json,tabledef.json和AVRO格式的提取数据保存到GCS。

您还可以备份数据集中的所有表:

./bq_backup.py --input dataset --output gs://BUCKET/backup

通过指定目标数据集来一对一地还原表

./bq_restore.py --input gs://BUCKET/backup/fromdataset/fromtable --output destdataset

对于视图,备份将存储视图定义,而还原将创建一个视图。