不需要Real-Time的四个理由
也许你还没注意到,real-time在大数据领域中已经备受关注。Wikipedia一篇关于大数据的文章更是深远的说道:
“实时或者近实时信息交付已经成为一个大数据分析的本质特征。”
时下,有很多文章把实时定为大数据的6大主题之一。今年的BerlinBuzzword会议更是举行了4次以上关于real-time的谈话。
但是当把目光聚焦于人们通常行为下,将会发现他们真正在意的是MapReduce的扩展、流处理算法的研究及如何把业务放进内存来获得更快的速度。当然缩放技术也并不一定就是最终的答案,我们同样需要更好的算法。
之前有讨论过流数据挖掘中的heavy hitter算法,并发现这些算法是非常实用的。其中最重要的作用大体表现在通过精确的交换来提升速度。这样的话,即使不投资数据中心也可以获得初始速度的提升。
1、 结果总是在随着时间变化
首先:对于高容量流,统计数字总是在不断的变化。所以即使计算出精确的统计数字,真实结果其实早已发生变化。
2、 实时、精确及大数据,三者不可兼得
其次:实时大数据是极其昂贵的。就像Acunu的首席技术官Tom Wilkie说的(英语文献),这里存在一个“实时大数据的三角形约束”。
三者只可以择其二,除非你想投入巨额资金!
3、 一般情况下不用那么精确
除非你做账单,精确的统计一般很少用到。像监测类型事务处理这种典型的实时大数据应用,都只是获取一张“事件发生”的快速截图。这样就表明你一般只对系统里最活跃的项目感兴趣。
同样,这也受到数据分布的决定,流数据挖掘的最坏情况就是均匀分布(理论上讲,所有事件发生的概率都是相同的)。但是现实情况并不如此,拥有一些活跃项目的同时还会有一些你不感兴趣且长期不活跃的项目。
4、 事实上你已经拥有一个精确的批处理系统
通常,你都已经拥有一个能给你提供精确数字的数据库,但是你还是对能够更实时一点比较感兴趣。然而,只为了获得一个“事件发生”的实时抓取就在基础设施上投入大量资金是完全没有意义的。
不同的是,实时分析和标准面向批处理的分析在业务中扮演着不同的角色。面向批处理的数字计算平均每个月只做一次,而实时一般只用于监测。所以你不需要那些多的能让你做账单的精确数字。(编译/仲浩 王旭东/审校 原文来自dzone)