🌈个人主页: 十二月的猫-CSDN博客
🔥 系列专栏: 🏀数据处理与分析_十二月的猫的博客-CSDN博客
💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光
目录
[1. 前言](#1. 前言)
[2. 大数据](#2. 大数据)
[2.1 大数据入门](#2.1 大数据入门)
[2.1.1 定义](#2.1.1 定义)
[2.1.2 大数据的界限](#2.1.2 大数据的界限)
[2.1.3 大数据特点(4V)](#2.1.3 大数据特点(4V))
[2.2 数据科学](#2.2 数据科学)
[2.2.1 大数据与数据科学](#2.2.1 大数据与数据科学)
[2.2.2 定义](#2.2.2 定义)
[2.2.3 数据处理过程](#2.2.3 数据处理过程)
[3. 数据的表示与存储](#3. 数据的表示与存储)
[3.1 数据分类与表示](#3.1 数据分类与表示)
[3.1.1 结构化数据](#3.1.1 结构化数据)
[3.1.2 半结构化数据](#3.1.2 半结构化数据)
[3.1.3 非结构化数据](#3.1.3 非结构化数据)
[3.2 数据存储](#3.2 数据存储)
[3.2.1 结构化数据的存储](#3.2.1 结构化数据的存储)
[3.2.1.1 结构化数据存储在哪里](#3.2.1.1 结构化数据存储在哪里)
[3.2.1.2 结构化数据存储的手段](#3.2.1.2 结构化数据存储的手段)
[使用 DISTINCT 去重查询结果中的单个列,返回唯一的值](#使用 DISTINCT 去重查询结果中的单个列,返回唯一的值)
[使用 DISTINCT 去重查询结果中的多个列,返回满足多列组合唯一的结果。](#使用 DISTINCT 去重查询结果中的多个列,返回满足多列组合唯一的结果。)
[3.2.1.3 结构化数据存储的优化](#3.2.1.3 结构化数据存储的优化)
[3.2.2 非结构化数据存储](#3.2.2 非结构化数据存储)
[3.2.2.1 MongoDb](#3.2.2.1 MongoDb)
[3.2.2.2 Neo4j](#3.2.2.2 Neo4j)
[3.2.2.3 Redits](#3.2.2.3 Redits)
[3.2.2.4 HBase](#3.2.2.4 HBase)
[3.2.2.5 NoSQL总结(必背)](#3.2.2.5 NoSQL总结(必背))
[4. 总结](#4. 总结)
1. 前言
【数据处理与分析】专栏主要专注于数据处理和数据分析。
专栏中的**【数据科学导论】部分是对整个大数据科学所有技术(包括数据处理、数据分析)的一个概论**,适用于想要快速入门大数据的友友们🥰🥰~~~
【数据科学导论】整体学习脉络:
- 数据科学导论------研究数据科学
- 数据科学------研究大数据处理
- 大数据处理过程------采集、表示与存储、预处理、建模分析、可视化、决策
- 大数据处理过程指导数据科学导论内容
【数据科学导论】持续更新中🎢🎢🎢
2. 大数据
2.1 大数据入门
2.1.1 定义
**定义1:**大数据是一种数据规模大到在数据的获取管理,存储处理,分析计算都远远超过传统数据库软件工 具处理范围的数据集合
**定义2:**大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合(维基百科)
2.1.2 大数据的界限
- 简单查询。数据量为TB至PB级称为大数据
- 复杂查询。数据量为GB至TB级称为大数据
PB是大数据层次的临界点
大数据的定义需要考虑数据查询与分析的复杂程序
2.1.3 大数据特点(4V)
**高时效性:**1秒定律
**高价值:**价值巨大但价值密度低
**高数据量:**PB称为大数据层次的临界点
**高类型数量:**关系数据库数据、音频视频数据、结构化数据等
2.2 数据科学
2.2.1 大数据与数据科学
1、数据是人工智能的基石
2、数据是基础
2.2.2 定义
基于传统的数学,统计学的理论和方法,运用计算机技术进行大规模的数据计算,分析,应用的学科。
数据科学是一门专门处理大数据的学科
2.2.3 数据处理过程
采集,表示与存储,预处理(清洗,集成等),建模分析,可视化,决策
【数据科学导论】整体学习脉络:
- 数据科学导论------研究数据科学
- 数据科学------研究大数据处理
- 大数据处理过程------采集、表示与存储、预处理、建模分析、可视化、决策
- 大数据处理过程指导数据科学导论内容
3. 数据的表示与存储
3.1 数据分类与表示
3.1.1 结构化数据
可以使用关系型数据库表示和存储的数据,拥有固定结构。
结构化数据能够很好被数据库存储:
- 有严格的数据结构和格式的要求。
- 因此用树结构就可以在磁盘中很好的完成存储、查询和处理。
3.1.2 半结构化数据
弱结构化数据,虽然没有关系型数据库那么严格的结构要求,但是也存在一定的结构。如XML、JSON
3.1.3 非结构化数据
没有固定数据结构,没有统一格式。如文本、图片、视频、音频等
3.2 数据存储
3.2.1 结构化数据的存储
3.2.1.1 结构化数据存储在哪里
对于结构化数据可以直接存储在关系数据库中
结构化数据------》有很强结构性------》可以转化为关系结构------》存储在关系数据库
具体解释如下:
数据库: 有组织、可共享的大量数据集合
数据库管理系统: 对数据库的管理,位于用户和操作系统之间。
优点:1、数据结构化,管理效率高
2、用户只需指出干什么,不必仔细说怎么干
3、对于事务的支持,有高一致性
3.2.1.2 结构化数据存储的手段
利用SQL语言完成结构化数据的存储,具体SQL语言介绍
类别一:Data Definition Language (DDL) 数据定义语言(create,delete等)
DDL:定义各种表结构
创建:
sql
create table studeng (
sid char(20),
cid char(20);
)
删除:
sql
drop table tb1;
修改:
sql
alter table test4_02
add avg_score numeric(3,1)
类别二:Data Manipulation Language (DML) 数据操作语言(增删改查)
增:
sql
Insert into Students(sid,name,login,age,gpa)
values('111','smith','smith@qq',11,3.3)
删:
sql
delete from Student S
where S.name='Smith'
改:
sql
update test4_01 S
set sum_score=(
select sum(score)
from pub.student_course T
where S.sid=T.sid
)
类别三: Data Control Language(DCL):数据控制语言,用来定义访问权限和安全级别
类别四:Data Query Language(DQL):数据查询语言,用来查询记录(数据)
SELECT DISTINCT age FROM students
使用 DISTINCT 去重查询结果中的单个列,返回唯一的值
SELECT DISTINCT NAME,age,score FROM students
使用 DISTINCT 去重查询结果中的多个列,返回满足多列组合唯一的结果。
sql
-- 1. LEFT JOIN: 左连接,返回左表(employees)所有记录,以及右表(departments)中连接字段相等的记录
SELECT e.employee_id, e.name, e.department_id, d.department_name
FROM employees e
LEFT JOIN departments d
ON e.department_id = d.department_id;
-- 2. RIGHT JOIN: 右连接,返回右表(departments)所有记录,以及左表(employees)中连接字段相等的记录
SELECT e.employee_id, e.name, e.department_id, d.department_name
FROM employees e
RIGHT JOIN departments d
ON e.department_id = d.department_id;
-- 3. INNER JOIN: 内连接,只返回两个表中连接字段相等的记录
SELECT e.employee_id, e.name, e.department_id, d.department_name
FROM employees e
INNER JOIN departments d
ON e.department_id = d.department_id;
-- 4. FULL JOIN: 外连接,返回两个表中的所有行,左连接 + 右连接
SELECT e.employee_id, e.name, e.department_id, d.department_name
FROM employees e
FULL JOIN departments d
ON e.department_id = d.department_id;
-- 5. NATURAL JOIN: 自然连接,自动根据两个表中的同名列进行连接
SELECT e.employee_id, e.name, e.department_id, d.department_name
FROM employees e
NATURAL JOIN departments d;
left join : 左连接,返回左表中所有的记录以及右表中连接字段相等的记录。
right join : 右连接,返回右表中所有的记录以及左表中连接字段相等的记录。
inner join(join) : 内连接,又叫等值连接,只返回两个表中连接字段相等的行。
full join : 全连接,返回两个表中的行:left join + right join。
natural join:自然连接,自动匹配同列名的数据。
3.2.1.3 结构化数据存储的优化
对数据库设计的研究
问题:存在冗余
严格按照范式要求来设计数据库的表格
问题:严格保证关系的有效性
只有满足这三个完整性,才可以说数据库的设计是合适的
问题:数据库查询效率
3.2.2 非结构化数据存储
非结构化数据或者半结构化数据并没有结构化数据那种强结构化的特性。因此不能转化为关系来处理,不能使用关系型数据库。
非关系数据库(NoSQL)应运而生!!😍😍
非关系数据库是一系列针对不同非结构化数据存储的数据库,而不是单单一种数据库,
非关系型数据库有:
3.2.2.1 MongoDb
3.2.2.2 Neo4j
专门用于存储图数据------图数据是关系型数据,数据之间存在很强烈的联系(关系)。
这个关系和关系型数据库的关系是不同的!!
图数据用关系型数据库存储非常复杂(关系种类会很多),同时不是所有节点之间都是全连接的,因此存在很多冗余。
图数据库的优点:
- 图数据库直接以图的形式存储图数据(不用对数据进行转化)
- 利用图论的知识来做查询
3.2.2.3 Redits
3.2.2.4 HBase
3.2.2.5 NoSQL总结(必背)
1、为什么需要NoSQL数据库?
- **从数据类型来说:**大数据时代来临,我们面对的数据除了结构化的数据还有非结构化、半结构化的数据。这些数据用关系数据库来存储效果很差。
- **从高并发读写来说:**传统的关系数据库为了保证事务特性,每次操作都做了很多限制(例如上锁等),这会降低访问数据库的效率。但是在很多情况下事务是不一定要保证的,例如两个用户短时间内看的博客内容不同是不重要的(当然,事务对于银行取钱这很重要)。NoSQL不保证事务特性,从而提高了并发处理的性能;Redit数据库使用了内存做缓存的方法提高了并发处理速度;NoSQL很多都支持分分布式存储和计算,提高并发处理的性能。
- **从数据量来说:**但数据量很大时,针对条件的查询在SQL下会很消耗成本,但是使用HBase列存储效果就很好;当数据量大时,分布式并发处理的效果比SQL的单独处理更好;集合运算在Redits上很快,图运算在Neo4j上处理很快。
2、几种NoSQL的应用场景?
3、NoSQL通用性特点
- 分布式,很好应对数据量大,高并发读写的要求。
- 数据量大,选择性存储一些信息,从而提高整体存储数据量的值。
- 结构性低,数据结构修改代价小。
4. 总结
本文到这里就结束啦~~
期待您的关注~~🥰🥰
猫猫陪你永远在路上💪💪
如果觉得对你有帮助,辛苦友友点个赞哦~
下一篇我们将进入 数据预处理 部分~~~