大数据学习

大数据学习

  • 概述
  • 云计算
  • 高性能计算
  • 大数据存储
  • 云存储
  • 大数据分析
  • 聚类分析、分类分析
  • 大数据采集
  • 大数据预处理
  • 大数据数据库设计
  • Spark SQL
  • 数据仓库Hive
  • Hadoop基础
  • 大数据批处理
  • 大数据实时处理

概述

  • 全球移动数据流量年增长率维持在50%增长;
  • 大数据就是超过传统数据库处理能力的数据;
  • 大数据就是对大量、动态、能持续的数据,通过运用新系统、新工具、新模型的挖掘,从而获得居右洞察力和新价值的东西;
  • 数据产生的速度以及数据的多样性是大数据不可忽略的两个基本特性
  • 大数据具有数据体量巨大数据类型繁多特性
  • 大数据是庞大的、多样化的、复杂度、纵深的和/或分布式的;
  • 大数据特征:Volume(容量)Variety(种类)Velocity(速度)Value(价值)
    Volume(容量):指大数据巨大的数据量与数据完整性;
    Variety(种类):意味着要在海量、种类繁多的数据件发现其内在关联;有些数据是“天生数字化的”,有些数据是“天生模拟的”;
    Velocity(速度):可以理解为更快的满足实时性需求(实时的定义:小于250ms);
    Value(价值):获取洞察力和价值;
  • 云计算是大数据的IT基础,大数据是云计算的一个杀手级应用;
  • 机器学习被认为是大数据发挥真正价值的领域;
  • 大数据问题:存、管、用
    存:如何解决PB级别大数据的存储问题;
    管:如何解决非结构话数据的管理问题;
    用:如何解决这总大规模复杂结构下的实事应用问题;
  • 移动互联网就是将移动通信和互联网二者结合起来;
  • 移动互联网是一种通过移动终端,采用移动无效通信方式获取业务和服务的新兴业态,它包含终端、软件、和应用三个层面。
    终端层:智能手机、平板电脑、电子书、MID等;
    软件处:操作系统、中间件、数据库和安全软件等;
    应用层:休闲娱乐类、工具媒体类、商务财经类等不同应用与服务;
  • 智能终端分类:家居智能终端、4/5G智能终端、数字会议桌面智能终端、金融智能终端机;

云计算

  • 云计算技术是一种技术模型;
  • 云计算技术包含:分布式计算技术、虚拟化技术、网络技术、服务器技术、数据中心技术、云计算平台技术、存储技术等;
  • 云计算三个角色:资源的整合运营者、资源的使用者、终端客户;
  • 云计算特点:资源池弹性可扩张、按需提供资源服务、虚拟化、高可靠的安全性;
  • 云计算技术分类
    从技术路线角度可以分为资源政和县云计算和资源切分型云计算;
    从服务对象角度可以被分为公有云和私有云;
    按资源封装的层次可以分为基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS);
  • 云技术体系
    虚拟化层<–>硬件即服务
    基础设施层<–>IaaS
    平台层<–>PaaS
    应用层<–>SaaS
  • 数据来源:信息管理系统、网格信息系统、物联网系统、科学实验系统等;其数据包括结构化数据、半结构化数据和非结构化数据;
  • 生产数据的三个阶段:被动式生成数据、主动式生成数据、感知式生成数据;
  • 大数据特点:数据产生方式、数据采集密度、数据源、数据处理方式;
  • 大数据应用领域:科学计算、金融、社交网络、移动数据、物联网、网页数据、多媒体等;
  • 目前大数据处理系统:数据查询分析系统、批处理系统、流式计算系统、迭代计算系统、图计算系统、内存计算系统;
  • 大数据处理流程: (1).数据的抽取与集成;(2).数据分析;(3).数据解释;

高性能计算

  • 高性能计算一般采用超级计算集群计算两种方式;
  • 数据密集型计算不仅要存储超大规模数据,还要对数据进行复杂的计算和分析;
  • 结构化数据和非结构话数据都是大数据时代处理的对象
  • 非结构话数据一般采用文件系统进行存储,结构化数据主要存储域数据库和分布式表结构中;
  • 当前主要的数据密集型集群计算系统有Hadoop、HPCC、Storm、Apache Drill、Rapid Miner、Pentaho等;
  • 计算密集型平台需要尽量减少数据的移动,大多数的超级计算将数据存储在数据仓库或者服务器;
  • 高性能计算目前可以分为两类:面向计算的高性能计算、面向数据的高性能计算;
  • Thor集群是HPCC系统的基础部件,用户对待处理的原始数据进行加工、精炼,一个HPCC集群中可以有多个该集群;
    Roxie集群作为数据快速交付引擎,是一个高性能的结构化查询和分析平台,支持高并发数据请求,快速响应请求;
    Thor和Roxie是相互配合的,物理上是一个集群,只是完成的任务不同;
  • HPCC执行过程,导入原始数据、数据切分与分发、ETL处理、Roxie集群发布;
  • 分发后原始数据的ETL处理,这个是Thor集群的典型应用;

大数据存储

  • 数据存储面临的问题:OLTP(联机事务处理)、OLAP(联机分析处理)、典型的非结构化数据;
    OLTP:被称为实时系统,最大的优点就是可以即时地处理输入的数据,及时的回答;
    OLAP:数据仓库系统的主要应用,也是商业智能(BI)的灵魂;
  • 大数据不容忽视的问题:容量问题(PB级数据规模)、实时性问题、并发访问、安全问题、成本问题、数据的积累、灵活性、应用感知、小用户怎么办
  • 数据存储面临的挑战:数据存储的多样化(备份与归档)、大数据管理需要各种技术;
  • 存储技术的趋势预测与分析:存储虚拟化、固态硬盘、云存储、SOHO存储等;

云存储

  • 云存储是云计算概念基础上延伸和发展出来的一个新概念,是指通过集群应用、网格技术活分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统;
  • 存储系统的重点:安全性、容量的扩展能力、性能;
  • 云存储技术问题:成本激增、磁盘碎片问题、性能问题、运营管理问题;
  • 云存储优点:管理方便、成本低(因为文件存放在不同服务器上,硬件损坏时服务不会停止;扩展时会自动合并存储节点)、量身定制;
  • 云存储分类:公共云存储、内部云存储、混合云存储;
  • 云存储技术基础:宽带网络的发展;Web2.0技术;应用存储的发展;集群技术,网络技术和分布式文件系统;CDN、P2P技术、数据压缩技术、重复数据删除技术和数据加密技术;存储虚拟化技术和存储网格化管理技术;
  • 云存储结构模型:存储层、基础管理层、应用接口层、访问层;
    存储层:是云存储最基础的最基础的部分;
    基础管理层:是云存储最核心的部分,也是云存储中最难以实现的部分;
  • 云存储的解决方案:云状的网格结构;云存储不是存储,而是服务;弹性云存储系统架构;
  • 云存储未来发展趋势:安全性、便捷性、性能和可用性、数据访问;

大数据分析

  • 数据分析是只用适当的统计方法对收集来的大量第一手资料和第二手资料进行分析,以求最大化地开发数据资料的功能,发挥数据的作用;
  • 数据分析分为:描述性数据分析、探索性数据分析、验证性数据分析;
  • 数据分析过程:(1)探索性数据分析;(2)模型选定分析;(3)推断分析;
    识别信息需求->收集数据->分析数据->过程改进
  • 数据分析框架的主要事件:分类、估计、预测、数据分组、聚类、描述、复杂数据挖掘;
  • 数据挖掘是指从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程;
  • 数据挖掘包含准备、规律寻找、规律表示三个步骤;
  • 数据挖掘的任务主要包括关联分析、聚类分析、分类分析、异常分析、特异群组分析和演变分析等;
  • 数据挖掘技术产生的基本条件分别是:海量数据的产生与管理技术、高性能的计算机系统、数据挖掘算法;
  • 激发数据挖掘技术研究与应用的主要技术因素:超大规模数据库的产生、先进的计算机技术、对海量数据的快速访问需求、对海量数据应用统一方法计算的能力;
  • 数据挖掘从作用上可以分为预言性挖掘和描述性挖掘两大类;
  • 数据挖掘的过程:定义问题->选取合适的数据->理解数据->准备建模数据->建立模型->评价模型->部署模型;
  • 数据挖掘的主要算法:分类方法(决策树分类算法、贝叶斯分类算法、BP算法)、关联方法(Apriori算法、MAGAs算法)、聚类方法(统计分析算法、机器学习算法、神经网络算法等)、预计序列方法(简易平均法、移动平均法、指数平滑发、线性回归法、灰色预测法);

聚类分析、分类分析

  • 聚类分析属于探索性的数据分析方法;
  • 聚类分析的基本过程:选择聚类变量->聚类分析->找出各类用户的重要特征->聚类解释&命名;
    选择聚类变量要求:这些变量在不同研究对象的值具有明显差异;这些变量之间不能存在高度相关;
    聚类分析标准:看拐点(层次聚类会的到聚合系数图);凭经验或产品特性判断(不同产品的用户差异性也不同);在逻辑上能够清楚的解释;
  • 识别合适的聚类变量的方法为:对变量做聚类分析,从聚得的各类中挑选出一个具有代表性的变量;做主成分分析或因子分析,产生新的变量作为聚类变量;
  • 分类算法的目的是建立事例特征到类别的对应法则;
  • 序列聚类通过对一系列事件发生的顺序聚类,来预测当一个事件发生时,下一步会发生什么事件;
  • 分类流程:
    训练:训练集->特征选取->训练->分类器
    分类:新样本->特征选取->分类->判决
  • 分类是用于识别什么样的事务属于哪一类的方法,可用户分类的算法主要有决策树、朴素贝叶斯(Naive Bayes)、神经网络回归等;
    决策树归纳是经典的分类算法;
    朴素贝叶斯是一种在已知先验概率与类条件概率情况下的模式分类方法,待分样本的分类结果取决于各类域中样本的全体;
    神经网络是一种模拟生物上神经元工作的机器学习方法;
  • 分类方法是建立事例特征对应到分类的方法;
  • 除了简单的线性回归和逻辑回归两种,决策树可以简历自动回归树模型,神经网络也可以进行回归,实际上,逻辑回归就是去掉隐藏层的神经网络;
  • 其他分类算法
    KNN法即K最邻近法,如果一个样本在特征空间中的k个最邻近(即特征控件中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,适用于容量大的数据;
    SVM法即支持向量机法,可以自动寻找出那些对分类有较好区分能力的支持向量;
    VSM法即向量空间模型法,适用于专业文献分类;
  • 时间序列:就是讲某一指标在不同时间上的不同数值,按照时间的先后顺序排列而成的数列;
  • 影响时间序列的构成因素
    趋势性:指现象随时间推移朝着一定方向呈现出持续渐进地上升、下降或平稳的变化或移动。这一变化通常是许多长期因素的结果;
    周期性:指时间序列表现为循环与趋势线上方和下方的点序列并持续一年以上的有规则变动;
    季节性变化:指现象受季节性影响,按一固定周期呈现出的周期性波动变化;
    不规则变化:指现象受偶然因素的影响而呈现出的不规则波动;
  • 时间序列的分类:按所研究的对象多少来分,有一元时间序列和多元时间序列;按时间的连续性可以将时间序列分为离散时间序列和连续时间序列;

大数据采集

  • 大数据采集概念:采集是大数据处理流程的第一步,数据是大数据处理的基础,数据的完整性和质量直接影响大数据处理的结果;
  • 大数据是指从传感器和智能设备、企业在线系统、企业离线系统、社交网络和互联网平台等获取数据的过程;
  • 数据包括RFID射频数据、传感器数据、用户行为数据、社交网络交互数据以及移动互联网数据等各种类型的结构化、半结构化及非结构化的海量数据;
  • 大数据数据分类:传统数据为业务数据,传统数据中没有考虑过的新数据源分为线下行为数据、线上行为数据和内容数据三大类;
  • 大数据采集方法分类:数据库采集、系统日志采集、网络数据采集、感知设备数据采集;

大数据预处理

  • 大数据预处理:将分散的、异构数据源中的数据如关系数据、网络数据、日志数据、文件数据等抽取到临时中间层后,进行清洗、转换、集成,最后加载到数据仓库或数据库中,成为通过数据分析、数据挖掘等提供决策支持的数据;
  • 数据预处理主要包括:数据清洗、数据集成、数据转换、数据消减;
  • 大数据预处理将数据划分为结构化数据和半结构化/非结构化数据,分别采用传统ETL工具和分布式并行处理框架来实现;
  • 数据质量问题分类
    单数据源定义层:(1)违背字段约束条件;(2)字段属性依赖冲突;(3)违反唯一性;
    单数据源实例层:单个属性值含有过多信息、拼写错误、空白值、噪音数据、数据重复、过时数据等;
    多数据源的定义层:(1)同一个实体的不同称呼;(2)同一种属性的不同定义;
    多数据源的实例层:(1)数据的纬度、粒度不一致;(2)数据重复、拼写错误等
  • 数据清洗过程:通过填补遗漏数据、消除异常数据、平滑噪声数据,以及纠正不一致的数据;
    遗漏数据处理:忽略该条记录、手工填补遗漏值、利用缺省值填补遗漏值、利用均值填补遗漏值、利用同类别均值填补遗漏值、利用最可能的值填补遗漏值(常用的方法);
    噪声数据处理(指被测变量的一个随机错误和变化):Bin方法(划分方法:等高法、等宽法)、聚类方法、人机结合检查方法、回归方法;
    不一致数据处理:利用它们与外部的关联手工加以解决;
  • 数据集成即将来自多个数据源的数据,结合在一起并形成一个统一的数据集合,以便数据处理工作的顺利完成提供完整的数据基础;
  • 数据集成过程中需要考虑的问题:模式集成问题、冗余问题、数据值冲突检测与消除;
  • 数据转换包含处理内容:平滑处理,帮助出去数据中的噪声;合计处理,对数据进行总结或合计操作;数据泛化处理;规格化;属性构造;
  • 数据消减主要策略
    数据立方合计:这类合计操作主要用户构造数据立方(数据仓库操作);
    维数消减:主要用于检测和消除无关、弱相关、或冗余的属性或纬(数据仓库中属性);
    数据压缩:利用编码技术压缩数据集的大小;
    数据块消减:利用更简单的数据表达形式;
    离散化与概念层次生成:所谓离散化就是利用取值范围或更高层次概念来替换初始数据;
  • 离散化技术方法可以通过将属性(连续取值)域值范围分为若干区间,来帮助消减一个连续(取值)属性的取值个数;
  • 数值概念层次树主要构造方法:Bin方法、直方图方法、聚类分析方法、基于熵的离散化方法、自然划分分段方法;
  • 类别概念层次数主要构造方法:属性值的顺序关系已在用户或专家指定的模式定义说明、通过数据聚合来描述层次树、定义一组属性但不说明其顺序;

大数据数据库设计

  • 数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求;
  • 数据库设计的内容
    结构设计:根据给定的应用环境,设计数据库的子模式或模式;
    行为设计:确定数据库用户的行为和动作;行为设计也就是应用程序的设计,又称为动态模型数据;
  • 数据库设计的特点:技术和管理相结合、结构设计和行为设计相结合;
  • 数据库设计的方法:手工试凑法、新奥尔良法;基于E-R模型方法、基于3NF的数据库设计方法;
  • 数据库设计步骤:需求分析(设计的基础)->概念结构设计(设计的关键)->逻辑结构设计(模型装换以及优化)->物理结构设计->数据库实施->数据库运行和维护;
  • 需求分析的任务:调查分析用户的活动、收集和分析需求数据、编写系统分析报告;
  • 需求分析方法:数据流图、、数据字典;
  • 调查用户需求的步骤:(1)调查分析应用系统现状,产生业务流程图;(2)调查各部分的业务活动情况;(3)明确新系统要求;(4)确定新系统的边界;
  • 概念模型特点:语义表达能力丰富、易于交流理解、易于修改扩充、易于向各种数据模型转换;
  • 概念结构设计方法:自顶向下、自底向上、由里向外逐步扩张、混合策略;
  • 概念结构设计步骤:进行数据抽象、集成各局部E-R模型;
  • 概念结构设计:分类、聚集;
  • 视图集成方法:多元集成法、二元集成法;
  • 视图集成步骤:合并(命名冲突、结构冲突)、优化;

Spark SQL

  • SparkSql是一个用来处理结构化数据的Spark组件,为Spack提供了查询结构化数据的能力;
  • SparkSql提供了三种访问接口:SQL、DataFrame API、Dataset API;
  • SparkSql特点:
    数据兼容方面:能加载和查询来自各种来源的数据;
    性能优化方面:除了采取内存列存储、代码生成等优化技术外,还引进成本模型对查询进行动态评估、获取最佳物理计划等;
    组件扩展方面:无论是Sql的语法解析器、分析器还是优化器都可以重新定义,进行扩展;
    标准连接:SparkSql包括具有行业标准JDBC和ODBC连接发服务器模式;
    集成:无缝的将SQL查询与Spark程序混合;
    可扩展行:对于交互式查询和长查询使用相同的引擎;
  • SparkSql执行流程:解析、绑定、优化、执行;
  • DataFrame是SparkSQL的核心;

数据仓库Hive

  • 数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策;
  • 数据仓库特点:面向主题、集成的、相对稳定的、反应历史变化;
    面向主题:数据仓库中的数据是按照一定的主题域进行组织;
    集成的:无论何种数据源都会被装入同一个仓库系统;
    相对稳定的:一旦存储,便不会修改;
    反映历史变化:数据中包含历史信息记录;
  • 数据仓库与操作数据库区别:用户系统的面向性、数据内容、数据库设计、视图、访问模式;
  • 数据仓库架构:数据源、数据仓库服务器、OLAP服务器、前端工具;
    数据源:数据仓库的基础;
    数据仓库服务器:数据仓库的核心;
    OLAP服务器:对数据进行有效继承和分析
    前端工具:报表工具等;
  • 传统数据仓库问题:无法满足快速增长的海量数据、无法处理不同类型的数据、传递数据仓库建立在关系型数据仓库之上计算和处理能力不足、过去的数据库没有提供数据搜索和挖掘的能力但是这些是现阶段企业的刚需;
  • Hive体系组件:服务端组件、客户端组件;
    服务端-Driver组件:将用户的HiveQl语句进行解析、编译优化,生成执行计划,然后调用底层的MapReduce计算框架;
    服务端-Metastore组件:存储Hive源数据;
    服务端-Thrift服务:用来进行扩展且跨语言的服务的开发,能让不同的编程语言调用Hive的接口;
    服务端-CLI:命令行接口;
    客户端-Thrift:Hive架构的许多客户端接口是建立在该端之上;
    客户端-WEB GUI:提供了网页的方式访问Hive所提供的服务;
  • Hive工作流程
    Execute Query:将查询发送到Driver来执行
    Get Plan:Driver根据查询编译器解析查询语句,验证查询语句的语法,查询计划或者查询条件;
    Get Metadata:编译器将源数据请求发送到Metastore;
    Send Metadata:Metastore将源数据作为响应发送给编译器;
    Send Plan:编译器检查要求和重新发送Driver的计划,查询和解析编译完成;
    Excute Plan:Driver将执行计划发送到执行引擎;
    Fetch Results:执行引擎接收数据节点(Data Node)的结果;
    Send Results:执行引擎发送这些合成值到Driver;
    Fetch Results: Driver将结果发送到Hive接口;
  • Hive基本数据类型:整数数据类型、小数类型、文本类型、Boolean、二进制、Array、Map、STRUCT、UNION;
  • Hive的表有内部表和外部表两大类;

Hadoop基础

  • Hadoop是对Goodl的文件系统GFS和分布式计算框架MapReduce等核心技术的开源实现;
  • Hadoop架构的核心是HDFS和Hadop MapReduce;
  • Hadoop生态:HDFS、MapReduce、

大数据批处理

  • 批处理模式:是一种进行大规模数据处理的最早的模式;
  • 批处理模式使用的数据集特征
    有界:批处理数据集代表数据的有限集合;
    持久:数据通常始终存储在某种类型的持久存储位置中;
    大量:批处理操作通常是处理超大规模数据集的唯一方法;
  • MapReduce合并了两种经典函数
    映射(Map):对集合中的每个元素进行同一个操作;
    化简(Reduce):遍历集合中的元素来返回一个综合的结果;
  • MapReduce主体思想:通过分散计算来分析大量数据;
  • 使用MapReduce基本思想:对大数据采取分而治之、构建抽象模型(Map和Reduce函数)、上升到构架(并行自动化并隐藏底层细节);
  • MapReduce流程:数据按照键值对拆分->集群各端处理->Reduce结果合并;
  • MapReduce主要功能:任务调度、数据/程序互定位、出错处理、分布式数据存储与文件管理、Combiner和Partitioner;
  • MapReduce1.0由Client(客户端)、JobTracker(作业跟踪器)、TaskTracker(任务跟踪器)、Task(任务)组成;

大数据实时处理

  • Spark 优势:
    (1)提供了内存计算,减少了写入磁盘的需求,提高了处理效率,更适合交互式分析;
    (2)提供了统一的框架管理不同来源的数据以及支持更多的计算类型;
    (3)操作比Hadoop容易,而且提供的数据集类型更加丰富;
    (4)基于DAG的调度机制比Hadoop更优越,可以使用更多管道数据,控制中间结果行为;
  • Spark适用场景:多次操作特定数据集、数据量不大但是需要实时统计的分享需求、由于RDD特性不适用于增量修改的场景;
  • RDD是Spark提供的最重要的抽象概念,它是一种有容错机制的特殊数据集合,可以分布在集群的节点上,以函数式操作集合的方式进行各种并行操作;
  • RDD属性:
    只读的,不能修改,只能通过转换操作生成新的RDD;
    是分布式的,可以分布在多台机器上,进行并行处理;
    是弹性的,计算过程中内存不够时他会和磁盘进行数据交换;
    是基于内存的,可以全部或部分缓存在内存中,在多次计算间重用;
  • RDD实质上是一种更为通用的迭代并行计算框架,用户可以显示控制计算的中间结果,然后将其自由运用于之后的计算;
  • RDD基本操作:构建操作、转换操作、行动操作;
  • RDD血缘依赖:窄依赖、宽依赖;

你可能感兴趣的:(big,data,学习,大数据)