[Day12] Firestore

前几天总共介绍了4种不同的储存方式,今天要来介绍最後一种: Cloud FireStore。 Firestore 跟 Bigtable 一样,是一种非关联式的 NoSQL 资料库。相较於 Bigtable , 它适合储存相对较小的资料,且价格便宜非常多,也有每天的免费扣打可以使用。

Firestore 是一种 Serverless 的服务,可以简化储存、查询跟各种同步相关的使用需求,主要提供给行动装置、网页以及物联网装置使用,它也无缝的整合了 Firebase 的验证机制。

Firestore 支援资料库的 ACID,保障资料的可靠性。

  • Atomicity 原子姓
    • 一个事务的所有操作,不可分割,不可约简。
    • 如果过程中发生错误,必须还原 (Rollback) 回事务开始前的状况
  • Consistency 一致性
    • 在事务的开始前与结束後,确保完整性没有被破坏。
  • Isolation 事务隔离
    • 允许同时发起多个事务进行读写与修改,藉由隔离可以防止事务交叉执行导致资料的不一致。
  • Durability 持久性
    • 事务结束後,对於资料的修改就是永久的,故障也不会丢失。

Firestore 会自动的进行 Multi-region 的复制,保障资料的完整性,由於 Server 是完全由 Google 管理,因此对於复杂的 NoSQL Query,也不会降低效能。

目前的 Cloud Firestore 有两种模式,分别是 Datastore Mode 与 Native Mode。

  • Datastore Mode
    • 向下相容於 Datastore 的 Application
  • Native mode
    • 更强健的 Storage layer
    • 基於 Collection 以及 document 的 data model
    • 支援 Mobile 以及 Web 的客户端函式库

Storage 总结

这几天总共介绍了 Cloud Storage 、 Cloud SQL 、 Cloud Spanner 、 Cloud Big Table 、 Cloud Firestore 等不同的资料储存方式,那我们要怎麽样选择最适合自己的储存方案呢?

  • 档案储存 (Binary)
    • Cloud Storage
      • Binary 资料
      • 例如:照片、影音、备份档案
  • Relational (SQL)
    • Cloud SQL
      • Web 平台
      • 例如:CMS
    • Cloud Spanner
      • HTAP (Hybrid transaction/analytical processing),支援横向scale
      • 例如:Metadata、金融资料
  • Non-Relational (No-SQL)
    • Cloud Firestore
      • 阶层式资料,行动装置、网页
      • 例如:使用者 Profile、游戏状态
    • Cloud Bigtable
      • 需要大量读写的资料
      • 金融、IoT

<<:  [Day12] THM Cyborg

>>:  [Day18] 被纠察吗?

Day 11 -资料查询语言 WHERE !

我们前几篇介绍了资料操纵 DML 的语法,之後几篇呢我会精选几个比较常用的资料查询 DQL 语法来跟...

Gulp Babel ES6 编译(1) DAY83

Babel 为编译 ES6 的工具 那我们就要开始介绍如何安装与使用啦 https://www.np...

Golang 转生到web世界 - http套件小疑问

Golang http套件小疑问 在练习了golang的http套件之後,对於这部分萌芽了一个想法 ...

Vuex 是什麽

Vuex 是 Vue 提供的一种资料状态管理的模式,它可以统一控管资料的状态,都是在小型的 SPA ...

D17/ 我要用的 View 没有支援 Compose 怎麽办? - AndroidView

今天大概会聊到的范围 Android View 前两天来回进出了公司楼下的 7-11 两三次,每次...