【问题标题】:Local development with cloud-spanner使用 cloud-spanner 进行本地开发
【发布时间】:2017-07-06 12:10:00
【问题描述】:

有没有办法用 Cloud Spanner 进行本地开发?我查看了文档和 CLI 工具,似乎没有任何内容。或者,有人可以推荐一个读取行为相似的 SQL 数据库(不确定如何处理写入)?

编辑:澄清一下,我正在寻找一个与 Cloud Spanner 具有相同 SQL 风格的数据库,以便我可以在本地进行开发。确切的性能特征不如 API 和一致性行为重要。我认为 Cockroach 不符合这些要求?

【问题讨论】:

    标签: sql database google-cloud-platform google-cloud-spanner cockroachdb


    【解决方案1】:
    推荐的答案 Google Cloud

    现在 Google 提供了一个模拟器,用于本地开发。截至 2020 年 5 月,它处于测试阶段。

    https://cloud.google.com/spanner/docs/emulator

    它仅将数据存储在内存中,但您可以根据需要使用 gcloud 命令行将开发数据备份到磁盘或从磁盘恢复。

    https://cloud.google.com/spanner/docs/backup/gcloud

    【讨论】:

      【解决方案2】:

      正如 Dan 所说,目前支持的方式是拥有多个实例(dev、staging、prod),或者您可以将多个数据库放在一个实例中,以便跨环境分摊资源成本。

      我们知道本地模拟服务器在开发人员需要的生产力功能列表中排名靠前。

      【讨论】:

        【解决方案3】:

        Cloud Spanner 目前没有本地开发选项。您当前的选择是在 GCP 上启动单个节点实例。

        目前没有其他数据库可以像 Cloud Spanner 那样运行,但 CockroachDB 的运行原理类似。由于他们无法使用原子钟和 GPS 单元,因此他们确实做出了不同的权衡。特别是在读写和缺乏“过时的读取”方面。您可以在Jepsen blog 上阅读更多内容:

        Spanner 在每次写入后等待以确保线性化,而 CockroachDB 仅在有争议的读取时阻塞。因此,它的一致性保证稍弱。

        【讨论】:

          【解决方案4】:

          CockroachDB 的读取行为与 Cloud Spanner 类似,您可以在 Mac OS X 和 Linux 以及使用 Docker 的 Windows 上本地运行它。对于本地开发,缺少 TrueTime 并不会产生影响,因为一切都在一台机器上运行。

          对于写作,你现在不走运。 Spanner 有一个用于写入的自定义 API,而 CockroachDB 支持标准的 INSERT/UPDATE/DELETE 语句。这样做的结果是 CockroachDB 更有可能与您选择的 ORM 一起工作,我们正在努力扩展这种支持。

          【讨论】:

          • Cloud Spanner 和 Cockroach 之间的读取是否存在相当大的差异?我的理解是 1) 由于对有争议的读取的阻塞,性能配置文件至少会有所不同,2) 缺乏陈旧的读取功能,3) 如果多键事务读取位于不同的节点上,它们可能无法提供线性化。 [很高兴得到任何纠正!]
          • 我对 Cloud Spanner 不是很熟悉,因为它是最近发布的。 1) CockroachDB 不会阻止有争议的读取。还是说 Cloud Spanner 可以? 2) CockroachDB 支持AS OF SYSTEM TIME 允许在过去的某个时间点进行查询。也许我误解了您对陈旧读取功能的评论。 3)是的,多节点部署的线性化可能存在差异,但最初的问题是关于本地开发,并且在单个节点上,客户端与服务器在同一节点上运行,不会有时钟偏差影响线性化.
          • 1) 这是我从@Aphyr 的博客中得到的:“CockroachDB 仅在有争议的读取上阻塞。因此,它的一致性保证稍弱。”,2) 看起来我误解了你的文档。 3) 同意。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-02-07
          • 2019-09-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-07
          • 1970-01-01
          相关资源
          最近更新 更多