什么是大数据:大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
大数据的5V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性),百度随便找找都有。
?大数据处理流程:?1.是数据采集,搭建数据仓库,数据采集就是把数据通过前端埋点,接口日志调用流数据,数据库抓取,客户自己上传数据,把这些信息基础数据把各种维度保存起来,感觉有些数据没用(刚开始做只想着功能,有些数据没采集,? 后来被老大训了一顿)。
? ? 2.数据清洗/预处理:就是把收到数据简单处理,比如把ip转换成地址,过滤掉脏数据等。
? ? 3.有了数据之后就可以对数据进行加工处理,数据处理的方式很多,总体分为离线处理,实时处理,离线处理就是每天定时处理,常用的有阿里的maxComputer,hive,MapReduce,离线处理主要用storm,spark,hadoop,通过一些数据处理框架,可以吧数据计算成各种KPI,在这里需要注意一下,不要只想着功能,主要是把各种数据维度建起来,基本数据做全,还要可复用,后期就可以把各种kpi随意组合展示出来。
????4.数据展现,数据做出来没用,要可视化,做到MVP,就是快速做出来一个效果,不合适及时调整,这点有点类似于Scrum敏捷开发,数据展示的可以用datav,神策等,前端好的可以忽略,自己来画页面。
数据采集:????1.批数据采集,就是每天定时去数据库抓取数据快照,我们用的maxComputer,可以根据需求,设置每天去数据库备份一次快照,如何备份,如何设置数据源,如何设置出错,在maxComputer都有文档介绍,使用maxComputer需要注册阿里云服务????2.实时接口调用数据采集,可以用logHub,dataHub,流数据处理技术,DataHub具有高可用,低延迟,高可扩展,高吞吐的特点。
高吞吐:最高支持单主题(Topic)每日T级别的数据量写入,每个分片(Shard)支持最高每日8000万Record级别的写入量。
实时性:通过DataHub ,您可以实时的收集各种方式生成的数据并进行实时的处理,设计思路:首先写一个sdk把公司所有后台服务调用接口调用情况记录下来,开辟线程池,把记录下来的数据不停的往dataHub,logHub存储,前提是设置好接收数据的dataHub表结构3.前台数据埋点,这些就要根据业务需求来设置了,也是通过流数据传输到数据仓库,如上述第二步。
数据处理:数据采集完成就可以对数据进行加工处理,可分为离线批处理,实时处理。
????1.离线批处理maxComputer,这是阿里提供的一项大数据处理服务,是一种快速,完全托管的TB/PB级数据仓库解决方案,编写数据处理脚本,设置任务执行时间,任务执行条件,就可以按照你的要求,每天产生你需要数据????2.实时处理:采用storm/spark,目前接触的只有storm,strom基本概念网上一大把,在这里讲一下大概处理过程,首先设置要读取得数据源,只要启动storm就会不停息的读取数据源。
Spout,用来读取数据。
Tuple:一次消息传递的基本单元,理解为一组消息就是一个Tuple。
stream,用来传输流,Tuple的集合。
Bolt:接受数据然后执行处理的组件,用户可以在其中执行自己想要的操作。
可以在里边写业务逻辑,storm不会保存结果,需要自己写代码保存,把这些合并起来就是一个拓扑,总体来说就是把拓扑提交到服务器启动后,他会不停读取数据源,然后通过stream把数据流动,通过自己写的Bolt代码进行数据处理,然后保存到任意地方,关于如何安装部署storm,如何设置数据源,网上都有教程,这里不多说。
数据展现:做了上述那么多,终于可以直观的展示了,由于前端技术不行,借用了第三方展示平台datav,datav支持两种数据读取模式,第一种,直接读取数据库,把你计算好的数据,通过sql查出,需要配置数据源,读取数据之后按照给定的格式,进行格式化就可以展现出来@jiaoready @jiaoready 第二种采用接口的形式,可以直接采用api,在数据区域配置为api,填写接口地址,需要的参数即可,这里就不多说了。
这次先记录这么多,以后再补充,内容为原创,若是有不对的地方还请评论纠正。
参考:
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
一、数据收集在数据收集过程中,数据源会影响大数据质量的真实性、完整性数据收集、一致性、准确性和安全性。
对于Web数据,多采用网络爬虫方式进行收集,这需要对爬虫软件进行时间设置以保障收集到的数据时效性质量。
比如可以利用八爪鱼爬虫软件的增值API设置,灵活控制采集任务的启动和停止。
二、数据预处理大数据采集过程中通常有一个或多个数据源,这些数据源包括同构或异构的数据库、文件系统、服务接口等,易受到噪声数据、数据值缺失、数据冲突等影响,因此需首先对收集到的大数据集合进行预处理,以保证大数据分析与预测结果的准确性与价值性。
大数据的预处理环节主要包括数据清理、数据集成、数据归约与数据转换等内容,可以大大提高大数据的总体质量,是大数据过程质量的体现。
数据清理技术包括对数据的不一致检测、噪声数据的识别、数据过滤与修正等方面,有利于提高大数据的一致性、准确性、真实性和可用性等方面的质量; 数据集成则是将多个数据源的数据进行集成,从而形成集中、统一的数据库、数据立方体等,这一过程有利于提高大数据的完整性、一致性、安全性和可用性等方面质量;。
数据归约是在不损害分析结果准确性的前提下降低数据集规模,使之简化,包括维归约、数据归约、数据抽样等技术,这一过程有利于提高大数据的价值密度,即提高大数据存储的价值性。
数据转换处理包括基于规则或元数据的转换、基于模型与学习的转换等技术,可通过转换实现数据统一,这一过程有利于提高大数据的一致性和可用性。
总之,数据预处理环节有利于提高大数据的一致性、准确性、真实性、可用性、完整性、安全性和价值性等方面质量,而大数据预处理中的相关技术是影响大数据过程质量的关键因素三、数据处理与分析1、数据处理大数据的分布式处理技术与存储形式、业务数据类型等相关,针对大数据处理的主要计算模型有MapReduce分布式计算框架、分布式内存计算系统、分布式流计算系统等。
MapReduce是一个批处理的分布式计算框架,可对海量数据进行并行分析与处理,它适合对各种结构化、非结构化数据的处理。
分布式内存计算系统可有效减少数据读写和移动的开销,提高大数据处理性能。
分布式流计算系统则是对数据流进行实时处理,以保障大数据的时效性和价值性。
总之,无论哪种大数据分布式处理与计算系统,都有利于提高大数据的价值性、可用性、时效性和准确性。
大数据的类型和存储形式决定了其所采用的数据处理系统,而数据处理系统的性能与优劣直接影响大数据质量的价值性、可用性、时效性和准确性。
因此在进行大数据处理时,要根据大数据类型选择合适的存储形式和数据处理系统,以实现大数据质量的最优化。
2、数据分析 大数据分析技术主要包括已有数据的分布式统计分析技术和未知数据的分布式挖掘、深度学习技术。
分布式统计分析可由数据处理技术完成,分布式挖掘和深度学习技术则在大数据分析阶段完成,包括聚类与分类、关联分析、深度学习等,可挖掘大数据集合中的数据关联性,形成对事物的描述模式或属性规则,可通过构建机器学习模型和海量训练数据提升数据分析与预测的准确性。
数据分析是大数据处理与应用的关键环节,它决定了大数据集合的价值性和可用性,以及分析预测结果的准确性。
在数据分析环节,应根据大数据应用情境与决策需求,选择合适的数据分析技术,提高大数据分析结果的可用性、价值性和准确性质量。
四、数据可视化与应用环节数据可视化是指将大数据分析与预测结果以计算机图形或图像的直观方式显示给用户的过程,并可与用户进行交互式处理。
数据可视化技术有利于发现大量业务数据中隐含的规律性信息,以支持管理决策。
数据可视化环节可大大提高大数据分析结果的直观性, 便于用户理解与使用,故数据可视化是影响大数据可用性和易于理解性质量的关键因素。
大数据应用是指将经过分析处理后挖掘得到的大数据结果应用于管理决策、战略规划等的过程,它是对大数据分析结果的检验与验证,大数据应用过程直接体现了大数据分析处理结果的价值性和可用性。
大数据应用对大数据的分析处理具有引导作用。
在大数据收集、处理等一系列操作之前,通过对应用情境的充分调研、对管理决策需求信息的深入分析,可明确大数据处理与分析的目标,从而为大数据收集、存储、处理、分析等过程提供明确的方向,并保障大数据分析结果的可用性、价值性和用户需求的满足。