选择合适的开源数据库的 5 个技巧

在选择关键任务应用程序时,您不能犯错。
319 位读者喜欢这篇文章。
computer servers processing data

Opensource.com

因此,您的公司有一项采用更多开源数据库技术的指令,并且他们已聘请您来选择正确的方向。无论您是开源技术资深人士还是新手,这都是一项艰巨而令人难以承受的任务。

在过去的几年中,开源技术在企业领域的采用稳步增加。随着它的普及,一个拥挤的市场随之而来,开源软件公司承诺他们的解决方案将解决每个问题并适应每个工作负载。对这些承诺保持警惕。选择合适的开源技术——尤其是数据库——是一个重要且艰难的决定,您不能掉以轻心。

根据我在 Percona 和其他公司担任 IT 专业人员的经验,我很幸运能够亲身参与采用开源技术,并指导他人做出正确的决策。 有许多重要的因素需要考虑; 希望本文能阐明其中的一些。

1. 设定一个目标。

这似乎很简单,但根据我与探索 MySQL、MongoDB 或 PostgreSQL 的人们进行的多次对话,这在重要性方面名列前茅。

为了避免被市场上无限组合的开源数据库软件淹没,请心中设定一个具体的目标。也许您的目标是为您的内部开发人员提供一个标准化的、由您的内部数据库团队管理的开源数据库后端。 也许您的目标是用新的开源技术彻底替换旧应用程序和数据库后端的全部功能。

一旦您定义了目标,您就可以集中精力。 这将有助于在内部以及外部与开源数据库软件供应商和倡导者进行更好的对话。

2. 了解您的工作负载。

尽管数据库技术的能力越来越强,可以胜任多项任务,但每种技术都有其专长领域,例如,MongoDB 现在是事务性的,MySQL 现在具有 JSON 存储。开源数据库中一个日益增长的趋势是提供复选框,声称某些功能可用。 最大的错误之一是没有为正确的工作使用正确的工具。 有些事情会将公司引入歧途——也许是一个过于热心的开发人员或一个目光短浅的经理。 不幸的是,错误的工具对于较小的事务和数据量可能工作良好,但稍后会出现瓶颈,这些瓶颈只能通过使用不同的工具来解决。

如果您想要一个数据分析仓库,开源关系数据库可能不是正确的选择。 如果您想要一个具有严格数据完整性和一致性的事务处理应用程序,NoSQL 选项可能不是正确的选择。

3. 不要重复造轮子。

在过去的几十年里,开源数据库技术发展迅速、扩展迅速且日益成熟。 我们已经看到了从新的、生产就绪性存疑的数据库到经过验证的企业级数据库后端的转变。 不再需要成为前沿的早期采用者才能选择开源数据库技术。 组织已经围绕这些社区发展起来,为越来越多的初创公司、中型企业和财富 500 强公司提供开源数据库领域的生产支持和工具。

专注于技术的投资公司 Battery Ventures 最近推出了其 BOSS 指数,用于跟踪最流行的开源项目。 它并不完美,但它为一些最广泛采用和活跃的开源项目提供了很好的见解。 毫不奇怪,数据库技术在列表中占据主导地位,在前 10 项技术中占了 5 项。 对于开源数据库领域的新手来说,这是一个很好的起点。 很多时候,供应商已经为解决特定问题制作了合适的架构。

我的观点是,可能已经有人做了您正在尝试做的事情。 从他们的成功和失败中学习。 即使它不是完全适合,也可能可以修改解决方案以满足您的需求。 例如,Amazon 提供了一个 CloudFormation 脚本,用于在其 EC2 环境中部署 MongoDB。

如果您是前沿的早期采用者,那并不意味着您不能探索。 如果您有一个独特的挑战或工作负载,似乎适合新的开源数据库技术,那就去尝试吧。 请记住,成为早期采用者存在固有的风险(和回报!)。

4. 从简单开始

即使它不是完全适合,也可能可以修改解决方案以满足您的需求。
您的数据库真正需要多少个 9? “实现高可用性”通常是许多公司模糊不清的目标。 当然,最常见的答案是“它是关键任务,我们无法承受任何停机时间。”

您的数据库环境越复杂,管理起来就越困难和成本越高。 从理论上讲,您可以实现更高的正常运行时间,但权衡将是管理和性能的可行性。 当您有疑问时,请从简单开始。 当需要出现时,总是有选择可以扩展。

例如,Booking.com 是一个广为人知的旅游预订网站。 鲜为人知的是,它使用 MySQL 作为数据库后端。 Booking.com 高级系统架构师 Nicolai Plum 在 一次演讲 中概述了公司 MySQL 数据库的演变。 其中一个要点是数据库开始时很简单。 它必须随着时间的推移而发展,但在最初,简单的主-副本架构就足够了。 随着工作负载和数据集的增加,它引入了负载均衡器、多个只读副本、存档到 Hadoop 进行分析等。但是,早期的架构非常简单。

5. 当您有疑问时,请咨询专家。

如果您不确定数据库是否适合,请在论坛、网站上或联系供应商并开始对话。 当您研究哪些数据库技术满足您的要求以及哪些不满足时,这可能会令人兴奋。 通常会有您尚未考虑的合适替代方案。 开源社区的宗旨是分享知识。

在联系开源软件和服务供应商时,有一件重要的事情需要注意。 许多公司都有开放核心业务模式,鼓励采用他们的数据库软件。 对他们的建议或指导持保留态度,并利用您自己的能力进行研究、创建概念验证和探索替代方案。

结论

选择合适的开源数据库是一个重要的决定。 首先提出正确的问题。 人们常常本末倒置,在真正了解自己的需求之前就做出决定。


Barrett Chambers 将在 10 月 21 日至 23 日在北卡罗来纳州罗利市举行的 All Things Open 大会上展示 选择合适的开源数据库 的演讲。

Barrett
Barrett Chambers 是 Percona 的解决方案工程师。 他作为应用程序支持专家、运营 DBA 以及财富 500 强公司的 SaaS 运营和交付工程师,获得了一系列技能。 Barrett 拥有 MySQL、Oracle SQL 和 MS SQL 的经验。

2 条评论

几乎毫无例外,我对这类事情的主要标准是,我是否可以找到文档,以我能理解的水平解释我需要做什么来设置和管理数据库。

好文章。
现在,我正在 LAMP (MariaDB) 上实现一个轻量级的内部 HR/CRM Web 应用程序。 到目前为止,phpMyAdmin 在创建我们的数据库结构和表(全部使用 InnoDB 存储引擎)方面对我来说非常出色。 我只能说“多么棒的 Web 应用程序啊”

我强烈推荐 MariaDB 用于中小型数据库项目。 对于大型数据库项目,我会毫不犹豫地使用 PostgreSQL。

对于移动/嵌入式应用程序,我可能会使用 FirebirdSQL 或 SQL Lite。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.