不断涌入的新技术和战略,以改善企业功能和增长,往往会导致公司无法选择;哪个程序适合我的需要?如何充分利用此应用程序?我的工作负荷是否使用了错误的平台?
DBTA主办了一场由InfluxData赞助的网络研讨会,题为“如何为您的工作负载选择合适的数据库”,解决了企业在为其个性化需求选择合适平台时的优柔寡断问题。InfluxData的技术作家查尔斯·马勒(Charles Mahler)提供了大量信息,让听众了解特定的数据库用例、缺点和优化企业功能的好处。
马勒明确表示,归根结底,所有数据库都试图完成相同的任务:存储数据并使数据可供以后查询。然而,不同类型的数据库适合不同的管理要求、基础技术、技能集和业务阶段;为了获得最佳效益,企业必须深入思考自己的需求,以便最大限度地利用与其当前流程一致的数据库平台。为了为他们的企业做出这一决定,马勒解释了不同数据库的各个方面,如果选择或不选择最适合业务功能的数据库,这些数据库可以决定企业的成败。
马勒在网络研讨会期间分解了每个数据库,总结如下:
关系数据库
关系数据库被认为是数据库平台的“老派”,它们遵循关系模型,以表格形式存储数据。数据以行的形式存储在磁盘上,SQL用于查询功能。示例包括PostgreSQL和MySQL。
-
优点:在广泛的应用中具有稳定的性能;一个强大的生态系统,由知道如何使用它的人组成;经过多年使用的战斗测试;保持数据一致性
-
缺点:难以横向扩展;B-tree索引可能难以处理高写容量工作负载;有一个定义的模式,这意味着你必须提前计划一切;任何错误都可能导致以后的问题
-
用例:适用于大多数一般应用;需要ACID的任何应用
键值数据库
键值数据库是最简单的NoSQL数据库类型,实际上是一个哈希表。数据库中的键指向不包含元数据的非结构化数据块;由于缺少元数据,存储在这些数据库上的数据可以是任何类型。示例包括DynamoDB、Redis和Riak。
-
优点:出色的读写性能,低延迟;灵活的模式;水平可伸缩
-
缺点:一致性差;由于缺少元数据,查询能力最低
-
用例:个性化推荐;会话管理;用于加速数据定位的实时功能
文档数据库
文档数据库是关键价值数据库的概念扩展,增加了对元数据和半结构化数据的支持。元数据的使用允许高效的查询和数据洞察。此外,文档保存所有相关数据,而不是依赖联接。示例包括MongoDB和CouchDB。
-
优点:灵活的模式;读写性能优异;更快的数据检索;文档可以更好地映射到应用程序需求;水平可伸缩
-
缺点:一致性(但是,这取决于具体的数据库平台);保持数据彼此同步的问题
-
用例:适用于大多数一般应用程序(如关系型,但具有可扩展性);快速迭代有益的应用
图形数据库
图形数据库用于存储和分析具有专用查询语言的连接数据集之间的关系。示例包括Neo4J和DGraph。
-
优点:图形分析的快速查询;查询语言和内置算法提高了开发人员的生产率;灵活的模式;易于在数据点之间建立新的关系
-
缺点:如果应用程序数据不是高度连接的,则不理想,因为这是一个专门的数据库
-
用例:欺诈检测;社交网络;推荐功能
时间序列数据库
时间序列数据库是InfluxData的特长,顾名思义,它是为时间序列数据设计的。它们针对高写吞吐量和基于时间范围的查询进行了优化。这些数据库还具有用于数据生命周期管理的内置功能。示例包括InfluxDB、TimescaleDB和QuestDB。
-
优点:对于宽查询和窄查询,数据摄取和查询性能都非常快;通过内置功能提高开发人员的生产率
-
缺点:更新和删除性能很低,但是,您不想更新数据库,因为它基于跟踪历史记录
-
用例:监控软件可见性;物联网应用;财务数据;分析和事件跟踪
列数据库
列数据库将数据存储在列而不是行中。这种格式有利于提高压缩和处理速度,并用于分析工作负载。示例包括Clickhouse、Vertica和Redshift。
-
优点:对于分析型查询更有效;更好的数据压缩,因为它都位于列数据类型中;SIMD处理
-
缺点:写入数据可能效率较低(虽然不是大量,但建议以更大的批量写入,而不是一次写入一个数据点);更新和删除的性能命中率;如果访问多个列值,速度会降低
-
用例:分析;数据仓库;可观测性
内存数据库
内存数据库将数据完全存储在RAM中,使用完全优化的数据结构,无需与磁盘存储交互。例如Redis和Memcached。
-
优点:高性能,因为它只存储在内存中,不需要磁盘;低延迟;可以存储多种数据类型
-
缺点:RAM比磁盘更贵;大型数据集需要水平缩放;通常需要辅助数据库
-
用例:缓存;实时应用;发布/订阅
搜索数据库
搜索数据库设计用于高效地存储和查询基于文本的文档。这些数据库可以处理结构化或非结构化数据。示例包括Elasticsearch、Solr和MeiliSearch。
-
优点:通过内置算法和查询语言提高开发人员的生产率;提高性能;水平可伸缩
-
缺点:较高的写容量可能需要牺牲索引或复制
-
用例:全文搜索;日志分析;自动补全;分析
矢量数据库
矢量数据库用于存储和搜索非结构化数据的矢量嵌入,允许搜索图像、视频、文本、音频等。示例包括Milvus和Pinecone。
-
优点:高效的向量搜索,允许搜索不同类型的数据;水平可扩展;用于同时使用RAM和磁盘的混合存储
-
缺点:非常专业的数据库,伴随着维护和管理数据库的开销
-
用例:重复删除;异常检测;排名和推荐引擎;非结构化数据的相似性搜索;语义搜索
NewSQL数据库
NewSQL数据库试图通过结合关系数据库和非关系数据库的特性来实现这两个方面的最佳效果。它们能够在保持高可用性的同时实现高一致性。例如蟑螂B、扳手和TiDB。
-
优点:SQL支持;水平可伸缩性;通常,云本机架构友好
-
缺点:即使隐藏,也很复杂;潜在潜伏期;一些SQL限制;是一项非常新的技术
-
用例:适用于大多数一般应用;其中一些数据库还可以支持分析工作负载
您可以在此处查看此网络研讨会的存档版本。
原文标题:Database Variants and Which One is Right for Your Enterprise
原文作者:Sydney Blanchard
原文链接:https://www.dbta.com/Editorial/News-Flashes/Database-Variants-and-Which-One-is-Right-for-Your-Enterprise-154486.aspx




