黄东旭关于基础软件产品价值的思考
441
2023-05-10
对比云端NoSQL数据库类型
对于社交网络、流媒体内容、新闻发布和零售,全球可扩展在线服务的出现极大地改变了对应用基础设施和软件架构的要求。最重要的转变之一是系统存储、整理和访问数据的方式。
传统的关系数据库管理系统(RDBMS)(例如甲骨文数据库)不太适合Web应用程序,因为这些应用程序需要分布式横向扩展群集基础架构。NoSQL数据库更适合松散耦合的设计,其中应用程序数据和可执行代码分布在多个机器和数据中心。基础设施即服务(IaaS)提供商的根源是在开源社区和云原生开发,他们已经构建了各种NoSQL数据库类型来适应不同的数据和用例。
优点和缺点
由于Web应用程序和服务是NoSQL开发背后的主要驱动因素,因此,与RDBMS相比,各种类型的NoSQL数据库都更具优势。这些优势包括以下:
可处理各种数据类型;更高的性能和更低的延迟性;非常适合非结构化数据,例如文本、图像、音频和视频;更适合水平扩展的松耦合系统;非常适合时间序列或其他流数据,例如事件日志和物联网数据;可处理不同形式的NoSQL系统和非结构化数据模型的可用性;可访问广泛的开源或低成本部署,比复杂的RDBMS更便宜。
然而,这些好处是有代价的。例如,RDBMS系统通过ACID模型确保更直接的一致性和可靠性,ACID模型是指原子性、一致性、隔离性和持久性。而NoSQL数据库则遵循BASE模型:基本可用性、软状态和最终一致性。此外,这些非关系数据库缺乏内置机制来检查数据完整性;它必须在外部代码中完成。***,通常不支持复杂的SQL操作,例如复合选择语句或表连接。
NoSQL数据库类别
NoSQL并不是特定类型的数据库,而是具有几种变体的数据库类别:
键值存储:也称为哈希表,此存储范例整理数据为一列记录,这些记录按键或哈希值索引,指向一个或多个数据对象或记录。这类似于字典,每个键可以有不同数量的值,而不是固定长度。内存缓存:这是完全适合系统RAM的一种键值存储。通过消除仅为处理特定应用程序功能或情景而扩展整个数据库的需要,这可加速性能并降低成本。文档存储:虽然它是键值数据库的子集,但文档存储中的值遵循预定义的层级结构,该结构嵌入有关存储内容的元数据。文档存储通常以文本格式编码,例如XML、YAML或JSON,或二进制变体,例如Microsoft Office文件或PDF。搜索数据库:一种专用文档存储,其中文档索引可以分片并分布在多个节点,以提供大量可扩展性,以加速特定条目的检索。基于列的存储:此存储按列而不是行整理数据。列被分组为相关数据系列,可共同访问。图形数据库:这种类型的数据库不采用通用行列结构,而是支持条目集合及其相互关系。
NoSQL数据库对比
随着云基础架构成为部署Web应用程序的流行选择,AWS、微软和Google Cloud纷纷构建了NoSQL服务和产品,以更好地适应不同的数据类型和用例。每种产品的具体细节会有所不同,下表展示了每种NoSQL数据库产品的情况:
正如NoSQL数据库比较表所示,每种NoSQL数据库类型都有几种流行的开源和商业产品。每个第三方选项都具有特定的功能和优势,而云替代方案不一定提供。例如,***可以进行配置,使复制的数据立即与读取保持一致,而不是最终的一致性。
但是,最重要的区别是部署模型:私有管理(内部部署或托管基础架构)与云服务。这里取决于企业是否更喜欢自我管理、高度可配置和受控制的软件,还是托管云服务,以消除前期资本支出和持续的基础架构管理开销。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。