京公网安备 11010802034615号
经营许可证编号:京B2-20210330
大数据浪潮袭来 企业该如何选择NoSQL
在当今这个大数据时代下,优秀的传统关系型数据库管理系统已经无法应对很多数据库处理任务。在今天的文章中,我们将一同探讨如何在各类NoSQL后备方案中找到适合自己的选择。
在过去几个礼拜里,我一直在芝加哥为自己的公司部署卫星办公室。虽然硅谷确实算得上是大数据供应商的摇篮,但芝加哥作为大数据用户及从业者们的根据地、重要程度同样不容忽视。无论是有心参与还是无意偶遇,这里的人们每一天都会跟大数据活动产生不少交集。在每一次大数据相关活动当中,我们都不可避免地要与NoSQL打交道、议题也总会谈到为什么传统关系型数据库管理系统已经无法满足如今的新需求。就目前来看,大部分读者朋友对这一问题还不太熟悉。NoSQL数据库分为几大不同种类,我们拥有多种合理的出发点来针对不同数据集选用不同的NoSQL数据库类型。总而言之,其实际复杂程度远远超出了技术业界在营销中所宣称的“NoSQL就是规模化”。NoSQL数据库种类如此众多,部分原因可以归结于CAP原理,又被称为Brewer原理。
根据CAP原理的说法,在以下三种特性当中我们只能同时实现两者:一致性、可用性以及划分限度。不同的数据集以及不同的运行时间规则迫使我们采取不同的解决方案。各类数据库技术针对的具体问题也有所区别。数据自身的复杂性以及系统的可扩展能力都是需要认真考虑的重要因素。
产生分歧的另一个理由则源自基础计算机科学、甚至可以算是基础数学运算。某些数据集能够轻松与键-值对进行映射;从本质上讲,数据的表格化并不会削弱其实际意义,我们也没有必要对数据关系进行重组。在另一方面,数据集与其它数据项目间的关系可以说同数据项目本身一样重要。
换句话来说,关系型数据库在能够作为键-值对处理的数据领域发挥极大效力,但却不善于处理要求更多背景信息的数据。前者对可扩展性提出要求,后者则需要我们为其提供更多性能资源。
关系型数据库以关系代数为基础,我们基本上可以将其视为集合论的衍生产物。基于集合论的关系适用于多种数据集,但对于必须要求具备父-子或者关系距离要素的内容来说效率不高。在这种情况下,大家可能需要采用图论来设计数据解决方案。
键-值对数据库
键-值对数据库当中包括Couchbase以及Apache Cassandra。这些方案具备高度可扩展性,但却无法帮助开发人员顺畅处理复杂数据集。如果大家需要进行磁盘备份、分布式散列表并通过一致性对数据内容加以检查,那么上述方案既具备良好的规模化能力、又能提供出色的处理速度。然而如果我们需要通过某个键来获取另一个键、进而访问第三个键以查询相关值,那么问题就会变得非常复杂。
列族/大表数据库
大部分键-值数据库(包括Cassandra在内)都会提供某种形式的列组,我们可以将其理解为“列族”或者“大表”。而以HBase为代表的某些数据库则从开发之初就以列族作为设计思路。这是键-值数据库的一种更为先进的表现形式。从本质上讲,其中的键与值 存在一定程度的复合。我们可以将其视为一套贯穿多维数组的散列映射。基本每一个列都容纳着一行数据。根据DataStax公司(一家专门销售Cassandra认证版本的企业)产品副总裁Robin Schumacher的观点,“Cassandra人气最高的使用实例就是处理时间序列数据,这些数据可以来自设备、传感器、网站(例如Web日志)乃至金融记录数据等等。这些数据的产生速度通常非常之快,而且往往一次性来自多个位置、增长幅度惊人,需要出色的写入能力以及以时间片段为基础的高性能读取配。
大家也可以利用MapReduce来打理这类实例,这是因MapReduce最擅长的就是解析半结构化数据。它们具备极高的可扩展性,但通常不具备事务型处理能力。如果数据之间的关系与数据本身的重要性不相上下(例如距离或者路径计算),那么请不要使用列族/大表数据库。
文档数据库
很多开发人员认为文档数据库可以算是解决问题的灵药,因为这类方案非常适合面向对象型编程。10gen(MongoDB)、Couchbase以及Apache CouchDB等发展迅猛的厂商都将此作为自己的起步平台。来自Couchbase的Frank Weigel指出,该公司正在着手从1.8版本开始将原本的键-值数据库转化为2.0版本下的文档数据库。根据他的说法,“文档数据库属于自然而然的发展趋势。从集群化到数据访问,文档数据库与键-值数据库几乎完全一致;惟一的区别在于,文档数据库能够理解所存储数据中的文档内容。”换句话来说,文档数据库会将值作为JSON、而JSON文档中的元素则能够通过检索轻松进行查询与搜索。
在此类方案中,最理想的状态就是大家可能已经完成了JSON文档的生成工作。正如10gen公司总裁Max Schireson在采访中所说,如果大家的“数据太过复杂,以至于无法通过关系型数据库进行打理,那么应该考虑尝试文档数据库。举例来说,一套复杂的衍生安全性实例可能很难以关系形式加以保存。电子健康记录同样面临着这样的问题。如果大家考虑利用XML方案,那么我强烈各位使用MongoDB——这种数据库使用的正是JSON/BSON。”
这可能正是大家在企业运作过程中遇到的实际情况——来自用户、系统、社交网络或者其它来源的数据不断产生并纷至沓来。也许这些数据并不一定都是以报告的形式出现,但MongoDB等方案通常也会包含一定程度的MapReduce功能。至少在MongoDB当中,大家可以对任何内容加以查询,而且即使不借助索引机制也不至于出现我们无法接受的性能问题。
图形数据库
图形数据库并不太关注数据规模或者可用性,而主要针对我们的数据之间存在怎样的相关性以及用户需要如何执行计算任务。正如Neo Technologies公司(主要产品为Neo4j数据库)产品工程高级主管Philip Rathle所说,图形数据库的威力主要体现在“数据集在本质上存在关联且非表格形式的情况下。其首要数据访问模式采用事务型机制,即OLTP/记录系统而非批量处理机制……请大家记住,图形数据库允许以事务性方式执行关联性操作,这一点在关系型数据库管理系统领域只能通过批量处理来完成。”
这种特性在大部分NoSQL营销活动中都得到了反复强调:我们选择图形数据库的主要理由之一,就在于我们需要在自己的数据结构中使用超出关系型数据库能力范围的准确事务型处理方式。
图形数据库的常见用途包括地理空间计算、推荐引擎、网络/云分析以及生物信息学——基本上,任何重视表达位置之间关系的数据都适合利用图形数据库进行处理。这种技术在各类金融分析体系当中同样扮演着重要角色。如果大家希望了解某家企业的弱点或者“负面消息”,这种直接性关系将成为计算流程中的关键所在。要想通过查询实现同样的效果,我们不仅需要通过大量代码编写SQL查询语句,其执行速度也不会太快。相比之下,图形数据库显然更擅长此类任务。
如果大家的数据内容比较简单或者已经存在于表格当中,那么实在没必要使用图形数据库。另外,图形数据库也不太适合处理OLAP或者长度分析工作。通常情况下,图形数据库往往与索引机制紧密相连、从而实现更理想的搜索与查找效果,但图形部分必须经过遍历;对于这一点,大家需要在一部分初始节点上加以修正。
概述:如何挑选?
图形数据库的出现很好地诠释了为何开发人员很难为这些新的数据库类型命名。“NewDB”是我个人最偏爱的名称——当然,某些与关系型数据库管理系统同时代甚至更早的数据库名称也不错。“NoSQL”这个名字就不太好,因为其中或多或少还是支持了一部分SQL功能,而且SQL与这些系统在功能性上也存在着某些交集。
最后,“大数据”这种描述也并非完全正确,因为我们并不一定要通过大型数据集来充分发挥这类数据库方案的能力——只要它比关系型数据库更适合即可。“非关系型”也不准确,因为图形数据库当中同样蕴含着明确的关系结构;它们只不过遵循着与传统关系型数据库管理系统不同的关系逻辑。
事实上,这些只是一部分能够解决我们特定难题的特定数据库。过去十年以来,市场营销策略总是喜欢把硬件规格、带宽局限以及更理想的延迟及规模预期作为主要宣传手段,旨在防止某些早期数据库像关系型数据库管理系统那样遭受广泛恶评。
正如我们不应该尝试利用同一套关系型数据库管理系统解决全部难题,我们同样不应该尝试利用集合论本身解决所有数学问题。如今的数据难题正日趋复杂:可扩展能力、性能表现(即低延迟)以及规模化需求正持续走高。为了满足实际需求,我们需要调整思路、尝试利用多种数据库技术完成不同背景下的具体任务。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在业务数据分析中,按天拆分统计夜间时段的数据是高频需求——比如电商夜间订单监测、平台夜间用户活跃度分析、运维系统夜间异常 ...
2026-07-29在机器学习建模与特征工程实践中,判断不同特征对模型预测效果的贡献度,是特征筛选、模型解释、业务归因的核心环节。特征置换重 ...
2026-07-29 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-07-29【核心关键词】岗位、数字化、经验、课程、方法论、决策、企业、大方向、数据分析、销售管理、理论知识、思维方式、分析销售、 ...
2026-07-28在问卷调研、用户分群、效果对比等业务数据分析中,分类变量的关联性与差异性验证是高频需求。卡方检验作为针对离散分类数据的经 ...
2026-07-28 数据分析师八成以上的时间在和数据表格打交道,但许多人拿到Excel后习惯性地先算、先分析,结果回头发现漏了一列关键数据, ...
2026-07-28在Excel数据分析与报表制作中,数据透视表是快速完成多维度汇总、分组统计的核心工具。很多从业者在得到透视表汇总结果后,为了 ...
2026-07-27 很多数据分析师每天与Excel打交道,但当被问到“表格结构数据的基本处理单位是什么”“数据类型误判会引发哪些分析错误”“ ...
2026-07-27当下,我们已然步入数据要素价值全面释放的智能时代。数据不再只是零散的数字记录,更是驱动新质生产力运转的核心动能、滋养人工 ...
2026-07-27【核心关键词】客户、数据分析、指标体系、数据采集、数据指标、业务数据、分析思路、业务需求、分析方法 【专访摘要】本次 CDA ...
2026-07-24在数据分析、业务建模与数字化运营体系中,原始业务数据普遍存在缺失、重复、异常、口径不一致等质量问题,直接用于分析与建模会 ...
2026-07-24 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-07-24在数据驱动的精细化运营体系中,指标是业务判断、效果复盘、策略优化的核心依据。随着企业数据化程度提升,指标数量持续膨胀,但 ...
2026-07-23在用户运营与产品增长体系中,留存是衡量产品真实价值与用户粘性的核心标尺,也是决定用户生命周期价值、获客投产比的底层因素。 ...
2026-07-23 很多数据分析师精通Excel、SQL、Python等工具,但当被问到“面对一个具体的业务问题,该用什么分析方法”“描述性分析和诊断 ...
2026-07-23【核心关键词】埋点、产品、互联网、数据库、决策、数据分析、产品经理、商业模式、移动互联网、指标体系、运营模块、大数据平 ...
2026-07-22在高并发、大数据量的业务系统中,单表数据量达到千万级甚至亿级后,会出现查询性能骤降、索引维护成本飙升、存储扩容困难等问题 ...
2026-07-22 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-07-22在金融风控、企业运营、行业研究等数据分析场景中,大量数据以面板数据形态存在:例如多家分支机构连续多个季度的风险指标、多位 ...
2026-07-21 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-07-21