【大数据实战项目一】数据下载以及工具软件的使用

数据下载以及工具软件的使用

作者:Be_melting

1 数据从哪里来?数据怎么用?

1.1 本项目中使用的数据——飞机航班数据

  • 航空旅行是现代生活中不可或缺的一部分
    [En]

    Air travel is an indispensable part of modern life*

  • 许多航班数据是免费提供的
    [En]

    many flight data are available free of charge*

  • 航班准点数据集是有点”大”的数据集,每年的数据约有1-10个GB,虽然和真正的大数据相比还有点小,但是在单台个人电脑上处理这些数据已经可以被称为”大”数据了

95%的出发地在美国的航班记录数据都可以在​​公开航班数据网站​​​和​​美国交通统计局的官方网站​​进行免费下载。

【大数据实战项目一】数据下载以及工具软件的使用

使用该工具下载的数据样式如下:(数据放在一行中,每个元素用逗号分隔)

[En]

The data style for downloading using the tool is as follows: (the data is placed in a single line, and each element is separated by a comma)

【大数据实战项目一】数据下载以及工具软件的使用

1.2 结构化数据与非结构化数据

  • 结构化数据:上世纪70年代开始,关系型结构化数据大量开始采用,使用严格的外部表进行数据的约束,将数据拆分成多个表,然后相互链接,为后面进行高效的查询做准备,这个过程被称为OLTP,简化了很多实际业务 规则对于数据的定义。
  • 非结构化数据:在2010年前关系型数据依旧是存储和数据处理的首选, SQL也成为大众操作这类数据的首选工具,但是随着数据量的增加,以关系型数据库为代表的数据处理发展逐步遇到了技术瓶颈,大量IT系统在处理数 据时完全被关系型数据系统限死,导致非结构化数据处理的兴起。从而出现了一个新词汇 NoSQL。

为什么要使用NoSQL:

  • SQL带来的问题不是SQL语言本身的问题,而是采用这类单一的数据处理方式,让我们必须把 所有的数据处理方法都交给SQL,当数据量大增时SQL带来了性能瓶颈,就演变成了全行业问 题, NoSQL中的No并不是指No 不使用的意思,而是扩展思路的Not Only,不仅仅是SQL的含义
  • 现代应用的崛起,尤其是以图片,视频,嵌套信息流等数据越来越多,传统结构化模式的存储已经难以处理。出于这样的考虑,我们开始在分布式系统上采用类似Spark这样的工具进行操作,并且由于分布式系统可以结合多个系统硬件资源,使得使用时候无需太多考虑数据量和存储等问题带来的限制,利用多核处理器来简单暴力的读取数据以加快数据处理能力。

1.3 结构表的特征提取和呈现

  • 在现代商业数据分析中,获得的数据大多相对粗糙和无结构。信息经过清理和规范后,就可以称为数据。利用这些精炼的信息为一些行为提供新的决策思路。
    [En]

    in modern business data analysis, most of the data obtained are relatively rough and unstructured. After the information is cleaned and regularized, it can be called data. Use these refined information to provide new decision-making ideas as some behaviors.*

  • 非结构化数据只有在”强光曝晒”下才会变得更好,如果使用了这些特征,提取后需要通过可视化工具进行对外展示,不然仍然处于自由状态。
  • 构建数据产品最困难的部分是将提取的对象和特征限制在比预期小得多的产品上,这就是为什么一开始可以使用非结构化文本数据,然后在特征提取后将其演变为结构化数据。
    [En]

    the most difficult part of building a data product is to limit the extracted objects and features to products that are much smaller than expected, which is why unstructured text data can be used at the beginning, and then it will evolve into structured data after feature extraction.*

  • 功能在生成时必须以某种形式呈现,否则将不会在实际的决策支持状态中使用。
    [En]

    Features must be presented in some form when they are generated, otherwise they will not be used in the actual decision support state.*

  • 使用功能创建物理页面,使数据能够被“客户”消化。不断改进这些数据,并逐步组合起来,而不是试图用海量数据直接显示出来,这只会显示无数无用的中间数据。
    [En]

    use features to create physical pages so that the data can be digested by “customers”. Constantly improve these data and gradually combine them, instead of trying to display them directly with huge amounts of data, which will only show countless useless intermediate data.*

  • 在将数据整理成好信息的同时,利用这些信息揭示新的结论,并根据这些结论做出能够影响决策的预测,数据是无情的,如果数据的信息不能被挖掘,那么再多的数据也是无用的数字垃圾。
    [En]

    while arranging the data into good information, using this information to reveal new conclusions and make predictions based on them that can affect decisions, the data is ruthless, if the information of the data cannot be mined, then no matter how much data is useless digital garbage.*

  • 在本轮实战项目中,我们将看到表结构的不断演进和优化,进而发现表结构的特点,带你学习数据挖掘的过程。
    [En]

    in this round of actual combat projects, we will see the continuous evolution and optimization of the table structure, and then discover the characteristics of the table structure, and take you to learn the process of data mining.*

1.4 数据分析金字塔

数据分析的步骤可以分为五个部分。具体分工和内容见下图。

[En]

The steps of data analysis can be divided into five parts. The specific division and content can be seen in the following figure.

【大数据实战项目一】数据下载以及工具软件的使用

1.5 数据下载

(1)公开的航班网站数据

项目中使用到的数据在https://openflights.org/data.html 网址上可下载的有五份,分别是机场、航空公司、飞机、航线和国家数据,下载示意如下。

机场数据下载地址:

【大数据实战项目一】数据下载以及工具软件的使用

航空公司数据下载地址:

【大数据实战项目一】数据下载以及工具软件的使用

航线数据下载地址:

【大数据实战项目一】数据下载以及工具软件的使用

飞机数据下载地址:

【大数据实战项目一】数据下载以及工具软件的使用

国家数据下载地址:

【大数据实战项目一】数据下载以及工具软件的使用

(2)美国交通部网站数据

打开链接网址:​​历史准点航班数据查询​

【大数据实战项目一】数据下载以及工具软件的使用

比如筛选2015年的航班数据信息,下方可以勾选对应输出的字段,全部勾选完毕后,可以点击Download按钮进行下载,示例操作如下。

【大数据实战项目一】数据下载以及工具软件的使用

将下载的文件另存为本地后打开结果如下。(只选择了部分字段作为下载的演示,后续的项目中使用的字段高达100+,数据内存占用2.6G左右,这里只多勾选了时间字段,数据内存仅占用29M)

【大数据实战项目一】数据下载以及工具软件的使用

2 大数据实战项目中工具软件的选择

本节介绍了项目中使用的技术堆栈(软件组合)的使用。整个项目的分析过程如下。第一步,首先介绍了飞行数据的原始数据。

[En]

This section describes the use of the technology stack to be used in the project (a combination of software). The analysis process of the whole project is as follows. In the first step, the original data of flight data has been introduced in the first part.

【大数据实战项目一】数据下载以及工具软件的使用

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技术进行解决。

【大数据实战项目一】数据下载以及工具软件的使用

Original: https://blog.51cto.com/u_15713987/5462708
Author: 百木从森
Title: 【大数据实战项目一】数据下载以及工具软件的使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/508309/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球