如何从 Cloud Datastore 迁移到 Cloud Spanner?

How to migrate from Cloud Datastore to Cloud Spanner?

我正在查看数据流以尝试将数据从 Datastore 导出到 Spanner。 Spanner 似乎只通过数据流连接器接受 avro 文件。我能找到的唯一数据流模板是从数据存储到文本文件。并且数据存储导出服务仅导出为 levelDB 格式。 任何线索都会有所帮助,谢谢!

有从 MySQL 或 PostgreSQL 等其他关系数据库迁移到 Spanner 的指南,但如果您想将数据从 Datastore 等 NoSQL 数据库迁移到关系数据库,我找不到任何指南比如扳手。

您可以尝试的一件事是数据流。 Dataflow 从 Datastore 读取(叉车或进行一些数据处理),然后使用 SpannerIO 写入 Spanner。 I/O transforms. Querying Datastore with Python 也可以给你出出主意。

另一种可能的方法是从 Datastore 导出到 BigQuery [1]。然后 BigQuery 可以将 Avro 文件导出到 GCS [2],然后可以将其导入 Cloud Spanner [3]。

[1] https://cloud.google.com/bigquery/docs/loading-data-cloud-datastore

[2] https://cloud.google.com/bigquery/docs/exporting-data

[3] https://cloud.google.com/spanner/docs/import-non-spanner

我最终得到的解决方案是将数据提取为 csv,然后使用 PySpark 转换为 Avro。最后使用 Dataflow 插入 Spanner。