大数据导论-第3章-大数据采集与预处理_第1页
大数据导论-第3章-大数据采集与预处理_第2页
大数据导论-第3章-大数据采集与预处理_第3页
大数据导论-第3章-大数据采集与预处理_第4页
大数据导论-第3章-大数据采集与预处理_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大数据技术导论第三章大数据采集与预处理3.1

数据3.2数据采集3.3数据清洗3.4数据变换3.5网络爬虫

大数据采集与预处理主要指网络爬虫和ETL技术。ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。

ETL负责将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后,进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘提供决策支持的数据。3.1数据

数据不仅仅是数字,它描绘了现实的世界,与照片捕捉了瞬间的情景一样,数据是现实世界的一个快照。数据是对我们所研究现象的属性和特征的具体描述。3.1.1数据是什么第三章大数据采集与预处理3.1数据数据、信息、知识之间存在一定的区别和联系,见图3.1。3.1.1数据是什么第三章大数据采集与预处理2.1认识hadoop第二章大数据生态系统3.1数据第三章大数据采集与预处理3.1.2数据分类2.1认识hadoop第二章大数据生态系统3.1数据第三章大数据采集与预处理(1)从数据的结构化程度看,可分为:结构化数据、半结构化数据和非结构化数据类型含义本质举例技术结构化数据直接可以用传统关系数据库存储和管理的数据先有结构,后有管理数字、符号、表格SQL非结构化数据无法用传统关系数据库存储和管理的数据难以发现同一的结构语音、图像、文本NOsql,NewSql,云技术半结构化数据经过转换用传统关系数据库存储和管理的数据先有数据,后有结构HTML、XMLRDF、OWL2.1认识hadoop第二章大数据生态系统3.1数据第三章大数据采集与预处理(2)从数据的加工程度看,可分为:裸数据、专家数据、信息和价值2.1认识hadoop第二章大数据生态系统3.1数据第三章大数据采集与预处理(3)从价值角度,把数据分为:线上数据(热数据,流动数据)和线下数据(冷数据、静态数据),线上数据比线下数据更有价值。2.1认识hadoop第二章大数据生态系统3.1数据第三章大数据采集与预处理3.1.3度量和维度订单ID用户ID地区年龄订单金额订单商品订单时间199北京19126T恤衫2014/10/821008北京1480牛仔裤2014/9/1327上海24309衬衫2014/3/14467北京22286衬衫2013/5/255983北京21222毛衣2013/12/146266上海31560西服2014/1/8754上海25313衬衫2012/6/68498广州22275衬衫2012/11/991209北京24299牛仔裤2013/4/110709北京18120T恤衫2014/8/10这些数据项有什么差异呢?总体而言,分两种,一种叫维度,一种叫度量(或者叫指标)。在表3.2里,“订单金额”是度量,其余数据项都是维度。2.1认识hadoop第二章大数据生态系统3.1数据第三章大数据采集与预处理

度量是计算用的量化数值,而维度是描述事物的各种属性信息。

虽然度量都是数值,但是数值不一定是度量,比如订单ID是数值,但它不是度量而是维度,像时间、文本类的数据都是维度。

注意:

(1)维度和度量是可以转换的。比如要看“年龄”的平均数,这里的“年龄”就是度量,要看19岁用户的订单情况,这里的“年龄”就是维度。对于一个数据项而言,到底它是维度还是度量,是根据用户的需求而定的。(2)维度可以衍生出新的维度和度量,比如用“地区”维度衍生出一个大区维度,“北京”、“天津”都对应“华北大区”,或者用“年龄”维度衍生出一个年龄范围维度,20到29岁=“青年人”,30到39岁=“中年人”,40到49岁=“资深中年人”。再比如上述的平均年龄,就是用“年龄”维度衍生出一个度量。(3)度量也可以衍生出新的维度和度量,比如用“订单金额”度量衍生出一个金额范围维度,100元以下对应“小额订单”,500元以上对应“大额订单”等等。再比如用“收入”度量和“成本”度量相减,可以得到一个“利润”度量。

第三章大数据采集与预处理3.2

数据采集3.1数据3.3数据清洗3.4数据变换3.5网络爬虫3.2.1数据采集分类3.2数据采集第三章大数据采集与预处理一卡通抄表数据股票交易互联网日志GPS历史数据人事档案就业信息借阅信息高频数据低频数据静态数据(1)按采集频率分:静态数据采集、低频数据采集、高频数据采集。3.2.1数据采集分类3.2数据采集第三章大数据采集与预处理关系型数据库非关系型数据库…结构化数据非结构化数据半结构化数据文本图片XMLHTML音频视频企业ERP财务数据各类报表各类数据库(2)按数据结构分:结构化数据采集、半结构化数据采集、非结构化数据采集3.2.1数据采集分类3.2数据采集第三章大数据采集与预处理(3)按采集方式分:定时采集、实时采集。3.2.2数据采集方法3.2数据采集第三章大数据采集与预处理

大数据的采集通常采用多个数据库来接收终端数据,包括智能硬件端、多种传感器端、网页端、移动APP应用端等,并且可以使用数据库进行简单的处理工作。数据抓取(日志)01数据导入(数据库)02物联网传感设备自动信息采集(硬件)033.2数据采集第三章大数据采集与预处理常用日志系统的采集工具考数据类型Flum是Cloudera提供的一个可靠性和可用性都非常高的日志系统,采用分布式的海量日志采集、聚合和传输的系统,支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume具有通过对数据进行简单的处理,并写到各种数据接受方的能力。ScribeScribe是facebook开源的日志收集系统,它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,便于进行集中统计分析处理。它最重要的特点是容错性好。ChukwaApache的开源项目hadoop,被业界广泛认可,很多大型企业都有了各自基于hadoop的应用和扩展。当1000+以上个节点的hadoop集群变得常见时,Apache提出了用chukwa的方法来解决。KafkaKafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理大规模的网站中的所有动作流数据。具有高稳定性、高吞吐量、支持通过Kafka服务器和消费机集群来分区消息和支持Hadoop并行数据加载的特性。3.2数据采集第三章大数据采集与预处理日志采集框架Flume一、Flume结构(1)FlumeNG

以agent为最小的独立运行单位。(2)一个agent就是一个JVM。(3)单agent由Source、Sink和Channel三大组件构成。(4)Flume是一个数据采集框架。Flume提供了大量内置的Source、Channel和Sink类型(见图-图4)。不同类型的Source、Channel和Sink可以自由组合。组合方式基于用户设置的配置文件,非常灵活。(5)Source捕获事件后会进行特定的格式化,然后Source会把事件推入(单个或多个)Channel中。(6)Sink负责持久化日志或者把事件推向另一个Source(见图5)。(7)Channel是一个缓冲区。3.2数据采集第三章大数据采集与预处理1、Source(1)NetCatSource可以使用TCP和UDP两种协议方式,使用方法基本相同,通过监听指定的IP和端口来传输数据,它会将监听到的每一行数据转化成一个Event写入到Channel中。(2)不同主机上的Agent通过网络传输数据可使用的Source,一般是接受Avroclient的数据,或和是上一级Agent的AvroSink成对存在。(3)Execsource通过执行给定的Unix命令的传输结果数据,如,cat,tail-F等,实时性比较高,但是一旦Agent进程出现问题,可能会导致数据的丢失。3.2数据采集第三章大数据采集与预处理2、Sink(1)LoggerSink,LoggerSink以INFO级别的日志记录到log日志中,这种方式通常用于测试。(2)HDFSSink,Sink数据到HDFS,目前支持text和sequencefiles两种文件格式,支持压缩,并可以对数据进行分区,分桶存储。(3)KafkaSink,传输数据到Kafka中,需要注意的是Flume版本和Kafka版本的兼容性3.2数据采集第三章大数据采集与预处理3、Channel

(1)MemoryChannel是使用内存来存储Event,使用内存的意味着数据传输速率会很快,但是当Agent挂掉后,存储在Channel中的数据将会丢失。(2)FileChannel使用磁盘来存储Event,速率相对于MemoryChannel较慢,但数据不会丢失。3.2数据采集第三章大数据采集与预处理二、flume-conf配置文件内容解析例1:Sink数据到log日志#定义agent和三个组件a1.sources=r1a1.sinks=k1a1.channels=c1

#Source组件参数描述a1.sources.r1.type=netcat#从socket端口获取数据a1.sources.r1.bind=localhost#本机采集a1.sources.r1.port=44444#采集端口a1.sources.r1.channels=c1#source与channel绑定#Sink组件参数描述a1.sinks.k1.type=logger#输出到日志a1.sinks.k1.channel=c1#sink与channel绑定(注意:channel)

#channels组件参数描述a1.channels.c1.type=memory#用内存来存储Eventa1.channels.c1.capacity=1000#内存容量a1.channels.c1.transactionCapacity=100#事务的容量3.2数据采集第三章大数据采集与预处理二、flume-conf配置文件内容解析例2:Sink数据到HDFS#定义agent和三个组件a1.sources=r1a1.sinks=k1a1.channels=c1

#Source组件参数描述a1.sources.r1.type=exec#采集命令的传输结果数据mand=/home/hadoop/log/test.loga1.sources.r1.channels=c1#source与channel绑定

#Sink组件参数描述a1.sinks.k1.type=hdfs#结果存入HDFSa1.sinks.k1.channel=c1#sink与channel绑定(注意:channel)3.2数据采集第三章大数据采集与预处理二、flume-conf配置文件内容解析#channels组件参数描述a1.channels.c1.type=memorya1.channels.c1.capacity=1000a1.channels.c1.transactionCapacity=100

#10分钟就改目录a1.sinks.k1.hdfs.round=truea1.sinks.k1.hdfs.roundValue=10a1.sinks.k1.hdfs.roundUnit=minute

#文件滚动之前的等待时间(秒)a1.sinks.k1.hdfs.rollInterval=3

#文件滚动的大小限制(bytes)a1.sinks.k1.hdfs.rollSize=5003.2数据采集第三章大数据采集与预处理二、flume-conf配置文件内容解析#写入多少个event数据后滚动文件(事件个数)a1.sinks.k1.hdfs.rollCount=20

#5批事件就往里面写入a1.sinks.k1.hdfs.batchSize=5

#指定目录,flume帮做目的替换a1.sinks.k1.hdfs.path=/flume/events/%y-%m-%d/%H%M/#文件的命名,前缀a1.sinks.k1.hdfs.filePrefix=events-#用本地时间格式化目录a1.sinks.k1.hdfs.useLocalTimeStamp=true#以时间戳为目录#生成的文件类型,默认是Sequencefile,可用DataStream,则为普通文本a1.sinks.k1.hdfs.fileType=DataStream3.2数据采集第三章大数据采集与预处理三、运行命令参数解析FLUME_HOME/bin/flume-ngagent-na1-c./conf-f./conf/perties-Dflume.root.logger=INFO,console

-n:agent的名字-c:配置文件路径-f:配置文件名-Dflume.root.logger:日志输出(可选)第三章大数据采集与预处理3.3

数据清洗3.1数据3.2数据采集3.4数据变换3.5网络爬虫大数据预处理

大数据正带来一场信息社会的变革。大量的结构化数据和非结构化数据的广泛应用,致使人们需要重新思考已有的IT模式;与此同时,大数据将推动进行又一次基于信息革命的业务转型,使社会能够借助大数据获取更多的社会效益和发展机会;庞大的数据需要我们进行剥离、整理、归类、建模、分析等操作,通过这些动作后,我们开始建立数据分析的维度,通过对不同的维度数据进行分析,最终才能得到想到的数据和信息。因此,如何进行大数据的采集、导入/预处理、统计/分析和大数据挖掘,是“做”好大数据的关键基础。典型的ETL工具1Informatica2Datastage3OWB4微软DTS5Beeload6Beeload3.3.1数据清洗任务3.3数据清洗第三章大数据采集与预处理

数据清洗时发现并纠正数据文件中可识别的错误的最后一道程序,包括对数据一致性的检查,无效值和缺失值得处理。数据清洗的原理是利用有关技术如数据挖掘或预定义的清理规则将脏数据转化为满足数据质量要求的数据。3.3数据清洗第三章大数据采集与预处理缺失数据错误数据这一类数据主要是因为部分信息缺失,如公司的名称、客户的区域信息、业务系统中主表与明细表不能匹配等数据。将这一类数据过滤出来,按照缺失的内容分别填入对应的文档信息,并提交给客户,在规定时间内补全,才可写入数据仓库。这一类错误产生的原因往往是业务系统不够健全,在接收输入信息后没有进行判断直接将数据写入后台数据库导致的,比如数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期格式不正确等。这类数据也需要分类,对于类似于全角字符、数据前后有不可见字符问题的只能写SQL语句查找出来,让客户在修正之后抽取。日期格式的错误会导致ETL运行失败,需要去业务系统数据库用SQL的方式挑出来,修正之后再抽取。这一类数据多出现在维护表中,是将重复数据记录的所有字段导出来,让客户确认并整理。数据清理的方法是通过填写无效和缺失的值、光滑噪声的数据、识别或删除离群点并解决不一致性来“清理”数据。主要是达到格式标准化、异常数据消除、错误纠正、重复数据的清除等目的。数据清理是将数据库中所存数据精细化,去除重复无用数据,并使剩余部分的数据转化成标准可接受格式的过程。重复数据3.3数据清洗第三章大数据采集与预处理数据清理的方法修改错误值用统计分析的方法识别错误值或异常值,如数据偏差、识别不遵守分布的值,也可以用简单规则库检查数据值,或使用不同属性间的约束来检测和清理数据。消除重复记录数据库中属性值相同的情况被认定为是重复记录。通过判断记录间的属性值是否相等来检测记录是否相等,相等的记录合并为一条记录。填充缺失值大部分情况下,缺失的值必须要用手工来进行清理。当然,某些缺失值可以从他本身数据源或其它数据源中推导出来,可以用平均值、最大值或更为复杂的概率估计代替缺失的值,从而达到清理的目的。数据的不一致性从多数据源集成的数据语义会不一样,可供定义完整性约束用于检查不一致性,也可通过对数据进行分析来发现他们之间的联系,从而保持数据的一致性。。3.3.2数据清洗过程3.3数据清洗第三章大数据采集与预处理3.3.2数据清洗过程3.3数据清洗第三章大数据采集与预处理3.3.2数据清洗过程3.3数据清洗第三章大数据采集与预处理第三章大数据采集与预处理3.4

数据变换3.1数据3.2数据采集3.3数据清洗3.5网络爬虫

数据集成是将不同应用系统、不同数据形式,在原应用系统不做任何改变的条件下,进行数据采集、转换好储存的数据整合过程。其主要目的是在解决多重数据储存或合并时所产生的数据不一致、数据重复或冗余的问题,以提高后续数据分析的精确度和速度。数据集成

3.4数据变换第三章大数据采集与预处理

数据转换(datatransfer)时采用线性或非线性的数学变换方法将多维数据压缩成较少维的数据,消除他们在时间、空间、属性及精度等特征表现方面的差异。实际上就是将数据从一种表示形式变为另一种表现形式的过程。数据转换

3.4数据变换第三章大数据采集与预处理数据转换方法中心化变换变换之后均值为0,协方差阵不变,可以用来方便地计算样本协方差阵。3.4数据变换第三章大数据采集与预处理数据转换方法标准化变换变换之后每个变量均值为0,标准差为1,变换后的数据与变量的量纲无关。。极差标准化变换变换后每个变量样本均值为0,极差为1,变换后数据绝对值数据在(-1,1)中,能减少分析计算中的误差,无量纲。3.4数据变换第三章大数据采集与预处理数据转换方法极差正规化变换变换后数据在[0,1]之间;极差为1,无量纲。对数变换将具有指数特征的数据结构变换为现行数据结构3.4数据变换第三章大数据采集与预处理

数据归约技术可以用来得到数据集的归约表示,它很小,但并不影响原数据的完整性,结果与归约前结果相同或几乎相同。所以,我们可以说数据归约是指在尽可能保持数据原貌的前提下,最大限度地精简数据量保持数据的原始状态。数据规约 3.4数据变换第三章大数据采集与预处理两个途径数据采样属性选择针对原始数据集中的记录针对原始数据集中的属性数据规约 3.4数据变换第三章大数据采集与预处理数据归约可以分为三类,分别是特征归约、样本归约、特征值归约。特征归约是将不重要的或不相关的特征从原有特征中删除,或者通过对特征进行重组和比较来减少个数。其原则是在保留、甚至提高原有判断能力的同时减少特征向量的维度。特征归约算法的输入是一组特征,输出是它的一个子集。样本归约就是从数据集中选出一个有代表性的子集作为样本。子集大小的确定要考虑计算成本、存储要求、估计量的精度以及其它一些与算法和数据特性有关的因素。12特征值归约分为有参和无参两种。有参方法是使用一个模型来评估数据,只需存放参数,而不需要存放实际数据,包含回归和对数线性模型两种。无参方法的特征值归约有3种包括直方图、聚类和选样。33.4数据变换第三章大数据采集与预处理特征值规约算法三步骤评估过程输入一个状态,通过评估函数或预先设定的阈值输出一个评估值搜索算法的目的是使评估值达到最优。搜索过程在特征空间中搜索特征子集,每个子集称为一个状态由选中的特征构成。分类过程使用最后的特征集完成最后的算法。3.4数据变换第三章大数据采集与预处理第三章大数据采集与预处理3.5网络爬虫3.1数据3.2数据采集3.3数据清洗3.4数据变换

3.5.1爬虫简介2.4zookeeper第二章大数据生态系统3.5网络爬虫第三章大数据采集与预处理(1)搜索引擎存在的问题①不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。

②通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。

③万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。

④通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。网络爬虫为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论