概览
Spanner 导入和导出功能可帮助您使用 Dataflow 将数据批量移入或移出 Spanner 数据库。您可以使用 Avro 或 CSV 文件格式将任何 Spanner 数据库导出到 Cloud Storage 存储桶中。您还可以将数据从 Avro 或 CSV 文件导入新的 Spanner 数据库中。
用例
导入和导出功能的使用场景包括:
- 批量加载:您可以使用导入功能将数据批量加载到 Spanner 中。
长期备份和归档:您可以随时导出数据库,并将其存储在您选择的 Cloud Storage 存储桶位置,以便进行长期备份或归档。此外,您还可以使用时间点恢复功能,从过去的特定时间戳导出数据库。
请注意,Spanner 还提供了托管式备份和恢复功能,以实现更快的灾难恢复用例。
将数据库复制到开发或测试项目:您可以从生产项目中导出数据库,然后将其导入到开发或测试项目中,以用于集成测试或其他实验。
注入以进行分析:您可以使用数据库导出功能将运营数据批量注入到 BigQuery 等分析服务。BigQuery 可以自动从 Cloud Storage 存储桶中注入 Avro 格式的数据,让您更轻松地对运营数据运行分析。
请注意,如果您希望使用 BigQuery 实时分析 Spanner 数据,而无需复制或移动这些数据,则可以改用 Spanner 联合查询。
文件格式比较
下表比较了导入和导出 Spanner 数据时 Avro 和 CSV 文件格式之间的功能差异。
有关导入或导出这些格式文件的详细说明,包括可能适用的限制信息,请参阅下文中的后续步骤。
能力 | Avro 格式 | CSV 格式 |
---|---|---|
导入或导出整个数据库 | 是 | 否 |
能够仅导出数据库中选定的表 | 是* | 是† |
能够导入之前导出的表 | 是* | 是† |
按过去的时间戳导出 | 是 | 是 |
使用 Google Cloud CLI 导入或导出 | 是 | 是 |
使用 Google Cloud 控制台的 Dataflow 页面导入或导出 | 是 | 是 |
使用 Google Cloud 控制台的 Spanner 页面导入或导出 | 是* | 否 |
* 请参阅下文的“关于 Avro 导入和导出的说明”。
† 请参阅下文的“关于 CSV 导入和导出的说明”。
Avro 导入和导出说明
导出为 Avro 格式时,您可以指定要导出的表的列表。以这种方式导出的所有子表都需要与其父表一起存在。Spanner 会在导出的文件中维护整个数据库架构。
从 Avro 格式导入数据时,Spanner 会重新创建所导出数据库的整个架构,包括所有表。原始导出中包含的表会接收其所有导出的数据;所有其他表将保留为空。
Google Cloud 控制台的 Spanner 页面提供了有限的 Avro 格式导入和导出选项。例如,它不提供网络和子网选项。如需查看更多选项,请改用 Dataflow 页面。
有关 CSV 导入和导出的注意事项
Spanner 限制您一次只能将一个表导出为 CSV 格式。导出时,系统不会导出架构,而只会导出数据。
从 CSV 文件导入之前,您需要手动创建 JSON 清单。
价格
Spanner 不会因使用导出或导入工具而产生额外费用;将数据库导入 Spanner 时,您只需按标准费率支付数据存储费用。但是,导入和导出数据库可能会产生其他相关费用。如需了解详情,请参阅 Spanner pricing页面。
后续步骤
- 了解如何将数据库从 Spanner 导出到 Avro
- 了解如何导入 Spanner Avro 文件
- 了解如何以 CSV 格式导入和导出数据
- 了解如何从非 Spanner 数据库导入数据