写点什么

Google 发布文档数据库 Firestore

  • 2017-10-09
  • 本文字数:1042 字

    阅读完需:约 3 分钟

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


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-10-09 19:004020
用户头像

发布了 21 篇内容, 共 94276 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

这些「误区」99%的研发都踩过

程序人生 职场

一文读懂 | 什么是 DevOps?企业该如何落地 DevOps ?

SoFlu软件机器人

小白指南:手把手教你用低代码开发一个应用页面

HarmonyOS开发者

HarmonyOS

应用部署初探:6个保障安全的最佳实践

SEAL安全

应用部署 企业号 2 月 PK 榜 安全部署

精选案例 |《金融电子化》:光大银行云原生背景下的运维监控体系建设

博睿数据

云原生 可观测性 智能运维 博睿数据 精选案例

火山引擎入选《2022爱分析 · DataOps厂商全景报告》,旗下DataLeap产品能力获认可

字节跳动数据平台

大数据 云服务 数据产品

聊聊系统上线前,SQL脚本的9大坑

程序员小毕

数据库 sql 程序员 后端 架构师

Selenium WebDriver API 学习笔记(三):浏览器控制

Python 自动化测试 selenium

公司项目引入这种方式,开发应用又快又准

引迈信息

项目管理 程序员 敏捷开发 低代码

Outcome VS. Output:研发效能提升中,谁会更胜一筹?

LigaAI

敏捷开发 研发管理 技术管理 产品管理 企业号 2 月 PK 榜

Python+Opencv解析一段视频并逐帧保存到本地

Python 数据读取 摄像头

从“服务”,到“赋能”,日日顺再次定义供应链生态建设

联营汇聚

CleanMyMac更新最新版本x4.12.5

茶色酒

CleanMyMac X2023

低代码实现探索(五十六)低代码正确方式

零道云-混合式低代码平台

Python读execl之xlrd库函数详解三:行、列相关

Python Excel 数据读取

Selenium WebDriver API 学习笔记(一):元素定位

Python 自动化测试 selenium

什么是BOM?与焊盘不匹配,怎么办?

华秋电子

面试官:熔断和降级有什么区别?

王磊

java面试

面试官:熔断和降级有什么区别?

小小怪下士

Java 后端 熔断

Python读execl之xlrd库函数详解二:单元格相关

Python Excel 数据读取

WebUI自动化环境搭建

Python 自动化测试 selenium

2023 年 dotnet 仓库社区年度调查已经开始

newbe36524

C#

详解 APISIX Lua 动态调试插件 inspect

API7.ai 技术团队

插件 api 网关 APISIX

组装式专家洞察|中国移动初瑞:基于智慧中台的“组装式”探索实践

信通院IOMM数字化转型团队

组装式应用 组装式创新 IOMM

DawnSql构建数仓--DawnSql集群的安装

陈飞

分布式数据库 实时数仓 实时数据引擎 实时数据平台

「Go框架」mvc模式:iris中的mvc包是如何将model、view、controller联系在一起的?

Go学堂

golang 开源 程序员 个人成长

从 HTTP 到 gRPC:APISIX 中 etcd 操作的迁移之路

API7.ai 技术团队

api 网关 APISIX

Java高手速成 | 图说重定向与转发

TiAmo

Java 重定向

DawnSql超越传统数据仓库

陈飞

分布式数据库 实时数仓 数仓 实时数据湖

通用 GPU 领先企业登临科技加入龙蜥社区,完成与龙蜥操作系统的兼容适配

OpenAnolis小助手

开源 操作系统 龙蜥社区 兼容 登临科技

Selenium WebDriver API 学习笔记(二):浏览器控制

Python 自动化测试 selenium

Google发布文档数据库Firestore_数据库_Abel Avram_InfoQ精选文章