大数据时代数据量的暴涨不仅对数据处理、数据分析等相关大数据技术提出了要求,也让数据库的压力倍增,针对目前状况,数据库该如何应对?
为了应对数据的容量、速度、类别等方面的爆发性增长,众多企业正准备转向 NoSQL 数据库来代替传统的关系数据,以实现更好的性能、伸缩性和易于开发。
传统的关系型数据库需要提前构造好整张表的数据类型和模式。而另一方面,NoSQL 数据库更加灵活,允许新类型的数据快速插入,而且能让不同类型的数据存储在一起。这个特性对对期待分析大量非结构化数据的公司特别有帮助。非结构化数据是指不适合预定义的数据模型,例如 tweet、视频或者从传感器采集的数据等。
这仅仅是 NoSQL 数据库流行起来的一个原因。2015 年到 2020 年期间,NoSQL 数据库的使用有望达到 21% 综合年增长率。
”企业正在处理与分析越来越多的数据,需要能够高效可靠的处理一定规模的数据“,NoSQL 数据库提供商 Couchbase 的 CEO Bob Wiederhold 说到。“为了实现这个目标,他们抛弃了关系型数据库。”
大约 80% 的企业现在仍然在使用关系型数据库,Wiederhold 预测这个比例在接下来的 10 到 15 年将会降至不到 50%,企业迁移到 NoSQL 数据库,尤其是 Web应用,移动应用以及物联网(IoT)应用。
不过采用 NoSQL 数据库也需要做出一些取舍。
“你需要两种类型的数据库做不同的事,有时甚至需要结合两者一起使用,” 大数据分析初创公司 Metanautix 的 CEO Theo Vassilakis 说到。
在计划如何存储和处理大数据时,有三个因素需要考虑。
一、针对应用程序的考虑
两种类型的数据库都有其用武之地,Vassilakis 表示。
传统的关系数据库的好处之一是它们跑 ACID 事务,这保证了数据库的变化能够得到可靠准确地处理。
“银行结算原型,一个账户出账而另一个账户入账,” 在这种形式下应用程序需要更多的事务处理,这时使用传统的关系型数据库更适合。Vassilakis 解释说。
但这使关系型数据库横向扩展非常困难,增加了计算成本而且降低了数据检索速度。
NoSQL 能够轻松通过提升硬件性能花相对低的成本扩展服务性能。再加上,NoSQL 能够处理不适合传统关系型数据库的非结构化数据。
“这种形式的数据库架构对于存储非结构化数据,缩放多数据库实例和为那些同时通过 Web 和手机应用的迅速增加的大量用户提供服务是最理想的。所以,如果那正是需求所在,NoSQL 是个更好的选择,” Wiederhold 说到。
二、考虑两者的优点
“随着数据的爆炸性增长,企业正在抱怨他们现有的数据库性能不佳,而且维护越来越昂贵。企业需要扩展商用硬件提供能力去维护同等级的服务,“ Splice Machine 的 CEO Monte Zweben 说到。
他补充:“但在迁移到 NoSQL 过程中,他们不分好坏,将以前的把宝贵的东西也一起丢掉了”。
关系型数据库善于事务处理,使用许多技术员工已经熟悉的语言(SQL),并与现有的业务集成应用程序编写 SQL,但是关系型数据库性能不足,NoSQL 提供了扩展和收集的非结构化数据的能力。
所以一些企业桥接了这个两种类型的数据。例如,Splice Machine 使用 Hadoop,将 NoSQL 数据库作为它系统中的一部分,并在基于 NoSQL 优点的基础上建立了一个两全其美的数据库。
三、更新和扩展方面的考虑
除了对数据库基本结构做出重大改变,企业还可能会考虑第三种选择:舍弃他们原有的数据库架构,在顶层安置一个计算引擎,来跨多种数据库(无论是关系型数据库,还是NoSQL)查询和组合数据。
Vassilakis 说道:“你可能想要获取 NoSQL 数据库中已经被废弃的购物车数据,并且将那些数据和关系型数据库中的关于销售的结构化数据进行比较”。
企业同时使用两种类型的数据库更有意义,这样分析师就可以专注于他们的业务分析了。[大数据魔方]它还可以防止你将需要分析的数据从一个数据库移到另一个数据库,转移过程可能缓慢并且有风险。
由 Metanautix 创建的工具 Quest,可以让分析师能够使用熟悉的 SQL 语言查询关系数据库和 NoSQL 数据库。
“考虑到你需要两种类型的数据库,我们想帮助那些使用数据的人,不需要关注底层的复杂性,并使用标准的逻辑模型和工具,” Vassilakis 解释道。“我们还想让 CIO 和 IT 部门协调系统底层而不打乱系统上层。”
虽然你的组织可能不知道哪种路径是好的,但重要的是,开始评估并准备应对大数据对数据库带来的各种巨大变化。