大数据的 4 个 V 说法在业界已经尽人皆知,这是指的大数据本身的特征。现在我们来考察一下用于处理大数据的技术应该具有的特性。为方便记忆,类似 4 个 V,我们把这些特性总结成 4 个 E,用户在选择大数据技术解决方案时可作为参考。
1. Easy 大数据技术要足够简单易用
这个 E 很容易理解。
要进行大数据处理的场景很多,涉及工作人员也是各种各样的。如果技术的难度太大,那会导致只有少数人能应用,而且实施复杂度较高,这样大数据的应用就会大打折扣了。
大数据领域这种例子并不少,Hadoop 刚出来时只有 MapReduce,相对于完全用 Java 硬写,MapReduce 已经简单了很多,所以会积累出一批拥趸。但 MapReduce 的难度仍然不小,所以逐步被后来封装出来的 HIVE SQL 替代。Spark 上的 Scala 也风靡过一阵,但难度仍然不少,目前也逐步归于平静,更多的人还是愿意使用更简单的 Spark SQL。
2. Elastic 大数据技术要具有弹性扩展能力
这个 E 也容易理解。
很多情况下,大数据并不是一下子就很大,而是逐步变大的。即使已经较大的数据,也还会进一步变得更大。因此要求大数据处理技术有一定的弹性扩展能力就是很自然的事情,这一点一般都不会被大数据技术提供商忽略掉。
当然,任何技术都有局限性,面向一般规模和面向超大规模的技术相差是很大的,不大可能有一种技术能够有效适应数据规模从 0 到无穷大的各个阶段 ( 所谓有效适应是在各个阶段该技术都能达到相当优良的性能,而不只是可以处理),用户在选择技术时还要对自己的数据规模变化范围有一个预估。
3. Embeddable 大数据技术应可以被嵌入集成
这个 E 需要特别指出,常常不被重视。
大数据处理经常并不是一件独立的事情,它需要和具体的应用配合工作才能发挥其业务价值,这些处理常常在应用执行到某个环节时就需要进行,这样就要求相应的技术能够被方便地嵌入集成到应用程序中,随时随地被主程序调用。
特别地,大部分应用程序建立在 J2EE 架构上,因而对 Java 应用的可集成性就是个特别重要的指标。一般基于 Java 或 SQL 体系的大数据技术在集成方面都没太大问题,而其它技术体系的就难说了。而且,大多数大数据技术常常需要独立部署,即使其计算能力可以被集成,但必须依赖于外部的独立进程,不能被应用完全控制,有时会显得非常累赘。
4. Environment-friendly 大数据技术对数据环境要求尽量低
这个 E 是很多大数据技术不具有但却很重要的。
目前的大数据技术,如 Hadoop 和 MPP 等,都要求先把数据放进该技术规定的某种存储体系中。这样当然有意义,数据事先组织之后会获得更高的性能。但是,经常的情况是,我们需要处理的大数据事先并不在这些存储体系中,而且把外部数据搬进这些存储体系本身也是一种大数据处理,这些场景下都无法利用这些大数据技术了。
更好的大数据技术应当能不挑数据源,随便什么来源的数据都可以处理,只是有可能因为数据源的限制而一定程度地降低性能,但并不要求必须先做好 ETL 才能处理。
其实最后那个特性用 E 并不是很贴切,但为了凑 4 个 E 就对付了。这个词本来是环保的意思,开放的大数据技术可以少复制一些数据,少部署一些硬件,省点电,也算环保吧。