文章目录
〇、引言
以下内容摘自《大数据时代》:
随着智能手机以及“可佩带”计算设备的出现,我们的行为、位置,甚至身体生理数据等每一点变化都成为了可被记录和分析的数据。
大数据的真实价值就像漂浮在海洋中的冰山,第一眼只能看到冰山的一角,绝大部分都隐藏在表面之下。而发掘数据价值、征服数据海洋的“动力”就是云计算。
在云计算出现之前,传统的计算机是无法处理如此量大、并且不规则的“非结构数据”的。以云计算为基础的信息存储、分享和挖掘手段,可以便宜、有效地将这些大量、高速、多变化的终端数据存储下来,并随时进行分析与计算。大数据与云计算是一个问题的两面:一个是问题,一个是解决问题的方法。
大数据的核心就是预测。它通常被视为人工智能的一部分,或者更确切地说,被视为一种机器学习。但是这种定义是有误导性的。大数据不是要教机器像人一样思考。相反,它是把数学算法运用到海量的数据上来预测事情发生的可能性。一封邮件被作为垃圾邮件过滤掉的可能性,输入的“teh”应该是“the”的可能性,从一个人乱穿马路时行进的轨迹和速度来看他能及时穿过马路的可能性,都是大数据可以预测的范围。当然,如果一个人能及时穿过马路,那么他乱穿马路时,车子就只需要稍稍减速就好。这些预测系统之所以能够成功,关键在于它们是建立在海量数据的基础之上的。此外,随着系统接收到的数据越来越多,它们可以聪明到自动搜索最好的信号和模式,并自己改善自己。
世界许多现在单纯依靠人类判断力的领域都会被计算机系统所改变甚至取代。计算机系统可以发挥作用的领域远远不止驾驶和交友,还有更多更复杂的任务。别忘了,亚马逊可以帮我们推荐想要的书,谷歌可以为关联网站排序,Facebook知道我们的喜好,而LinkedIn可以猜出我们认识谁。[插图]当然,同样的技术也可以运用到疾病诊断、推荐治疗措施,甚至是识别潜在犯罪分子上。
一、什么是大数据
大数据是指无法在有限时间内用常规软件工具对其进行获取、存储、管理和处理的数据集合。
- 大数据的特点:
海量化:海量的数据规模;
多样性:多样的数据类型;
快速化:快速的数据流转;
价值化:数据的价值密度低,但整体价值高。
规模一般为GB->TB/PB以上;数据增长速度快,数据处理速度快;数据可能包含结构化、半结构化、非结构化数据;价值密度低,但价值巨大,可使用机器学习、人工智能来更加高效地处理。
-
应用:
- 基于大数据的用户行为分析:应用基础统计分析UV和PV,用户画像等。
- 基于大数据地数据仓库系统:报表统计,数据挖掘预测等。
- 基于大数据的精准服务:个性化推荐系统、广告投放等。
- 基于大数据的智能分析决策:用户增长、反作弊等。
-
大数据体系:
- 流式处理、批式处理、实时处理:
批处理: 静态数据集、离线计算、非实时、小时/天等周期性计算。批处理系统可以存取已经入库的所有数据,人们可以对数据进行复杂深入的分析,分析处理的延迟以分钟或者小时计。批处理是最通用的数据处理模式。传统的关系数据库系统、Hadoop以及Spark大数据处理平台等,都采用了这样的数据处理模式,或者以该处理模式为主。由于需要完整地保存整个数据集,并且在上面进行分析处理,比起流式数据处理系统,人们需要投入更多的硬件资源。
流处理: 动态数据集、可看作实时计算、7*24小时不断运行、流批一体。数据持续到达,系统及时处理新到达的数据,并不断产生输出。处理过的数据一般丢弃掉,当然也可以保存起来。流式数据处理模式强调数据处理的速度。完成分析处理的时间,需要达到实时或者接近实时的响应时间要求。
实时处理: 在数据生成或收到后立即进行处理的过程。在这种处理方式中,数据处理的延迟非常低,以便及时作出响应。
二、数据仓库的相关概念
1.什么是数仓
数据仓库是一个面向主题的、集成的、随时间变化的、不容易丢失的数据集合。
- 面向主题的 (Subject-Oriented):
数据仓库是围绕特定业务领域或主题组织的,而不是像操作型系统那样按照应用程序的需求来组织。这意味着在数据仓库中,数据是以业务视角(例如销售、客户、产品等)来分类和存储的,而不是按技术实现的功能模块来划分。 - 集成的 (Integrated):
数据仓库中的数据是从多个不同的源系统(如事务处理系统、外部数据提供者等)收集并整合在一起的。这些源系统可能有不同的数据格式和结构,数据仓库需要将这些数据转换成一致的格式,以便进行综合分析。 - 随时间变化的 (Time-Variant):
数据仓库不仅存储当前的数据状态,还保留历史数据记录。这意味着它可以追踪数据随时间的变化情况,这对于趋势分析和预测非常有用。数据仓库通常会保存数据的历史版本,并且支持对过去某一时间点的数据进行查询。 - 不容易丢失的 (Non-Volatile):
这意味着一旦数据被加载到数据仓库中,它通常不会被修改或删除。这样做是为了保持数据的历史完整性,确保分析结果的准确性。即使原始源系统中的数据发生了变化,数据仓库中的历史数据仍然会被保留下来用于后续的分析。
2.数据仓库和数据库的区别
普通数据库用于在线事务处理OLTP(OnLine Transaction Proccessing);而数据仓库用于在线数据分析处理OLAP(OnLine Analytical Processing)。
三、大数据计算架构的发展
1.RDBMS阶段
在最早期,关系型数据库(RDBMS)能解决一切问题,这些数据库集数据计算、数据存储于一体。使用者只需要将原始数据保存到一张数据源表中,后续再根据自己的业务需求写SQL将结果再次保存到另一张表中就可以了,这是传统数据库最常见的数据处理模型。
特点: 这种架构方式简单易用,但是这种单机的、一体的架构方式效率低下,而且一旦其中某一个环节出错,就会导致整个系统崩溃。
2.Hadoop Map-Reduce阶段
Hadoop不是某个单一技术的软件,它是一个大数据处理系统和生态的总称,Hadoop最初出现在大众视野中时,指的是:HDFS文件系统 + Map-Reduce计算引擎 + HBASE数据库(BigTable 原理)。
-
Hadoop特点:
解耦: 从HDFS读取原始数据,再用MapReduce计算引擎进行计算,最后用HBASE来存储计算后的结果。
分布式: 数据从HDFS读取是分治的——同时存储在多台机器上;通过MapReduce计算引擎来计算是分治的——多台机器一起计算,每台机器计算一小部分;最后将结果保存到HBASE也是分治的——结果会分布存储到多台机器中。
低成本: 软件低成本——开源使用;硬件低成本——几乎适配所有操作系统。 -
Hadoop生态系统:
3.Spark阶段
- Hadoop MapRedcue 缺点:
延迟过高,无法胜任实时、快速计算需求的问题,使得需要进行多路计算和迭代算法的用例的作业过程不够高效。
Spark 基于MapReduce技术,继承了 Hadoop MapReduce 其分布式并行计算的优点,并改进了 MapReduce 明显的缺陷,基于内存迭代计算,可以融入Hadoop生态系统。
Spark基于 微批量处理 ,把流数据看成是一个个小的批处理数据块分别处理,所以延迟性能做到秒级。
4.Flink阶段
Flink是一个流式计算框架,实效性达到了实时级别。
- Hadoop Map-Reduce、Spark、Flink区别: