前言

同学(研究生)打电话跟我说,需要大数据的一些资料,了解同学想干嘛后,知道他要给学弟学妹们(本科/专科)上课,上的关于大数据的课程。个人感到很惊奇,毕业一年,学校居然有大数据课程了。虽然是导论课程但总要有点内容的。
正好我本人目前所在的行业也是大数据的一个行业。但是比较坑的是,手头的资料也只是一些我们日常开发的过程中会用到的一些开发的资料,涉及到的导论类的资料还真是没有。想想虽然入坑有一年了,大数据是什么,其实我本人也是有点
不知所谓的。

那这里正好结合到本人目前的学习内容,认识一下我所在的行业。仅限个人观点。

百度百科

是什么

大数据是什么?首先来看百度百科(百度百科应该是目前国内比较认可的知识来源之一,也是大众最容易接触到来源之一):大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,
是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》 中大数据指不用随机分析法(抽样调查)这样捷径,而采
用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。

这个是一个概括性说明,在百度百科上,对 大数据 的说明也是很 到位的。之前都没有具体的看过,还是我学的太肤浅了。

特征

一般来说,大数据会具备几大特征:

  • 容量(Volume):数据的大小决定所考虑的数据的价值和潜在的信息;
  • 种类(Variety): 数据类型的多样性;
  • 速度(Velocity): 指获得数据的速度;
  • 可变性(Variability): 妨碍了处理和有效地管理数据的过程。
  • 真实性(Veracity): 数据的质量。
  • 复杂性(Complexity): 数据量巨大,来源多渠道。
  • 价值(value): 合理运用大数据,以低成本创造高价值。

我感觉我可以把 百度百科 的内容拉过来了 ……

意义

  • 对大量消费者提供产品或服务的企业可以利用大数据进行精准营销
  • 做小而美模式的中小微企业可以利用大数据做服务转型
  • 面临互联网压力之下必须转型的传统企业需要与时俱进充分利用大数据的价值
  • ……

趋势

  • 数据资源化
  • 与云计算的深度结合
  • 科学理论的突破
  • 数据科学和数据联盟的成立
  • 数据泄露泛滥
  • 数据管理成为核心竞争力
  • 数据质量是BI(商业智能)成功的关键
  • 数据生态系统复合化程度加强

从我的角度

大数据的首要是数据,其次才是大。这里的数据包括哪些?目前它囊括的是 结构化数据,半结构化数据和非结构化数据。换而言之,就是所有的数据。

结构化数据

这类数据,大家最容易理解,就是 关系型数据库中的数据,就是一种结构化数据。结构化数据是具有一定的关联关系的。指的是数据在一个记录的文件中会按照固定的格式存储数据,。然后结构化数据会有一个数据模型。
别问我啥是数据模型,问就是不知道(哈哈)。简单的理解就是,数据模型是记录数据怎么存储,怎么处理,怎么登录,数据格式,数据限制等等信息。结构化数据的最明显的表现就是二维表的形式。比如说MySQL里面的
数据。

半结构化数据

半结构化数据就比较有意思了,你说他是结构化数据吧,但是他又不能按照二维的形式展示。半结构化数据介于结构化数据和非结构化数据之间,他也有自己的数据模型,可以理解成一种文本的数据。比如说 JSON,XML,CSV
的数据。半结构化数据是结构化数据的一种形式,它并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,它也被称为自描述的结构。半
结构化数据,属于同一类实体可以有不同的属性,即使他们被组合在一起,这些属性的顺序并不重要。也就是它一般数据的结构和内容混在一起,没有明显的区分。举个例子:

1
2
3
4
5
6
7
8
{
"name": "sunyang",
"basic_information": {
"sex": "male",
"height": "",
"body_weight": ""
}
}

这是一个 json 的数据。

非结构化数据

非结构化数据是指信息没有一个预先定义好的数据模型或者没有以一个预先定义的方式来组织。非结构化数据一般指大家文字型数据,但是数据中有很多诸如时间,数字等的信息。相对于传统的在数据库中或者标记好的文件,
由于他们的非特征性和歧义性,会更难理解。包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。

企业中的大数据

概括的来说,公司的大数据一般会分为几部分:

  • 数据来源
  • 数据处理
  • 数据存储

数据来源

数据来源包括一套数据的采集中心(上报中心)。这里,会明确你的数据源是什么,比如说,你的数据是日志数据,是在文件系统中的,也可能是业务型数据,在 MySQL 中的,那你的数据怎么到 后面的数据处理?
这时候,就会有一套数据的采集中心,有的公司焦作数据上报中心,或者是数据集成(阿里的 DataWorks 里面称为数据集成)。

那现在问题来了,文件系统中的数据,怎么被采集到?比如说,我们使用 Flume 去采集本地文件数据,也可以使用 Filebeat 去采集文件数据(Filebeat 是一种轻量的日志分析工具)。采集到的数据怎么到后面
的处理?这就是数据采集这边要做的是。采集嘛,就是要保证数据的可以有效的,安全的到后面。一般的,公司会在这后面加一个 Kafka 做 MQ . 至于为什么加 这个,这里不讨论。那现在呢? 现在的数据到了后面,
怎么做?现在基本上就是要做一个决定了,是采集 over ,直接去处理,还是 落盘? 这里面的设计方案就比较多了,就不做讨论。后面再去讨论这个。到此,数据采集就算结束了。也就是数据来源解决了。

数据处理

数据处理里面的范围很广,比如说,离线计算,实时计算。简单的理解,离线计算,计算某个时间段内的数据信息,实时计算,从有数据的那一刻开始,每时每刻都在做数据计算。嗯,大致就这么理解吧。当然,这个
只是大众化的处理。数据处理里面还包括 ELK , 也就是数据的清洗。其实这个 ELK 在数据采集的时候就应该做一个简单的数据清洗过程。数据清洗内容主要包括:

  • 空值去除
  • 过滤核心字段无意义数据
  • 无效数据(比如说数据不合规范的)

数据清洗够后才开始做其他的处理。清洗后的数据一般是可以满足后面的处理计算的。那后面的数据处理包括哪些?离线计算中,最常见的就是数据仓库了,当然也可能是实时数仓。不管是啥,就是数据仓库。在数据
仓库里面,我们需要对数据做分析梳理,在数据仓库中,我们常听到的几个名词就是: ODS , DWD , DWS , AWS 层。这个具体啥意思,以后再说。在数据仓库里面,还会涉及到 比如数据质量的管理监控与治理,元
数据的管理等。

数据仓库一般是公司做大数据的起步的项目,比如我们公司,至于怎么去做这个数据仓库,用什么工具,就看 Leader 怎么去选了。在实时计算里面,比如说 Spark / Storm / Flink 啥的。不过现在一般在转
Flink , 这块的处理主要就是 Flink 的处理了。比如说 Flink 的直接从 Source 到 Sink 的实现,方便快捷。

数据存储

数据存储的范围也比较多。比如说,数据采集后,数据的落盘问题,怎么落盘?有的公司会使用 Kafka 的数据落盘到 HDFS 上,再从 HDFS 到 Hive 去做 数据仓库。那现在这个 ODS 层,就是这个 HDFS 了。
那么现在就可以看到,现在有多了一个 Hive 的数据存储。数据仓库的数据分析处理后,数据到哪?是 ES 还是 MySQL , 当然还可能有其他的数据存储,这里就不一一赘述。

在实时计算中,比如说 Flink , 我们知道Flink Table 在运行的过程中会有中间表。维表,流表之类的概念,怎么去存储这些中间表?内存还是落盘(这里可能说的有问题)等等都是要考虑的问题。所以数据的
存储也是一个比较重要的,或者说是非常重要的问题。

总结

这里相当于是 对 大数据 这一块的 内容中做了一个大体上的描述,在描述的过程中