大数据学习—初步了解大数据 | 青训营笔记
这是这是我参与「第四届青训营 」笔记创作活动的的第1天
一、大数据的定义
-
大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法透过主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。
-
大数据”(Big data)研究机构Gartner给出了这样的定义。“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。
-
麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。
根据我本人的理解,大数据就是海量的,以人力来说可以近似于无限的数据,光靠人的计算是无法处理的数据量,这时候我们就需要大数据开发的相关体系、软件来进行开发,大数据开发工程师这个职业也就因此诞生。
二、 大数据体系
大数据在工程应用开发中可以分为业务应用、数据开发、权限管控、分析引擎、资源调度、存储系统、基础设施等
| 开发分布 | 具体应用 | 范围 | |
|---|---|---|---|
| 业务应用 | BI报表、数据挖掘、营销分析、精准推荐 | 管控运维 | |
| 数据开发 | Airflow、DAG等 | 集群创建 | |
| 权限管控 | Apache Ranger、GDPR等 | 集群创建 | |
| 分析引擎 | |||
| 批式分析 Spark Hive MR | |||
| 实时分析Flink | |||
| 交互分析Presto ClickHouse Doris | |||
| 资源调度 | YARN、K8S | Kafka | 用户管理 |
| 存储系统 | HDFS、HBase、NAS、Object Store、数据湖 | Pulsar | 监控报警 |
| 基础设施 | ECS、存储、VPC | NSQ | 日志查询 |
由于我对部分内容的不熟悉,这里借用一下上课时老师使用的表格。
三、什么是SQL
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言用于存取数据以及查询、更新和管理关系数据库系统
- SQL具有数据定义、数据操纵、和数据控制的功能。
- 1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式(Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。
- 2、SQL数据操纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
- 3、SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。
四、大数据中的SQL
结构化查询语言(SQL)是一种广泛采用的声明性语言,自关系数据库系统开始以来就已经存在。
由于具有声明性,因此易于学习和理解,并且符合美国国家标准协会(ANSI)的标准。这意味着,除每个数据库提供的附录功能外,SQL语句的基本结构也可以使用ANSI的数据库进行维护,同时有助于使用其他数据库。
由于SQL使用率很高,因此诸如Hadoop之类的大数据范例技术使SQL-on-Hadoop引擎运行在分析引擎之上。其中包括蜂巢、黑斑羚和其他处理引擎。
- Spark SQL:Spark SQL是Spark上运行的SQL引擎,支持类SQL语句,可以做到更加快捷方便地管理数据,提高运行效率
- HIve SQL: 其实应该叫HQL,是Hive(Hadoop文件系统上的查询引擎),用户可以使用HQL来进行类SQL查询
- Presto、Impala等
部分内容引用自百度百科