您可以使用以下任一方法将大量数据导入或导出到 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 Storage 和 Dataflow 时,导入和导出的结算更加复杂。如需了解详情,请参阅数据库导出和导入价格。 |
恢复时间 | 恢复操作分为两种:恢复和优化。恢复操作提供快速首字节时间,因为数据库直接装载备份而不复制数据。恢复操作完成后,数据库便可以使用,但在优化过程中,读取延迟可能会略高。如需了解详情,请参阅恢复的工作原理。 | 导入速度较慢。您需要等待所有数据写入数据库。 |
比较文件格式
下表比较了在导入和导出 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 时,您只需按标准费率支付数据存储费。但是,导入和导出数据库可能产生其他相关费用。如需了解详情,请参阅数据库导出和导入价格。