随着国家定义了“新型基础设施建设”(新基建),新科技时代已经来临。如果说新基建的目标是构建起新时代科技中国的躯体的话,那么数据就是这个躯体中无处不在的血液,没有这个血液,所有的一切都将没有正常运行的能量来源。
“数据”早已有之,但长久以来,除了科技公司和大型企业外,人们对“数据”应用得并不充分。而随着数据渗透到当今几乎每一个行业和业务职能领域,渗透到几乎任何体量的社会组织中,并成为重要的生产因素,人们对于海量数据的挖掘和运用,推动了21世纪以来新一波的生产率增长和消费浪潮的到来。所以,在现今及未来可预见的时代,说“一切皆数据”也不为过!
不过,如今的“数据”相对以前的“数据”,其内涵有了极大的扩展,而涉及到的相关技术和工具也发生了翻天覆地的变化,于是“大数据”的概念产生了。
大数据(big data)是指海量的、多样化的交易数据、交互数据、终端与网络数据以及传感数据等,其主要特征包括:
海量的数据规模:大数据一般指在10TB规模以上的数据量,甚至常常是PB(1PB=1024TB)级别的。
快速的数据流转:大数据通常需要能够获得实时的处理、分析和利用,能够实现数据的快速流转。
多样的数据类型:大数据通常用来形容大量的非结构化和半结构化数据,对数据的类型几乎没有任何限制,如文档、图片、音频、视频、电子邮件、网页等。
较低的价值密度:半结构化和非结构化的数据,其价值密度通常来说较低,所以相比那些价值密度较高的结构化数据,更需要使用大数据技术进行处理。
信息技术的核心就在于数据,数据与几乎每一项信息技术都息息相关,或为因,或为果;几乎任何一项信息技术,或者需要依赖数据,或者能够产生数据,或者直接或间接地服务于数据。
物联网:通过物联网采集的数据通常具有非结构化、碎片化、时空域等特性,所以需要通过新型的数据存储和处理的大数据技术来加以利用。
人工智能:想提升人工智能本身的性能和精准度,必须依赖大量的样本数据,一个粗略的经验法则是,对于监督学习算法,在每给定约5000个标注样本的情况下,人工智能程序将达到可以接受的性能;而当至少有1000万个标注样本的数据集可用于训练时,人工智能程序将达到甚至超过人类表现。
企业上云:大量企业在长期运营中积累了丰富的数据资源,但一直都是分散在独立的系统中进行碎片化保存的,而随着企业上云的全面推进,未来这些碎片化保存的数据资源将能够在被迁移到云中后,基于大数据技术进行价值挖掘。
边缘计算:随着边缘计算的发展,企业收集数据方式将逐渐转向设备端,由于边缘计算相对云计算更加靠近数据源头,可以有效降低数据传输处理到反馈的迟延,同时具有显著的效率成本优势和安全隐私保护优势,因此将进一步扩大数据采集的适用场景和规模。
开源软件:越来越多的大数据相关开源软件的出现,能够帮助使用者实时访问和处理数据,中小型组织和初创企业将从中受益,免费的开源软件可以帮助企业降低运营成本,并促进他们去学习、掌握、生产和使用大数据,从而夯实大数据产业的底层基础,并将与头部科技巨头企业一起,共同激活整体大数据产业生态。
5G技术:5G网络的高带宽和低时延,将使得单位时间内产生的数据量急剧增长,单位区域内的联网设备成倍增加,人与物、物与物之间的连接急剧增多。在5G时代,数据采集渠道将更加丰富,更加海量的原始数据将被收集。
下面再说说大数据的学习路线。由于大数据涉及的范畴非常广,为了避免盲人摸象,因此对于初学者来说,建议沿着大数据处理的整个流程,对各个环节的基本概念和主要框架有个整体的认识,之后可以再根据自己的兴趣或具体岗位的需要,聚焦于某个细分领域,如数据可视化、数据仓库、数据分析、数据安全等等。
大数据处理的主要环节包括数据采集、数据存储、数据处理和数据应用。
数据采集:大数据处理的第一步是数据采集。现在的中大型项目会采用微服务架构进行分布式部署,所以数据的采集需要在多台服务器上进行,且采集过程不能影响正常业务的开展。基于这种需求,就衍生了多种日志收集工具,如Flume、Logstash、Kibana等,它们都能通过简单的配置完成复杂的数据采集和数据聚合工作。
数据存储:采集数据后的下一个问题就是:数据该如何进行存储?通常大家最为熟知是MySQL、Oracle等传统的关系型数据库,它们的优点是能够快速存储结构化的数据。但大数据的数据结构通常是半结构化(如日志数据)甚至是非结构化的(如视频、音频、网页),为了解决海量半结构化和非结构化数据的存储,衍生了Hadoop HDFS、KFS、GFS等分布式可扩展的文件系统。分布式文件系统完美地解决了海量数据存储的问题,但是一个优秀的数据存储系统需要同时考虑数据存储和访问两方面的问题,比如你希望能够对数据进行随机访问,这是传统的关系型数据库所擅长的,基于这种需求,就产生了HBase、MongoDB。
数据分析:大数据处理最重要的环节就是数据分析,数据分析通常分为两种:批处理和流处理。批处理是指对一段时间内海量的离线数据进行统一的处理,对应的处理框架有Hadoop MapReduce、Spark、Flink等;流处理是指对流转中的数据进行处理,即在接收到数据的同时就对其进行处理,对应的处理框架有Storm、Spark Streaming、Flink Streaming等。批处理和流处理各有其适用的场景,时间不敏感或者硬件资源有限,可以采用批处理;时间敏感和及时性要求高就可以采用流处理。此外,为了能够让熟悉SQL的人员也能够进行数据的分析,查询分析框架应运而生,常用的有Hive、Spark SQL、Flink SQL、Pig、Phoenix等。这些框架都能够使用标准的SQL或者类SQL语法灵活地进行数据的查询分析,这样,即便是没有较强编程能力的非后台工程师,也能很容易地进行大数据分析了。
数据应用:数据分析完成后,接下来就是具体数据应用的范畴了,这取决于实际的业务需求。比如你可以将数据直接进行可视化展现以辅助决策或预警,或者将数据用于优化产品中的个性化页面和推荐算法,或者将数据用于训练你的人工智能机器学习模型,这些都属于具体大数据应用领域的范畴,也都有着对应的框架和技术栈可供使用。
上面提及了一些标准的大数据处理流程所用到的技术框架,但是实际的大数据处理流程比上面会复杂很多,希望系统和全面学习大数据的朋友,这里有一本[大数据入门指南]完整介绍了针对大数据由浅入深的学习路线及重要知识点,此外还有一本[为数据而生 大数据创新实践]有很多针对大数据应用领域不错的案例、观点和方法论,有兴趣的朋友可以根据下面线索获取。
创作不易,欢迎朋友们关注、评论、转发。如企业转载或其它,请keji5u(科技无忧订阅号)
,