【问题标题】:What is the best way to migrate from google appengine datastore to google cloud bigtable?从 google appengine 数据存储迁移到 google cloud bigtable 的最佳方法是什么?
【发布时间】:2015-07-16 15:28:50
【问题描述】:

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

感谢您的回答, 雅妮丝

【问题讨论】:

    标签: database google-cloud-datastore google-cloud-platform google-cloud-bigtable


    【解决方案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:

    • 仅将数据存储用作键值存储
    • 可以容忍区域数据库
    • 正在运行分析工作负载

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • “由于 gRPC 的限制,Cloud Bigtable 还不能与 Java 或 Python 的常规 GAE 一起使用”哇,很高兴知道。 Go 应用引擎呢?这个限制是否记录在任何地方?如果是这样,我完全错过了。我注意到这些库文档 (cloud.google.com/bigtable/docs/go/reference) 说“如果您的程序在 Google App Engine 或 Google Compute Engine 上运行,则使用应用程序默认凭据是最简单的选择。”这当然意味着支持 GAE。
      • 它需要一个自定义运行时,这意味着您无法在本地调试,但您可以使用 GAE 运行——我将在今天或明天更新说明和示例。
      • 代码示例将是 awesome。我假设那些会出现here?我看到已经有一个 ManagedVM 示例,但没有一个普通的 GAE 示例。
      • stackoverflow.com/questions/31101156/…希望今晚能完成。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多