京公网安备 11010802034615号
经营许可证编号:京B2-20210330
大数据之所以能够坐拥一个“大”字,主要依靠源源不断且态势稳定的输入数据流。在大容量环境之下,数据的积累速度往往十分惊人,不过其分析与存储仍然困扰着不少用户。
VoltDB公司软件架构师John Hugg认为,相对于传统为后续分析提供数据的简单存储机制,也许现在我们已经步入了历史的新阶段——在这里,系统完全有能力利用Apache Kafka等工具在继续保持高速数据输入的同时实现分析。
-- Paul Venezia
就在大约十年之前,我们还几乎无法想象利用商用硬件对PB级别的历史数据加以分析。然而时至今日,由成千上万节点构成的Hadoop集群完成这项任务已经不是什么难事。Hadoop等开源技术的出现帮助我们拓展了思路,得以有效处理PB乃至更高级别数据在商用及虚拟化硬件上的处理工作,并让这种能力以低廉的成本服务世界各地的开发人员。总体来讲,大数据业界已经正式成型。
如今所谓快数据概念则引发了类似的一轮革新浪潮。首先,我们先为快数据下一个定义。大数据通常是由生产速度极高的数据所创建,其中包括点击流数据、金融交易数据、日志聚合数据或者传感器数据等。这些事件每一秒钟往往会发生数千甚至数万次。无怪乎人们会将这种数据类型称为“消防水龙”。
当我们在大数据领域讨论消防水龙这个话题时,计量单位并非传统的GB、TB以及PB等为数据仓库机制所熟悉的概念。我们更倾向于利用时间单位来进行计量:每秒MB数量、每小时GB数量或者每天TB数量。在讨论中采取的这种速率与容量之间的差异,正好代表着大数据与数据仓库之间的核心区别所在。大数据并不仅仅是“大”:它同时也要“快”。
一旦消防水龙中新鲜且传输速度极高的数据被倾倒进HDFS、分析RDBMS甚至是平面文件当中,大数据的优势就将消失殆尽——这是因为其“在事件发生的同时立即”执行或者警示的能力已经不复存在。消防水龙中喷涌而出的是活动数据、即时状态或者正在进行当中的数据。与之相反,数据仓库则是一种审视历史数据以理解过去状况从而预测未来的手段。
在数据输入的同时进行处理一直被视为不可能完成的任务——或者至少需要极高的实施成本且有些不切实际,特别是在商用硬件之上。正如大数据中蕴藏的价值一样,快数据的价值已经随着消息查询与流系统的实现得以解锁,而在这方面最具代表性的解决方案无疑是Kafka与Storm。除此之外,开源NoSQL与NewSQL产品也为这类诉求提供了坚实的数据库方案基础。
在快数据中捕捉价值
捕捉输入数据价值的最佳方式就是在信息抵达时立即作出反应及操作。如果大家以批量方式处理输入数据,那就意味着各位已经失去了其时效性、进而丢掉了快数据的核心价值。
为了处理每秒涌现的数万乃至数百万事件的相关数据,我们需要两类技术作为前提:首先,一套能够在事件抵达的同时立即进行交付的流系统;第二,一套能够在所有条目抵达的同时立即进行处理的数据存储方案。
快数据的交付
在过去几年当中,有两套流系统方案获得了市场的广泛认同:Apache Storm与Apache Kafka。作为最初由Twitter工程技术团队开发出的项目,Storm能够非常可靠地处理每秒消息量高达百万级别的数据流。而作为由LinkedIn工程技术团队开发出的项目,Kafka则是一套具备极高数据吞吐能力的分布式消息查询系统。这两大流系统方案解决了快数据处理任务的前提性难题。不过相比之下,Kafka的作用显得更为独特。
Kafka的设计目的在于实现消息查询并打破现有技术在此类任务中的局限。这类似于一种立足于查询之上而又拥有无限可扩展性的分布式部署方案,支持多租户且持久性极强。企业用户可以通过部署Kafka集群来满足自身的全部消息查询需求。不过作为项目核心,Kafka只能交付消息——也就是说,它不支持任何形式的处理或者查询操作。
快数据的处理
消息只是解决方案的组成部分之一。传统关系型数据库往往在性能方面存在局限。其中一些能够以极高速率实现数据存储,但在接收到数据后的验证、填充以及执行方面却总会栽跟头。NoSQL系统已经拥有集群化能力与出色的性能表现,但却需要对传统SQL系统所能提供的处理能力及安全性作出牺牲。对于基本的消防水龙处理任务,NoSQL方案可能已经足以满足大家的业务需求。然而如果大家在事件中执行的是复杂的查询以及业务逻辑操作,那么只有内存内NewSQL解决方案能够切实解决性能表现与事务复杂性这两大难题。
以Kafka为代表,不少NewSQL系统都围绕着无共享集群进行建立。相关负载被分布在各个集群节点当中,从而带来理想的性能表现。数据会在各个集群节点之间进行复制,旨在保障其安全性与可用性。为了处理持续增长的负载量,我们能够以透明化方式将节点添加到集群当中。各个节点可被移除(或者出现故障),集群中的其它部分仍能继续正常实现功能。数据库与消息查询机制在设计上都成功避免了单点故障的问题。这些功能也正是规模化系统设计方案中的典型特色。
除此之外,Kafka与一部分NewSQL系统有能力利用集群化与动态拓朴机制实现规模化,同时又不必牺牲强大的数据保障效果。Kafka提供消息序列保障,同时一部分内存内处理引擎还能够实现序列化一致性与ACID语义。这些系统都利用集群识别客户端来交付更多功能或者简化配置。最后,二者也都通过来自不同设备的磁盘——而非RAID或者其它逻辑存储方案——带来冗余耐久特性。
大数据处理工具箱
在系统中进行大数据消防水龙处理时,我们需要寻求哪些必要的支持机制?
寻找一套通过本地无共享集群化机制实现冗余与可扩展性优势的系统方案。
寻找一套依靠内存内存储与处理机制以实现各节点高数据吞吐能力的系统方案。
寻找一套能够在数据抵达的同时进行处理的系统。这套系统能否执行状态逻辑?它又能否查询GB甚至更高级别的现有状态,从而为决策提供信息支持?
寻求一套能够将不同操作隔离开来,并为操作提供有力保障的系统方案。这样一来,用户就能够编写更为简单的代码并将注意力集中在业务难题上——而非忙于处理并发问题或者数据分歧。需要注意,某些系统确实能够提供强大的一致性效果,但却会给性能造成严重影响。
具备这些特性的系统正在NewSQL、NoSQL以及Hadoop业界当中不断涌现,但不同的系统方案也拥有各自的权衡考量——这往往与开发者的初始假设关系密切。对于那些希望以实时方式处理快数据的企业来说,这些工具能够有效解决快速理解数据内容时面临的复杂性难题。
Kafka带来了一种安全及具备高可用性的处理方式,能够有效实现数据在无数生产者与消费者之间的移动,同时也为管理者提供卓越的性能与稳健性。内存内数据库则可以提供一套完整的关系型引擎,其具备强大的事务型逻辑、计数与聚合能力,并拥有足以满足任何负载的出色可扩展性。与关系型数据库不同,这类系统应当被作为与Kafka通讯基础设施相配套的处理引擎。
无论企业用户的实际需求如何,这些工具都表现出了帮助我们以更快速度了解更多数据信息的能力,而且往往能够全面替代更为孱弱或者其它类型的系统方案。文章来自:CDA数据分析师官网
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
一、问题:为什么 ID 会"断号" 很多刚接触 MySQL 的同学都会有一个困惑:表里的主键 ID 是自增的,删了中间几行数据之后,ID 变 ...
2026-10-22一、问题场景:为什么会重复 JOIN 同一个子查询 在写复杂 SQL 时,经常遇到这种需求:同一张表或同一个聚合子查询,要和主表关联 ...
2026-10-22人力资源专员是HR体系的执行入口。招聘信息发布、简历初筛、面试安排、考勤汇总、入离职手续、劳动合同与档案管理,大多由这个岗 ...
2026-10-22人力资源经理问“必学技巧”,真正要解决的不是知识清单不够长,而是时间有限、业务催得紧,学完却用不上。更有效的路径是:先用 ...
2026-10-22内容营销岗位的核心任务,不是“把文案写得更漂亮”,而是围绕目标受众,用持续的内容供给影响认知、推动转化并沉淀复购。它至少 ...
2026-10-22理财经理培训课程很多,难的是判断“先学什么、后学什么、学完能做什么”。与其按课程名称罗列,不如先看岗位任务:客户分层与维 ...
2026-10-22理财经理的知识结构,可以先用一句话概括:合规与产品知识决定“不出错”,客户经营与资产配置决定“够不够专业”,市场研判与数 ...
2026-10-22经济学背景做数据分析,优势不在工具,而在问题意识:供需如何相互作用、成本与收益如何权衡、变量之间是相关还是因果。真正的缺 ...
2026-10-22需要,但要把“需要”理解准确。经济学本身就在处理数据:GDP、物价、就业、企业营收、问卷调研,都是经济分析的原料。真正的区 ...
2026-10-22经济学分析能力不是单一技能,它至少由三层构成:把现实问题转成可检验假设的理论框架能力、用数据与统计方法验证假设的工具能力 ...
2026-10-22金融分析师的知识提升,先补的不是更多模型,而是让结论可复核的底层能力。按任务顺序,大致是四层:财务与业务理解、指标口径管 ...
2026-10-22金融分析师的“通用技能”,指换到不同机构、不同行业组仍用得上的底层能力,而非某家公司内部系统的操作经验。按任务拆,日常要 ...
2026-10-22先给结论:数据分析证书不是金融分析师的准入条件,招聘方也不会因为一张证书就直接判断你能做分析。要不要考,取决于你当前任务 ...
2026-10-22金融分析师的核心技能,不是“会看K线”或“会讲宏观”,而是能把一家公司、一个行业或一类资产,转化为可核查的数据判断与书面 ...
2026-10-22产品经理的知识提升,不是把需求文档、原型、SQL、数据分析、项目管理都学一遍,而是先对准目标岗位的真实任务,找出自己最缺的 ...
2026-10-22产品专员提升工作知识,最有效的方式不是先囤课程,而是围绕日常交付的四件事来补:需求调研与优先级判断、原型与PRD表达、竞品 ...
2026-10-22产品运营专员提升个人能力,常见误区是先把Excel、SQL、Python列成一张学习清单,然后从第一个工具开始学。更有效的做法是先回答 ...
2026-10-22产品运营的能力提升,最怕从“课程目录”出发:今天学增长模型,明天背SQL语法,学完却说不清自己负责的功能为什么激活率低。更 ...
2026-10-22产品经理的技能和影响力不是两条分开的赛道。技能决定你能不能把问题分析清楚、把方案设计对;影响力决定你的判断能否被团队接受 ...
2026-10-22产品经理要学的数据分析能力,不是“会写SQL”或“会用BI工具”这么简单。更准确地说,是围绕需求评估、功能迭代、指标监控、实 ...
2026-10-22