将数据从一个 spanner db 复制到现有的 spanner db

copy data from one spanner db to an existing spanner db

我需要找到一种工具或技术来从一个 spanner db 生成插入语句,以便我可以将它们插入另一个 spanner db。我需要有选择地选择要迁移的插入语句或行,这样 spanner export/import 工具就不起作用了。目标数据库已经存在,并且其中包含现有数据。数据量很小 - 大约 15 table 秒,每个 table 有 10 到 20 行。任何建议将不胜感激。

您可以使用 Cloud Spanner Dataflow Connector 编写 pipeline/data 加载器来将数据移入和移出 Spanner。您可以将自定义 SQL 查询与数据流 reader 结合使用,以读取要导出的数据子集。

根据您的 table 的宽度,如果您处理的数据量相对较少,则更简单的方法是使用 gcloud spanner databases execute-sql 命令行实用程序。对于每个 table,您可以使用该实用程序 运行 一个 SQL 查询来获取要从 table 导出的行并将结果写入使用 --format=csv 参数以 csv 格式生成文件。然后,您可以围绕 Cloud Spanner Insert API 编写一个小型包装器,以从 CSV 文件中读取数据并将插入变更发送到目标数据库。