Spanner 导入和导出概览

您可以使用以下任一方法将大量数据导入 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 文件格式。
可移植性 您可以在源数据库所在的同一实例中创建备份。

创建备份后,如果您需要跨区域或跨项目备份,可以将备份复制到其他区域或项目中的实例。然后,您可以从备份恢复为同一项目中的任何实例中的新数据库。您要恢复到的实例应具有与存储备份的实例相同的实例配置。
导出的数据库位于 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

限制

您无法以 Avro 格式导出和导入本地群组

CSV 文件

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

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

价格

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

后续步骤