Google Firestore是Google Cloud Datastore的子集还是超集?

时间:2017-12-07 06:35:34

标签: firebase google-cloud-datastore google-cloud-platform google-cloud-firestore

谷歌宣布Firestore,即该区块的新文档数据存储区。

我使用Google Cloud Datastore开发了一个应用程序已有六个多月了,在阅读blog后,我觉得Firestore似乎是一个更好的选择。

备用集合 - 文档 - 子集合的概念对我来说看起来很棒,因为在设计数据存储的模式时我意识到我将无法查询嵌套字段。现在使用firestore子集合,我获得了完整的查询功能,这对我来说是一个游戏规则改变者(我可以用最少的查询获得最大数据)。

作为反驳论点,flowchart建议我使用数据存储区,因为我没有任何移动客户端。

像Datastore一样使用Firestore是个好主意吗? (我会方便地忽略移动客户端/实时更新/同步功能!)

5 个答案:

答案 0 :(得分:23)

更新2(01/31/19)

截至今天,Cloud Firestore已不再处于测试阶段,并且通常可用: https://cloud.google.com/blog/products/databases/announcing-cloud-firestore-general-availability-and-updates

这意味着Cloud Datastore不再是 new 项目的选项(您可以继续在现有项目中使用它)。想要使用数据存储API的新项目可以在数据存储模式下使用Cloud Firestore。

更新1

正如您我们注意到的那样,自此问题发布以来,我们已经扩展了Cloud Firestore。

这意味着Cloud Firestore现在有两种模式:

  1. 原始发布是“原生模式”
  2. 新推出会增加数据存储模式'
  3. '数据存储模式'是Cloud Datastore的第三代。第一个称为主/从数据存储,第二个是高复制数据存储(HRD),在2013年更名为云数据存储。

    以下答案仍然很大程度上是相关的,因为这两种模式目前是互斥的,所以你需要选择其中一种。

    主要区别在于数据存储模式下Cloud Firestore相对于Cloud Datastore的改进。最大的是:

    • 现在每个实体组的写入吞吐量无限制(1次写入/秒)
    • 交易不再限于25个实体组
    • 现在所有查询都非常一致。

    另请注意,Cloud Firestore无论模式是否为测试版,因此新的Service-Level Agreement(SLA)在产品达到General Availability(GA)之前不会生效。

    原始答案

    Cloud Datastore(CD)和Cloud Firestore(CF)类似,但在重要方面有所不同。

    CF以移动设备为中心,直接来自移动客户端功能,具有Firebase SDK和规则功能。 CD是以服务器为中心的,具有更广泛的服务器客户端库,以及App Engine Standard上的一些成熟框架,这些框架捆绑了memcache功能。

    CF有一个更新的存储层,与Cloud Spanner一样具有很强的一致性,但是,如果没有SLA,它仍处于测试阶段。 CD的存储层在实体组中只是非常一致,并且最终在实体组之间保持一致,但是,对于多区域位置,它是具有99.95%SLA的GA。

    CF目前仅在美国多区域提供。 CD可在十几个地方使用,包括美洲,欧洲,亚洲和澳大利亚的地方。

    虽然我们在GA之前构建了经验监控和调整系统,但是测试期间的CF有一个2500写入/秒的准则限制,而CD将很乐意处理> 1M写入/秒(请尽快联系您的帐户代表)

    CF和CD的查询功能集重叠但不相同。整体CD具有更广泛的查询功能,我们尚未在CF中构建,因此您在CD中具有更大的灵活性。

    总的来说,我会考虑这个列表,看看是否存在任何差异决定了您尝试构建的内容,然后选择最符合您需求的数据库。

答案 1 :(得分:6)

Firestore是第三代架构,是数据存储的替代品,基本上可以在两种模式下使用:纯模式和数据存储模式。

enter image description here

enter image description here

答案 2 :(得分:3)

我想说数据存储现在是Firestore的子集:

  

Cloud Firestore是Cloud Datastore的下一个主要版本,并且是该产品的品牌重塑。   See Choosing between Cloud Firestore and Cloud Datastore

Cloud Firestore可以在“数据存储模式”下运行,使其与Cloud Datastore向后兼容。在Cloud Firestore正式发布后的一段时间内,Google将开始与现有Cloud Datastore数据库的所有者联系,以计划以Datastore模式自动升级到Cloud Firestore。 See auto upgrade

答案 3 :(得分:0)

我认为云端防火墙也有nodejs客户端,而且它不以移动为中心。实际上,这就是Firebase实时数据库之间的区别,它是移动中心和云端Firestore,它是任何中心的。

答案 4 :(得分:0)

Google documentation说:

Firestore是Datastore的新版本,并删除了一些 数据存储区限制。