关于Big-data的一点总结

大数据知识架构

大数据是一个被炒烂了的概念。但大数据到目前为止也没有一个很清晰的定义出现。这种现象在计算机科学中其实十分常见,许多常见的概念如数据结构等,都是没有清晰定义的。这是因为作为一个工科类的学科,许多概念并不需要像基础学科那样,给出严谨的定义;此外,由于从业人群基数大,五花八门的概念层出不穷,这些概念难免会出现重叠之处,这也是计算机学科概念难以定义的一个主要原因。大数据作为一个新出的概念,也避免不了这样的命运。本文希望能够基于我个人的理解以及知识储备,谈一谈我对大数据的简单理解。如果有不妥或者不当之处,希望各位指点,多多交流。


大数据时代的到来,最重要的还是人们意识到了数据的重要性。正如我们以前没有意识到古董价值时,可以拿明代的碗来下面吃一样,只是原来我们没有发现数据的价值,没有搜集数据的意识而已,并非到了如今这个时代,才有这么多的数据出现。此外,大数据包含了哪些东西,如下图所示,我认为大数据理应包含三个部分。

- 计算能力。
- ​ 计算方法。
- 其他辅助工具。

首先是计算能力。应对海量数据的处理。有强大的计算能力支撑是很重要的一环。你1PB数据要跑一年才能跑出结果,再大的数据量也失去了意义。计算能力体现在快速的进行复杂计算(如Deep Learning)和快速的处理海量数据(如Distributed system)。要做到这两点并不容易,现行的一些方法大体思路分为两块:一块是并行化处理,包括并行计算和分布式计算等方式;另一块是针对特定应用使用特定的硬件设计来进行优化,包括高层次综合(如FPGA)以及TPU,寒武纪等。当然,前沿的还有革命性的量子计算,打破冯诺依曼体系的现代计算机结构的新型计算机。

其次是计算方法,这里的计算方法指的是如何利用海量数据。我认为大数据量的出现和机器学习以及深度学习的大火是相辅相成的。有了大量数据,大规模的ML,DL才能得以实现;而有了DL和ML,海量数据的价值才能被充分的挖掘(希望未来能有更先进的技术挖掘出更多的信息。)

最后,是大数据相关的一些技术。包括数据采集技术,如爬虫,传感器等等;数据检索技术,如ELK等;数据仓库技术,用于存储海量数据(多说一句,个人认为OLAP与OLTP唯一的区别在于,一个是动态的,一个是静态的。静态的OLTP只能存储数据,而动态的OLAP可以动态的对数据进行复杂的分析);数据安全,如差分隐私等;以及大规模系统的运维、管理、组织、部署,如DevOps,容器技术等;都是为了方便技术人员或者从业人员更好的利用数据,更好的、更方便的使用系统而诞生的。这些技术并不一定都是用于大数据领域。

BigData

暂时写这么多,想到了再补充。