Google Cloud Spanner 的外部 Backups/Snapshots
External Backups/Snapshots for Google Cloud Spanner
是否可以对 Google Cloud Spanner Database/table(s) 进行快照?出于合规性原因,我们必须拥有当前数据库的每日快照,以便在发生灾难时可以回滚:这在 Spanner 中可能吗?如果不支持,有意向支持吗?
对于那些可能会问为什么我们需要它的人,因为 Spanner 是 replicated/redundant 等 - 它不能防止人为错误(意外删除 table)或 sabotage/espionage因此问题和要求。
谢谢,M
今天,您可以通过使用您最喜欢的工具(mapreduce、spark、dataflow)读取所有数据并在特定时间戳(使用时间戳边界)读取来流出一致的快照。
https://cloud.google.com/spanner/docs/timestamp-bounds
在数据被垃圾收集之前,您有大约一个小时的时间进行导出。
将来,我们将提供 Apache Beam/Dataflow 连接器,以更具可扩展性的方式执行此操作。这将是我们将 import/export 数据导入 Cloud Spanner 的首选方法。
从长远来看,我们将支持备份和恢复到备份的能力,但该功能目前不可用。
自 2018 年 7 月起,Cloud Spanner 现在提供导入和导出功能,允许您将数据库导出为 Avro 格式。如果您通过 Google Cloud Console 网站访问特定的 Cloud Spanner 数据库,您会在顶部看到导入和导出按钮。只需单击“导出”,填充请求的信息,例如目标 Google Cloud Storage 存储桶,数据库将以 Avro 格式备份到 Google Cloud Storage。如果您需要恢复数据库,请使用 Google Cloud Console 网站的 Cloud Spanner 部分的相应导入功能。
注意:实际的备份和恢复(即导出和导入)是使用 Google Cloud Dataflow 完成的,您需要为数据流操作付费。
根据下面的帖子(也由 eb80 回答),我已经能够通过构建模板和 运行ning gcloud 命令使用他们的 Import/Export DataFlow 作业从 Spanner 成功编写我的备份脚本退出 cron 作业。问题是,当您安排作业时,您需要解析输出并获取作业 ID,以便您可以检查它的状态(同样,我编写了脚本)以及当您获得 JOB_STATE_DONE 或 JOB_STATE_FAILED,就完成了。如果您需要 运行 导入,您将需要该作业 ID,因为特定的备份文件夹结构是:
gs://bucketName/yourFolder/instanceId-databaseId-jobId
How to batch load custom Avro data generated from another source?
Google Cloud Spanner 现在有两种可用于备份的方法。
https://cloud.google.com/spanner/docs/backup
您可以使用内置备份或使用数据流作业执行 export/import。
是否可以对 Google Cloud Spanner Database/table(s) 进行快照?出于合规性原因,我们必须拥有当前数据库的每日快照,以便在发生灾难时可以回滚:这在 Spanner 中可能吗?如果不支持,有意向支持吗?
对于那些可能会问为什么我们需要它的人,因为 Spanner 是 replicated/redundant 等 - 它不能防止人为错误(意外删除 table)或 sabotage/espionage因此问题和要求。
谢谢,M
今天,您可以通过使用您最喜欢的工具(mapreduce、spark、dataflow)读取所有数据并在特定时间戳(使用时间戳边界)读取来流出一致的快照。
https://cloud.google.com/spanner/docs/timestamp-bounds
在数据被垃圾收集之前,您有大约一个小时的时间进行导出。
将来,我们将提供 Apache Beam/Dataflow 连接器,以更具可扩展性的方式执行此操作。这将是我们将 import/export 数据导入 Cloud Spanner 的首选方法。
从长远来看,我们将支持备份和恢复到备份的能力,但该功能目前不可用。
自 2018 年 7 月起,Cloud Spanner 现在提供导入和导出功能,允许您将数据库导出为 Avro 格式。如果您通过 Google Cloud Console 网站访问特定的 Cloud Spanner 数据库,您会在顶部看到导入和导出按钮。只需单击“导出”,填充请求的信息,例如目标 Google Cloud Storage 存储桶,数据库将以 Avro 格式备份到 Google Cloud Storage。如果您需要恢复数据库,请使用 Google Cloud Console 网站的 Cloud Spanner 部分的相应导入功能。
注意:实际的备份和恢复(即导出和导入)是使用 Google Cloud Dataflow 完成的,您需要为数据流操作付费。
根据下面的帖子(也由 eb80 回答),我已经能够通过构建模板和 运行ning gcloud 命令使用他们的 Import/Export DataFlow 作业从 Spanner 成功编写我的备份脚本退出 cron 作业。问题是,当您安排作业时,您需要解析输出并获取作业 ID,以便您可以检查它的状态(同样,我编写了脚本)以及当您获得 JOB_STATE_DONE 或 JOB_STATE_FAILED,就完成了。如果您需要 运行 导入,您将需要该作业 ID,因为特定的备份文件夹结构是:
gs://bucketName/yourFolder/instanceId-databaseId-jobId
How to batch load custom Avro data generated from another source?
Google Cloud Spanner 现在有两种可用于备份的方法。
https://cloud.google.com/spanner/docs/backup
您可以使用内置备份或使用数据流作业执行 export/import。