Spanner 导入和导出概览

您可以使用以下任一方法将大量数据导入或导出到 Spanner:

  • 使用 Dataflow 导入或导出任何 Spanner 数据库。
  • 使用 Avro 或 CSV 文件格式将任何 Spanner 数据库导出到 Cloud Storage 存储桶。
  • 将数据从 Avro 或 CSV 文件导入新的 Spanner 数据库。

使用场景

您可以将 Spanner 导入和导出功能用于以下用例:

  • 批量加载:您可以将数据批量导入 Spanner。
  • 长期备份和归档:您可以随时导出数据库,并将其存储在您选择的 Cloud Storage 存储桶位置,以进行长期备份或归档。此外,您还可以使用时间点恢复功能,从过去的特定时间戳导出数据库。如果您希望采用恢复速度更快但保留期限较短的灾难恢复技术,不妨考虑使用备份时间点恢复 (PITR)

  • 将数据库复制到开发或测试项目:您可以从生产项目中导出数据库,然后将其导入开发或测试项目,以用于集成测试或其他实验。

  • 注入以进行分析:您可以导出数据库,以便将运营数据批量注入到 BigQuery 等分析服务中。BigQuery 可以自动从 Cloud Storage 存储桶中注入 Avro 格式的数据,让您更轻松地对运营数据运行分析。如果您想使用 BigQuery 对 Spanner 数据进行实时分析,而无需复制或移动数据,则可以改用 Spanner 联合查询。

比较导入和导出与备份和恢复

Spanner 导入和导出在许多方面与备份和恢复类似。下表介绍了它们之间的相似之处和不同之处,帮助您确定要使用哪一个。

备份和恢复导入和导出
数据一致性 备份和导出的数据库具有事务一致性和外部一致性。
性能影响 备份对实例性能没有影响。Spanner 使用不会在实例的服务器资源上绘制的专用作业执行备份。 导出操作作为中优先级任务运行,以最大限度地减少对数据库性能的影响。如需了解详情,请参阅任务优先级
存储格式 使用专为快速恢复设计的专有加密格式。 支持 CSV 和 Avro 文件格式。
可移植性 您可以在与源数据库位于同一实例中创建备份。

创建备份后,如果您需要跨区域或跨项目备份,可以将备份复制到其他区域或项目中的实例。然后,您可以将备份作为新数据库restore到同一项目中的任何实例。您要恢复到的目标实例的配置应与存储备份的实例的配置相同。
导出的数据库位于 Cloud Storage,并且数据可以迁移到支持 CSV 或 Avro 的任何系统。
保留 备份最多可保留一年。 导出的数据库存储在 Cloud Storage 中,默认情况下,这些数据库会保留在此处,直到删除为止。您可以自定义生命周期保留政策。
价格 系统会根据每单位时间使用的存储空间向您的 Spanner 项目收取备份费用。如需了解详情,请参阅价格部分。 使用 Cloud StorageDataflow 时,导入和导出的结算更加复杂。如需了解详情,请参阅数据库导出和导入价格
恢复时间 恢复操作分为两种:恢复和优化。恢复操作提供快速首字节时间,因为数据库直接装载备份而不复制数据。恢复操作完成后,数据库便可以使用,但在优化过程中,读取延迟可能会略高。如需了解详情,请参阅恢复的工作原理 导入速度较慢。您需要等待所有数据写入数据库。

比较文件格式

下表比较了在导入和导出 Spanner 数据时,Avro 和 CSV 文件格式的功能差异。

能力 Avro 格式 CSV 格式
导入或导出整个数据库
能够仅导出数据库中的选定表
能够导入之前导出的表
导出某个过去时间戳的数据
使用 Google Cloud CLI 导入或导出
使用 Dataflow 导入或导出
使用 Spanner 导入或导出

Avro 文件

导出为 Avro 格式时,您可以指定要导出的表的列表。以这种方式导出的所有子表都必须与其父表一起导出。Spanner 会在导出的文件中维护整个数据库架构。

从 Avro 格式导入时,Spanner 会重新创建导出数据库的整个架构,包括所有表。原始导出内容中包含的表会收到其导出数据的全部内容;所有其他表都保持空白状态。

Google Cloud 控制台的 Spanner 页面提供有限的 Avro 格式导入和导出选项。例如,您无法设置网络和子网选项。如需查看更多选项,请改用 Dataflow 页面。

CSV 文件

您一次只能以 CSV 格式导出一个 Spanner 表。导出时,系统不会导出架构,只会导出数据。

在从 CSV 文件导入之前,您需要创建 JSON 清单文件。

价格

Spanner 不会对使用导出或导入工具收取额外费用;将数据库导入 Spanner 时,您只需按标准费率支付数据存储费。但是,导入和导出数据库可能产生其他相关费用。如需了解详情,请参阅数据库导出和导入价格

后续步骤