3

我有一个 appengine 数据存储,我想迁移到 google cloud bigtable。最好的方法是什么?

谢谢你的回答,亚尼斯

4

2 回答 2

1

这些存储系统完全不同。

架构:

  • Cloud Datastore 是一个无架构的文档数据库,而
  • Cloud Bigtable 是具有架构的宽列数据库(简单架构,但架构静止)

可用性和复制:

  • Cloud Datastore 是多区域 (99.95% 可用性 SLA) 为您处理复制
  • Cloud Bigtable 是区域性的(99.9% 可用性 SLA),您需要自己处理复制

工作负载:

  • Cloud Datastore 专为运营工作负载而设计,可处理实时用户路径请求
  • Cloud Bigtable 专为分析工作负载而设计,可处理非关键路径请求,例如报告或后台查询。

因此,您需要:

  • 分析 Cloud Datastore 中的数据以确定 Cloud Bigtable 中需要的架构
  • 对于非平凡的数据模型,确定您将如何修改您的应用程序来处理它(例如复合索引)
  • 确定可用性和复制设置是否满足或需要,在需要时在顶部构建基础设施来处理它(不推荐)
  • 编写一个作业来移动数据,可能使用 Cloud Dataflow 之类的东西

一般来说,除非您满足非常具体的要求,否则您不会希望从 Datastore 迁移到 Bigtable:

  • 仅使用 Datastore 作为 Key-Value 存储
  • 可以容忍区域数据库
  • 正在运行分析工作负载
于 2016-08-22T22:29:15.583 回答
0

首先查看Java Managed VM 示例。JSON 代码可能是最有趣的。(由于 gRPC 的限制,Cloud Bigtable 还不能与 Java 或 Python 的常规 GAE 一起使用)。

Bigtable 每行有一个键,如果您的数据库设计可以使用它,它是一个相当容易的转换。对于其他类型,您可能想要创建 MapReduce 作业。

于 2015-05-06T17:16:11.043 回答