Firestore在“数据存储模式”下是否有任何优势“本机模式”

时间:2018-08-12 04:29:56

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

Google Cloud Firestore即将取代旧版Google Cloud Datastore。然后,可以选择在“本机模式”或“数据存储模式”下使用Cloud Firestore。前者允许通过常规的Firestore SDK访问Firestore,而后者则允许使用旧的Cloud Datastore SDK(不包含Web /移动API)。

我还不熟悉Firestore。我的问题是:除了将内容移植到新的API之外,实际上还有任何在“本机模式”下使用Firestore无法完成的事情,这可以通过旧的Cloud Datastore(或其替代:在“数据存储模式”下使用Firestore完成) )?还是使用“数据存储模式”的其他优势(例如成本)?

如果没有,那么除了使用旧的Cloud Datastore兼容旧代码外,似乎在“数据存储模式”下使用Firestore实际上没有任何优势。

我的假设是,Firestore“数据存储模式”除了能够使用传统的Datastore API外,绝对没有任何优势(以 not 为代价,无法使用更新的甚至更多的API)功能丰富的Firestore API(包括移动和Web API)?

2 个答案:

答案 0 :(得分:4)

费用。

数据存储区模式下的Firestore与原始数据存储区一样,仅支持键查询和投影查询。这意味着这些查询的结果集计入免费的“ Cloud Firestore小型操作”中。 我们每天会累积数十亿次这样的小规模操作,而没有投影查询将实际上使我们的数据存储成本增加10倍,这是无法承受的。

由于此功能在Firestore纯模式中不可用-并且还添加了强大的一致性-我们希望它的性能要比原始数据存储中的性能低,但在我们的测试中并非如此。在所有类型的操作中,数据存储模式下的Firestore始终能够为我们的应用程序带来大约两倍的速度。

答案 1 :(得分:1)

根据official documentation,尽管Cloud Firestore与Cloud Datastore向后兼容,但新的数据模型,实时更新以及移动和Web客户端库功能不兼容。

数据存储模式下的Cloud Firestore使用Cloud Datastore系统行为,但是访问Cloud Firestore的存储层,从而消除了以下Cloud Datastore限制:

  • 最终的一致性,所有Cloud Datastore查询都变得更加强大 一致的。
  • 交易不再局限于25个实体组。
  • 对实体组的写入不再限于每秒1个。

数据存储区模式会禁用与Cloud Datastore不兼容的Cloud Firestore功能:

  • 该项目将接受Cloud Datastore API请求,并拒绝Cloud Firestore API请求。
  • 该项目将使用Cloud Datastore索引而不是Cloud Firestore索引。
  • 您可以将Cloud Datastore客户端库与此项目一起使用,但不能将Cloud Firestore客户端库使用。
  • Cloud Firestore实时功能将不可用。
  • 在GCP控制台中,数据库将使用Cloud Datastore查看器。