本文探讨了使用多模型数据库的一些显着优点和缺点。
目录
什么是多模型数据库?
在过去的二十年里,一直在发生持续的数据爆炸。事实证明,这对企业越来越有利。组织被迫制定不同的计划来处理数据的数量和种类,他们提出了两种广泛的方法: 多语言持久性和多模型数据库。
在多语言持久性中,您为不同类型的数据存储和使用模式使用单独的数据库。例如,如果您有一个电子商务网站,您可能需要一个关系数据库(如 MySQL)用于交易,一个搜索引擎(如 Elasticsearch)用于支持产品发现,Redis 用于维护实时跟踪器和其他数据库用于其他用例。多语言持久性的主要缺点是它增加了显着的开销。
多语言持久性的替代方案是多模型数据库或本机允许您存储和访问不同类型和用例的数据的数据库,例如时间序列、地理空间、键值和文档。使用多级数据库可以为不断处理具有各种类型数据的应用程序和产品的企业带来很多好处。然而,使用多模型数据库也有其自身的挑战。
在本文中,您将了解使用多模型数据库的一些显着优点和缺点。
多模型数据库的好处
如前所述,多模型数据库的好处是广泛的,包括让您存储和访问不同类型的数据以及整合跨模型操作。在下一节中,您将了解多模型数据库提供的所有好处。
更容易的应用程序开发
在多模型数据库中,您只有一个解决方案,而不是许多解决方案。因此,为您的企业开发和维护产品更具成本效益。多模型数据库降低了基础设施成本并直接影响您的团队的可用性,因为他们不必花费额外的时间来学习多语言持久性设置的每个组件附带的所有新查询方言、SDK 和控制台。
此外,产品随着时间的推移不断发展。如果特定数据模型变得不那么有价值或冗余,您可以将数据从该模型迁移到更适合您的应用程序需求的新模型。使用多模型数据库,应用程序数据迁移也不那么麻烦,因为您不需要考虑很多事情,例如网络传输成本、停机时间、数据丢失和传输中的安全性。
合并和跨模型操作
企业从各种形式和来源收集数据。当您从不同的角度看待业务绩效和指标时,您可以从数据中获得真正的价值。在多语言持久性系统中,您必须执行额外的工作才能启用这种整体视图。
相比之下,多模型数据库非常适合整合不同的数据源,因为它们可以原生支持许多不同的模型。多模型数据库减少了您必须做的工作,以确保您可以同时查看和分析来自不同来源的数据。
ACID 合规
能够处理事务性工作负载是企业的基本要求之一。尽管多模型数据库支持不同的模型,例如图形、文档和对象,但它的构建原理与关系数据库相同;因此,一个好的多模型数据库可以提供自动化、一致性、隔离性和持久性 (ACID) 合规性。
多模型数据库可以强制执行多种一致性模型,例如可序列化、可重复读取、快照隔离和已提交读取。
一个好的多模型数据库也为你的数据提供最强的一致性、持久性保证和可靠性。例如,SingleStoreDB确保每个事务都持久保存在磁盘上,同时混合了日志记录和复制
复杂项目的适用性
复杂的产品通常需要复杂的技术栈来支持它们。但是,复杂的东西总是会变得复杂,这对您的业务不利。为每个用例使用不同的数据库会增加下游处理数据的开销,并极大地增加操作和工程成本,因为您需要管理系统的许多单独组件。
多模型数据库可以防止您陷入这个代价高昂的陷阱,因为它们为您提供了一种简化应用程序架构的方法,为您提供了开发和使用具有各种类型数据模型的不同和异构数据系统的单点联系。
易于处理多种数据格式
多模型数据库处理不同数据格式的能力是其设计所固有的。多模型数据库的主要目标是使您能够处理多种数据格式,例如用于 GIS 的 geoJSON 和用于具有共享基础架构的时间序列数据库的开放线路协议。这直接影响了组织在不增加更多难题的情况下扩大规模的能力。
支持这些多种数据格式、存储结构、访问模式和多模型数据库还有助于团队灵活地适应业务需求和优先级。
减少对 ETL 的需求
企业的一个重要痛点是创建一个中央数据湖、一个数据仓库或一个用于数据消费的湖库。仅创建其中一种数据产品既困难又耗时。花费最多时间的部分是在将数据加载到目标数据存储之前,跨不同的转换层从不同的数据源移动数据。
多模型数据库通过支持同一平台上不同模型的原生集成,大大减少了对 ETL 的需求。与多语言持久性设置相比,在 ETL 上花费的时间更短意味着数据将更早地可供消费者使用。
多模型数据库的缺点
虽然多模型数据库的好处很多,但考虑使用它们的缺点也很重要。
更难合作
即使多模型数据库支持 ANSI 标准 SQL,您也必须确保不同的数据模型相互对齐。多模型数据中的数据仍然位于各种数据模型中,尽管位于同一组资源上。尽管对 ETL 等以数据为中心的流程的需求有所减少,但您仍然需要从不同的模型中获取数据并找到一种方法来一起查询它们。
尽管许多多模型数据库支持 ACID 以启用事务,但在大多数支持不同数据模型的数据库中,合规性级别可能不如关系数据库通常的高。
不适合简单项目
对于简单的项目,使用多模型数据库有时可能会过大。例如,如果您没有不同的数据类型,例如地理空间、文档和物联网,那么您不需要选择多模型数据库,除非您希望您的产品朝着需要支持的方向发展稍后用于多个模型。
多模型数据库所做的一件事是,它们通过确保当需要更改以支持新数据模型时,您将能够以极大的敏捷性工作,从而使您的应用程序开发面向未来。但是,如果您使用传统的关系数据库而没有对不同数据模型的原生支持,那么进展可能会很缓慢。
建模技术的局限性
对多个数据模型的原生支持也意味着您不能跨数据模型应用特定的建模技术。例如,如果您使用图形数据模型、面向文档的数据模型或关系数据模型,则无法在多模型数据库中使用3NF和BCNF等传统建模技术有效地存储关系数据。
在一个还不够成熟而无法广泛采用的多模型数据库中,不同模型之间的互操作性可能不是最好的解决方案,如果是这种情况,您可能会发现自己处于一个复杂且浪费时间的境地。
结论
随着大规模多语言持久性的挑战越来越大,多模型数据库的采用在过去十年中呈上升趋势。优步、康卡斯特、潘多拉和戴尔等公司已经接受了多模型数据库背后的想法。如前所述,一般来说,使用多模型数据库将有助于缩短产品的上市时间。
如果您对构建具有按需可扩展性和高可用性的面向未来的应用程序感兴趣,您应该免费试用 SingleStoreDB。在任何流行的云平台上使用价值 500 美元的积分,您将能够构建可支持各种数据模型的可扩展且具有弹性的应用程序。
原文标题:What Is a Multi-Model Database?
原文链接:https://www.singlestore.com/blog/what-is-a-multi-model-database/




