【大数据实战项目一】数据下载以及工具软件的使用
数据下载以及工具软件的使用1 数据从哪里来?数据怎么用?1.1 本项目中使用的数据——飞机航班数据1.2 结构化数据与非结构化数据1.3 结构表的特征提取和呈现1.4 数据分析金字塔1.5 数据下载2 大数据实战项目中工具软件的选择2.1 原始数据收集器使用的技术——Kafka2.2 原始数据存储使用到的技术——HadoopHDFS2.3 原始数据批处理使用到的技术——Spark、PySpark、
数据下载以及工具软件的使用
手动反爬虫,禁止转载: 原博地址 https://blog.csdn.net/lys_828/article/details/121184995(CSDN博主:Be_melting)
知识梳理不易,请尊重劳动成果,文章仅发布在CSDN网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息
1 数据从哪里来?数据怎么用?
1.1 本项目中使用的数据——飞机航班数据
- 飞机出行是现代生活中不可缺少的一部分
- 许多航班数据可以免费获取
- 航班准点数据集是有点“大”的数据集,每年的数据约有1-10个GB,虽然和真正的大数据相比还有点小,但是在单台个人电脑上处理这些数据已经可以被称为“大”数据了
95%的出发地在美国的航班记录数据都可以在公开航班数据网站和美国交通统计局的官方网站进行免费下载。
利用工具进行下载的数据样式,如下:(数据是以单行进行放置,且每个元素之间是以逗号进行分隔)
1.2 结构化数据与非结构化数据
- 结构化数据:上世纪70年代开始,关系型结构化数据大量开始采用,使用严格的外部表进行数据的约束,将数据拆分成多个表,然后相互链接,为后面进行高效的查询做准备,这个过程被称为OLTP,简化了很多实际业务 规则对于数据的定义。
- 非结构化数据:在2010年前关系型数据依旧是存储和数据处理的首选, SQL也成为大众操作这类数据的首选工具,但是随着数据量的增加,以关系型数据库为代表的数据处理发展逐步遇到了技术瓶颈,大量IT系统在处理数 据时完全被关系型数据系统限死,导致非结构化数据处理的兴起。从而出现了一个新词汇 NoSQL。
为什么要使用NoSQL:
- SQL带来的问题不是SQL语言本身的问题,而是采用这类单一的数据处理方式,让我们必须把 所有的数据处理方法都交给SQL,当数据量大增时SQL带来了性能瓶颈,就演变成了全行业问 题,NoSQL中的No并不是指No 不使用的意思,而是扩展思路的Not Only,不仅仅是SQL的含义。
- 现代应用的崛起,尤其是以图片,视频,嵌套信息流等数据越来越多,传统结构化模式的存储已经难以处理。出于这样的考虑,我们开始在分布式系统上采用类似Spark这样的工具进行操作,并且由于分布式系统可以结合多个系统硬件资源,使得使用时候无需太多考虑数据量和存储等问题带来的限制,利用多核处理器来简单暴力的读取数据以加快数据处理能力。
1.3 结构表的特征提取和呈现
- 现代商业数据分析中,大部分获得到的数据都是比较粗糙和非结构化的,将这些信息进行清洗和正则化以后,才能称的上是数据,使用这些提炼过的信息来作为一些行为提供新的决策思路。
- 非结构化数据只有在“强光曝晒”下才会变得更好,如果使用了这些特征,提取后需要通过可视化工具进行对外展示,不然仍然处于自由状态。
- 构建数据产品最难的部分就是把提取出实物和特征限定到比想象小的多的产品中,这就是为什么一开始可以使用非结构化文本数据,经过提取特征后才会演变成结构化数据。
- 特征必须在产生时就具备某种形式呈现,否则将无法用于实际的决策支持状态。
- 利用特征创建出实体页面,让数据能被“客户”消化。不断改进这些数据,逐步将他们组合起来,而不是试图用海量数据进行直接展示,那样只会出现展示数不清的无用的中间数据。
- 将数据进行编排成良好信息的同时,利用这些信息揭示新的结论并基于它们做出可以影响决策的预测,数据是残酷无情的,如果不能挖掘出数据的信息,那再多的数据也是无用的数字垃圾。
- 在本轮实战项目中,我们将看到表结构的不断演变和优化,进而发掘出表结构的特征,带你习数据挖掘的过程
1.4 数据分析金字塔
数据分析的步骤可以分为五个部分,具体划分及内容可见下图
1.5 数据下载
(1)公开的航班网站数据
项目中使用到的数据在https://openflights.org/data.html 网址上可下载的有五份,分别是机场、航空公司、飞机、航线和国家数据,下载示意如下。
机场数据下载地址:
航空公司数据下载地址:
航线数据下载地址:
飞机数据下载地址:
国家数据下载地址:
(2)美国交通部网站数据
打开链接网址:历史准点航班数据查询
比如筛选2015年的航班数据信息,下方可以勾选对应输出的字段,全部勾选完毕后,可以点击Download按钮进行下载,示例操作如下。
将下载的文件另存为本地后打开结果如下。(只选择了部分字段作为下载的演示,后续的项目中使用的字段高达100+,数据内存占用2.6G左右,这里只多勾选了时间字段,数据内存仅占用29M)
2 大数据实战项目中工具软件的选择
此章节中会介绍项目中要使用到的技术栈的使用(一堆软件的组合使用)。整个项目的分析流程如下,第一步,航班数据信息的原始数据在第一部分已经进行了介绍。
2.1 原始数据收集器使用的技术——Kafka
第二部的收集,除了使用Download方式外(静态单次下载),正式的开发环境部署中,采用Kafka作为数据采集的接入方式(动态实时刷新数据),示例操作如下。
2.2 原始数据存储使用到的技术——HadoopHDFS
2.3 原始数据批处理使用到的技术——Spark、PySpark、SparkSQL
为什么不使用python进行批处理,就是因为python处理时候不跨机器,即便是当前运行程序的电脑有8个cpu,程序运行的时候也只会使用其中的1个cpu。而Spark是属于分布式处理,不仅可以用当前的多个cpu,甚至可以跨机器使用
2.4 结果数据存储使用到的技术——Mongodb ES
原始数据(脏数据、待处理的数据)都会放在HadoopHDFS上,经过批处理过后的数据都是存放在Mongodb ES中。
2.5 结果数据展示用到的技术——Flask D3.js
2.6 每天新数据的回填使用到的技术——Airflow
最初介绍的数据下载就是直接从网站上Download,下载完毕后数据就不会更新了,而真实业务中航班数据每一天都是在增加的,所以对于新数据的回填就可以使用Airflow技术进行解决。
更多推荐
所有评论(0)