Datastax 是一家 Cassandra (NoSQL) 提供商,它撰写了一份 分析报告 ,解释了甲骨文为何苦苦挣扎,错过了 2015 年第四季度的数据,而且收入与 2014 年相比持平。
Datastax 表示,这是由于越来越多的企业工作负载部署在 NoSQL 上,利用非结构化数据以及横向扩展、灵活性和低成本。而甲骨文(尽管他们在 NoSQL 和 MySQL 上进行了投资)并没有很好地响应这一新需求。
对 Oracle 来说更糟糕的是,与企业 NoSQL 的兴起同时出现的是企业要求“数据库响应工作负载”而不是相反的需求。 Datastax 围绕“主/从”(通常是对 复制 的引用)创造了一个双关语,指出以前,企业必须将他们的工作负载适应任何“大数据库”供应商提供的(例如 Oracle、Microsoft、IBM、SAP 等)。 ),现在企业有权要求“大数据库”提供具有 NoSQL 一些关键特性的 SQL RDBMS:
- 持续正常运行时间
- 地域分布
- 缩放,尤其是写入缩放
- Burst/Flex:能够“立即通知”横向扩展
- 无论用户或数据负载如何,恒定的数据库性能
- 在没有存储过载的情况下处理不同的数据类型
- 在不“超出我的预算”的情况下完成上述所有操作
当然,这里的假设是 NoSQL 可以处理上述所有问题——这个假设可能有点站不住脚。并非所有 NoSQL DBMS 都能满足上述要求,尤其是在没有“用硬件解决问题”的情况下,然后您就“打破”了预算。
另一个更大的假设:“非结构化数据”表明不需要确认的、一致的交易。企业之所以将绝大多数工作负载部署在 RDBMS 数据库上,是因为这些数据库旨在 保证 实时一致的事务处理。
当你想收钱时,使用 SQL 数据库。为什么?
RDBMS 已有四十年的历史,它告诉每个人数据库创建一致的事务。实际上,这称为“ACID 合规性”,NoSQL 数据库不提供这种功能。换句话说,虽然 NoSQL 数据库可以很好地处理非结构化数据和横向扩展,但它们在跨数据库所有节点实时维护 ACID 合规性、事务性、数据一致性和引用完整性方面非常糟糕。
因此,您可以通过部署 NoSQL 数据库赚很多钱,但是当您真正想要收这笔钱时,您将使用 SQL 数据库。
但!有中间立场吗? 您能否获得 RDBMS 的 ACID 事务性,以及像 NoSQL 数据库一样的规模和灵活性?事实上,你可以。 Datastax 遗漏了一类 RDBMS,即“横向扩展 RDBMS”或“NewSQL”。 ClustrixDB 是一个横向扩展的 RDBMS。
像 ClustrixDB 这样的横向扩展 RDBMS 可以处理所描述的许多挑战:
- ClustrixDB 不是主从架构,而是对等的。所有节点始终完全一致,数据在集群中至少存储两次以实现 HA
- ClustrixDB 不是共享存储、CPU 或内存,而是无共享。每个节点都有自己的编译器、查询执行引擎、数据和集群中所有数据所在位置的数据映射。传入查询被路由到工作负载最低的节点,编译后的查询片段被路由到数据所在的节点,从而最大限度地减少数据移动并最大化并行性
- 扩展就像添加线性扩展读写的节点一样简单。这称为“Flex-Up”,可以通过单个(非常)短的数据库“暂停”来添加或删除多个节点
- 高速摄取由自动后台数据分配和平衡处理。将其视为“透明的自动分片”,无需任何 DBA 开销或应用程序更改。
- ClustrixDB 专为不间断运行而设计,无需数据库暂停或应用程序中断即可处理在线模式更改和节点丢失。
ClustrixDB 在全球范围内有数百个安装,每月处理数万亿个事务。我们为 FlipKart 的 SKU 数据库、100 强互联网零售商 Choxi 的电子商务数据库以及 Twoo/Massive Media 的后端提供支持。
结论
1. 企业中非结构化数据的兴起正在推动 NoSQL 数据库的采用,企业也开始要求其 SQL RDBMS 具有类似 NoSQL 的功能。功能如:
- 规模、部署、可用性
- 爆破/弯曲的增量定价
- 大规模并行分布/无共享,
2. Oracle、SQL Server、SQL、IBM 等“大数据库”供应商无法提供满足这些要求的横向扩展 SQL RDBMS。
编者注:最初由 Dave Anselmi 在 ClustrixDB 博客上撰写。