【数据库】如何选择合适的数据库
视频号
微信公众号
知识星球
在当今数据驱动的世界中,技术变化非常迅速,数据库也不例外。 当前的数据库市场提供了数百种数据库,它们在数据模型、用途、性能、并发性、可扩展性、安全性和提供的供应商支持数量方面各不相同。
选择数据库是另一类挑战。 为您的企业选择合适的数据库并非易事。 能够对数据库技术做出严格、明智的选择需要详细了解以下内容:
- 了解业务需求
- 技术评估
- 技能集映射
了解您的业务需求
无论您考虑使用哪种类型的数据库,第一个关键步骤是定义您的业务需求。 对于小额采购,此步骤可能涉及与其他员工的快速对话,但对于大型、关键任务软件,可能需要数月的工作时间。
数据库选择过程的关键驱动因素包括对以下问题的回答:
- 业务应用是什么?
- 您希望存储的数据的性质是什么?
- 您期望什么样的数据增长?
- 如果数据库出现故障,会有什么影响?
- 数据访问的频率是多少?
- 您的业务需要哪些 ACID 属性?
让我们考虑一个例子:如果您的应用程序需要灵活地保存动态数据内容,那么您可能不会选择关系数据库,而可能更喜欢文档存储或键值数据库。
对非结构化数据的业务需求有不同种类的数据库,如 S3 对象存储、基于文件的系统等。
技术评估
任何数据库都支持写入数据并再次读回。 一些数据库允许查询任意字段。 有些为快速查找提供索引。 一些支持临时查询,而查询必须为其他人计划。 有这么多不同的数据库系统的原因很简单,任何系统不可能同时获得所有需要的特性。
对于任何数据库选择过程都很重要的常见通用数据库组件包括:
- 存储引擎
- 查询处理器
- 查询语言
- 元数据目录
- 优化引擎
- 分片或分区
- 数据可用性
- 缩放
选择数据库时,技术评估是一个关键部分,任何数据库的性能都取决于它内部构建的内容。
存储引擎:存储引擎是数据库管理系统(DBMS)的核心组件,它在操作系统级别与文件系统交互以存储数据。 所有与底层数据交互的 SQL 查询都通过存储引擎。
查询处理器:这是用户查询和数据库之间的中介。 查询处理器解释用户的查询,并使它们成为可操作的命令,数据库可以理解这些命令以执行适当的功能。
查询语言:与数据库交互需要数据库访问语言,从创建数据库到简单地插入或检索数据。 在许多查询语言中,查询语言的功能可以根据具体任务进一步分类:
- 数据定义语言 (DDL):它由可用于定义数据库模式或修改数据库对象结构的命令组成。
- 数据操作语言 (DML):直接处理数据库中数据的命令。 所有 CRUD 操作都在 DML 之下。
- 数据控制语言(DCL):它处理数据库的权限和其他访问控制。
- 事务控制语言 (TCL):处理内部数据库事务的命令。
元数据目录:这是数据库中所有对象的集中目录。 创建对象时,数据库使用元数据目录保存该对象的记录以及有关它的一些元数据。
分片:分片是一种跨多个数据库分布单个数据集的方法,然后可以将其存储在多台机器上。 这允许将较大的数据集拆分成较小的块并存储在多个数据节点中,从而增加系统的总存储容量。 分片可以是:
- 基于键的分片/哈希分片
- 基于范围的分片
- 基于字典的分片
分区:分区使用分区键/键将数据划分为某种逻辑形式。 数据库分区通常是出于可管理性、性能或可用性原因而完成的。
数据可用性:数据库高可用性是应用程序高可用性的一个重要组成部分,但这并不是全部。 某些情况(例如,区域性灾难或系统性损坏)需要适当的备份和恢复机制。 同样,并非所有数据库都提供相同级别的功能。
缩放:可扩展性描述了系统的弹性。 它指的是系统的增长能力。 您可以相应地缩小、放大和缩小。 良好的可扩展性可以保护您免受未来停机的影响,并确保您的服务质量。 水平扩展是指通过向资源池添加更多机器进行扩展(也称为“向外扩展”),而垂直扩展是指通过向现有机器添加更多功能(例如 CPU、RAM)进行扩展(也称为“扩展” 向上”)。
在垂直扩展中,数据存在于单个节点上,扩展是通过多核完成的,例如,在机器的 CPU 和 RAM 资源之间分配负载。
技能集映射
在没有适当指导的情况下处理未知技术通常会增加更多的不确定性。 如果您在没有适当的技术支持的情况下处理复杂的数据库,那将是一场噩梦。 一般来说,人们更喜欢稳定、流行的数据库,主要原因是在市场上有适当的支持和资源。
数据库评估最重要的部分是评估可用的技能集,并在选择正确的数据库之前找出组织中缺失的技能。 以下是非技术评估的一些重要标准:
- 技术普及
- 它支持的功能
- 产品成本
- 知识库或技术支持
- 可用资源和帮助
- 工程师的可用性及其成本
数据库即服务
DBaaS(数据库即服务)是一种云计算托管服务提供模型,使用户能够通过某种形式的数据库访问来设置、操作、管理和扩展,而无需在物理硬件上进行设置、安装软件、 或配置它以提高性能。
云服务提供商提供三类数据库服务:
- 关系数据库管理系统
- 无SQL
- DW
流行的 DBMS 产品包括:
数据库即服务的好处
- 敏捷性:云 DBaaS 应用程序本质上是敏捷的,因此它们可以根据业务或技术进步无缝适应任何升级。 DBaaS 允许快速配置数据库资源,以在尽可能短的时间内提供新的计算资源和存储设施。
- 保护您的数据:安全性是 DBaaS 领域中最关键的挑战之一。 随着越来越多的企业将数据托管在云端,DBaaS 提供商必须防止对数据资源的未授权访问,禁止滥用存储在第三方平台上的数据,并确保数据的机密性、完整性和可用性。
- 根据业务需求扩展:DBaaS 模型提供自动化和动态扩展。 DBaaS 提供商适应工作负载变化,并可以通过在高峰时段增加资源而不中断任何服务来管理负载变化,或者通过在非高峰使用期间分配更少的资源来帮助降低成本。 用户可以快速增加存储和计算能力以满足高处理需求,同时还可以为系统在需求波动期间的行为方式定义使用阈值策略。
- 高可用性:在当今快节奏的数字世界中,保持 24/7 的正常运行时间是任何现代企业的必备条件。 中断与收入损失成正比。 随着数字化转型变得越来越重要,您的应用程序服务应保持 24/7 不停机而变得越来越重要。
- 提高运营效率:由于 DBaaS 是一项服务,您可以一次从一个节点开始,然后在不中断业务的情况下扩大规模。 组织可以随着发展而扩展,这更具成本效益; 通过一次添加一个或多个节点,然后关闭不再需要的资源,IT 团队可以防止代价高昂的超支。
概括
在为业务需求选择合适的数据库时,有多个评估过程——从业务需求到运营管理,从技能集映射到技术审查。 拥有正确的工具和技术可以提高运营效率并减少干扰。 从数以千计的可用选项中选择最佳选项之一并不容易,需要技术娴熟的人员和学科专家。
- 179 次浏览