Google發布了Cloud Firestore,它是用于移動、網絡和服務器應用程序的文檔數據庫。
去年我們曾報道過Google Firebase,它是一種用于移動和網絡開發的數據庫,提供實時的和離線的數據訪問,與許多Google服務相集成。他們現在推出了一個“全新的”產品Cloud Firestore,它是一種云端的NoSQL數據庫,用于移動、網絡和服務器應用程序。它的主要特性有:靈活的數據模型、復雜的查詢、實時數據更新、支持離線訪問、跨區域伸縮性、強大的一致性、批量操作、支持事務以及與Google生態系統其他部分(包括Cloud Functions)的集成。除了REST和RPC API,Firestore還提供Android、iOS (Swift和Objective-C)、JavaScript(包括Node.js)、Java、Python和Go的SDK。
看來,Google發布Firestore是希望解決Firebase的一些缺點,現在也被稱為實時數據庫(Realtime Database)。兩種解決方案的主要區別是:
數據模型。Realtime把數據放在JSON文件里,而Firestore引入了用集合來組織文檔的概念。 離線。 Firestore為網絡應用程序添加了離線支持,而Realtime只支持移動應用程序。 查詢。由于用到了更好的數據模型,Firestore支持更復雜的和更快速的查詢。 操作。Firestore可以組合原子批次中的多個操作,并重復事務直到完成。 區域。Realtime局限于單個地區中的一個區域,而Firestore可以跨越多個區域。 可擴展性。 Realtime局限于10萬個連接數和每秒1000次寫入。可以通過數據庫分片獲得更高性能。Firestore在必要時會自動突破這些限制。 安全。Firestore的數據訪問控制更簡單。關于數據模型,Firestore把數據存入以集合來組織的文檔中。每一個文檔包含鍵值對,還可以有相關聯的子集合。除了標準數據類型,如布爾型(boolean)、整型(integer)、浮點型(float)、字節(byte)、字符串(string)、地理位置(geo point)、日期(date)和時間(time)以及空值(null),Firestore還支持數組和Map,后者是一組嵌套的對象。該數據庫是無模式的。
AngulaFire已經宣布支持Firestore,提供可觀察的流(observable streams),可以集成到Angular應用程序中,包括動畫、表單和路由器。Firestore目前正處于測試狀態,使用它有一些限制。另外,它的定價與Realtime不同。
查看英文原文:Google Announces Firestore, a Document Database