使用云扳手进行本地开发

时间:2017-02-17 05:14:48

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

有没有办法用云扳手进行本地开发?我已经浏览了文档和CLI工具,但似乎没有任何东西。或者,有人可以建议一个SQL数据库,其行为类似于读取(不确定如何处理写入)?

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

5 个答案:

答案 0 :(得分:6)

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

目前还没有其他数据库像Cloud Spanner一样运行,但CockroachDB的运作方式与此类似。由于他们无法访问原子钟和GPS装置,因此他们会做出不同的权衡。尤其是阅读和阅读写作和缺乏陈旧的阅读'。您可以在Jepsen blog上了解更多信息:

  

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

答案 1 :(得分:6)

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

我们知道本地模拟服务器在开发人员需要的生产力功能列表中占据重要位置。

答案 2 :(得分:3)

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

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

答案 3 :(得分:3)

我为Google Cloud Spanner编写了一个模拟器,以简化Cloud Spanner的开源JDBC驱动程序的开发和测试。模拟器不以任何方式尝试模拟Spanner的性能特征,仅模拟其API(读取和写入)。其预期用途是用于开发和自动化测试。

然而,它不是开源的,目前处于测试阶段,但您可以使用针对模拟器运行的look here for a simple test project

答案 4 :(得分:1)

现在Google提供了一个用于本地开发的仿真器。截至5/2020,它处于测试版。

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

它仅将数据存储在内存中,但是您可以根据需要使用gcloud命令行在磁盘上备份和还原开发数据。

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