是因为我认为NoSQL解决方案不如RDBMS解决方案吗?当然不!
是因为我专注于SQL的做事方式,而不想陷入一种相对较新的技术的不确定性吗?不,也不是!事实上,我非常兴奋地学习和使用各种分布式数据库提供的设施。
那我为什么要写这个?
原因很简单——几年前,我见证了设计一个为遥测事件提供模式管理设施的系统。事实证明,这比初计划的要昂贵得多。为什么呢?因为选择了错误的数据库解决方案。
这个系统的一个要求是确保模式编辑是一致的,并且模式的很新版本被显示给每个模式编辑器。它还应该支持并发编辑。
此外,同时访问这个系统的用户数量永远不会超过几百个。存储的数据量不会是Tb级——多几百Gb。
因此,如果我们考虑了CAP定理的权衡,那么选择应该是显而易见的——使用RDBMS。这样做的好处是支持系统的一致性和事务支持需求。
相反,选择了NoSQL数据库(Azure表存储)来进行原型设计。这一选择的原因是,它使原型设计更快,并提供了更大的灵活性,同时更新了单个遥测事件的模式。与Azure SQL相比,Azure表存储的低成本被认为是另一个原因。
你是在雇佣创业精神的人吗?如果你打算雇佣创业精神的人,他们中的很多人可能已经有NoSQL的知识了。
然而,如果你不在一个主要的科技中心,那么获得这些人才的机会就很少了。您所在的区域可能有一个现成的RDBMS开发人员池——试图在这样的区域中招募NoSQL工程师和DBA可能会延迟项目交付日期,并且由于供应需求曲线,也会花费您更多的钱。
我的建议是与你的招聘机构/人力资源部门合作,对开发者进行市场调查,并将其纳入你的技术选择中。
版权所有©2025 产品网