当前课程知识点:数据库系统原理与开发 >  第7章 NoSQL数据库技术 >  7.2 列存储数据库 >  7.2.1列存储数据库-1

返回《数据库系统原理与开发》慕课在线视频课程列表

7.2.1列存储数据库-1在线视频

下一节:7.2.2列存储数据库-2

返回《数据库系统原理与开发》慕课在线视频列表

7.2.1列存储数据库-1课程教案、知识点、字幕

我们下面这一节的内容目标如下

HBASE系统基本概念,我们在这个里头我们有三个学习目标

第一个问题 列存储数据库简介

下面对HBASE数据库的介绍

以及HBASE数据库模型的介绍

第一个问题 列存储数据库简介

这边我们首先给出在我们数据库中的数据模型

给出了数据的表达方式,二维表表示我们关系数据库的结构

我们是所有的关系数据库的数据和数据之间的关系都是放在二维表中

我们数据库也行和列二维表的形式来表示数据

用一位字符串的方式来存储数据

下面我们给出一个表格

我们这个表格的信息是

有课程表的信息,我们可以看一下这个

课程表有课程的编号,课程的名字,课程的类型,课程的学时

课程的学分

这三项数据

下面这个课程表有所有的数据列有这些

这些数据的在我们行式数据库里头,是把一行的数据串在一起存储

然后再存储下一行,以此类推

我看一下有效的这种

存储的效果就是我们在红色的字体

显示出来的,我们的三行数据,每一行是连一行,一行一行存储的

所以说这个实际上我们的存储方式是通过一串字符进行存储

通过含个定义每一行数据的,尤其是哪些列来的数据进行定位

下面看一下我们的历史数据,是把一列的数据串在一起存储,然后再存储下一列

以我们刚才一个为列子,我们来看一下刚才我们的那个

课程表的课程内容的这个信息

这个数据表格是像我们存储的效果就是我们红色的

字体显示的,我们先存储列式课程编号,第二列是我们课程的名称

第三列什么课程的类型,第四列课程的学时,第五列是课程的学分

让我们看一下,是一列的方式存储的

原则在查询里头,我们可以通过选列来定义的

列是存储数据是自动化索引化的

而且他的数据压缩比较高,为什么呢?

因为一列数据里头有好多是重复的列子

这样重复的列子,我就可以把它压缩存储,这样子节省

把存储空间也可以提高我们的查询效率

下面第二个问题我们来介绍一下HBASE数据库

HBASE全称是Hadoop Database, 是一个构建在Apache Hadoop上的列式数据库

而且它是一个开源的,非关系型的

分布式数据库也就是属于我们的(NoSQL),他的编程语言使用的java

它是Apache软件基金会的Hadoop项目的一部分,可以容错地存储海量稀疏的数据

HBase的表能够作为不同任务的输入和输出

可以通过不同的API来定义接口存取数据

还有Hbase是是建立的分布式文件系统之上

提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统

好,我们下面来看一下Hbase表的特点

它的特点是表达的数据量大

我们都知道实际上的一列的存储数据量可以很大,没有模式

它实际上我们可以自定义的

根据不同的应用需求来定义它的数据的模式

指定以数据里头表格里的数据内容

它是面向列族的,是一列一列存储的,而且数据类型比较单一

下面一个他没有严格形态的数据数据记录,可能包括不一致的列

这些列也可以是一个半结构化的数据,或者没有结构的数据

所以说他可以很容易扩展

根据不同的应用进行自定义这些数据使他存储方式可以扩展

最后它的结构是无限的实体化的嵌套的版本,我们在后边会讲到

数据可以使包含三套,也可以引用的方式来进行

下面我们来看一下

HBASE的数据模型

实际上我们看一下一个表就有行和列组成的

我们在HBASE里头,我们下面这可以看出,每一行有一个行键(rowkey)

我们下面一列数据使用列族的方式(column family)表示

我们下面这个表格里头有两个列族,一个是我们的cf1

一个是cf2,两个列组,每个列组里头展包含不同的列

最后我们的这个数据模型里头有一个时间版本(version)

这个时间是表示,我们对这里每一行的数据,在不同的时间可以取不同的值

用这个时间来表示不同的版本

这个就是我们HBase模型里头每一行要有行键

每一列要有列族来表示

列族底下有包括列,不同的列完了,我们有列的限定符和时间版本组成

下面就来看一下,实际上整个的数据模型

首先是表的定义,实际上,HBase 将数据组织在一张表里头

对于数值的结构是表结构

表明我们是一个字符串,同时它可以在文件系统里头,因为这个表我们是

你在分布式文件系统放的是相对应的

文件系统一个目录名字

我们用行键来进行索引

每一行里头我们可以定义不同的列族

列族是在数据的定义的表定义的时间把它定义出来

列族每一个像上面那个例子,我们有两个列子

每个列就属于一个列族

而且列是可变的,在每一个列族里头,我肯定又有了变化列的名称

下面一个

是一个单元单元时间,有行、列族、列限定符、值和代表值版本的

版本信息组成的

单元实际上就是我们行业划分的一个对应的一个存储

成为我们的单元词行和列的交叉点,成为我们的单元格

内容是列的值,使用二进制的形式表示的

还有一个时间版本,时间版本是一个64位的整型数

用户可以定义这个时间,也可以取系统的时间

每一个单元都要可以保存多个时间版本

这种对时间的版本,我们有两种方式,一种保持数据的最后

这个版本另外一种可以保持,别说在一定时间内的版本

这个我们看下数据模型总共有六个

概念六个概念,在这个HBase 数据模型里头

所以说我们看一下HBase 是没有数据的类型

有任何的例子都是转换成字符串来进行存储的

没有规定我们的数据类型还有

他的表的每一行可以有不同的列,这个我们刚才说过了,每一个表

可以定义列组,但是列式不用定义的,也可以标包含不同的列

你根据数据的插入进去的是什么就是什么

还有相同的行键的插入操作,被认为是同一行的操作

每一个行键可以做多次插入

可插入的方法实际上就等于是我们多个时间

最后由时间来区分,每一行里头有多少个值,还有表的存储结构

我们逻辑数据模型,空白的单元里头在物理上是不存储的

有的地方没有值的,我们是不用存储了

我们来看一下这个数据模型,我们有几个例子

这个例子里头,在我们的关系数据库里头,我们向这个是一个日志的一个

列子,我们有三个表,一个表是作为我们的文章的一个表

我们看这个文章里头包括文章的id内容,它的标识,还有作者,还有一个作者表

作者的名字和他的编号,日志表

这三个表在我们关系数据库里头我们需要三个表单

但是在我们HBase 里头,我们可以用一个表1个表就出来了,我们看一下这个表,我们看下边

红色的字体给出了这个表我们有一个行

这一行每一行就是一个,有一个行健

我们这个行键里头有两个列出一个列族是我们的文章表

在每一个列族里头,在我们的文章表里头,我们这个列族里头,我们有三列

作者这个列族里头,我们有两列

这样子实际我们在

HBase 通过一个表,在关系数据库,三个表的信息全部表达出来了

有了这个以后我们这边来看一下,就是我们对这个列的一些操作

使这个列的存储结构,我看一下刚才给出来的一个日志表

我看一下,首先函件是一的话,我们看一下123

有六条信息,这六条信息是让我们看一下

对应不同的时间,对应不同的每个列组里头有对应相应对应的不同的值

这个说明在某一个不同的时间段,我们对这个行业这个数据做了一些修改

所以都把它记下来了,存储的时间空的这身行

空的这个列的信息是不用存储的

好,我们有了这个前途的说明,他的数据模型我们看一下

这个HBase 还有哪些特点?一个我们看一下,因为它是按列存放的

所以说他不支持我们的条件查询和我们的排序依据

智能干的行健,我们可以看到我们的行键全变回了部分表

进行扫描

每个列族是一个存储单元,这个列族可以存储在不同的物理空间里头

还有我们的列式,不用创建定义的

这个列式可以动态的增加,你可以根据不同的操作,可以动态进行增加删除的

下面我们俩在这个数据模型里头,我们来讨论它的存储模型

存储模型,实际上它的存储我们首先要看一下,HBase 数据的存储类型

实际上我们看一下,对每个表要有表明,所以每个表的表名必须是字符串

遵从我们字符串标识符的所有规矩

我们每一个行健

和我们的列名都是二进制的,十项最佳,因为它是用java语言开发的

在java的推行里头是用二进制的一个数值

我们的时间戳是一个64位的整数,还有我们对应的值是一个字符数组

所以说我们下面来看一下HBase 是数据模型的定义层次首先

他的数据模型定义的层次,第一个是它的识别码模式定义

第二个这个模式基础上我们定义表

在表的基础上定义我们的立足行健,实践出最后

得出我们的这个就是他的数据模型的定义层次

下面对我们各种定义的城市里头哪些数据的存储的方式我们进行说明

下面我们来对数据模型定义,对这些每个词的定义的一些类型方式进行一些说明

我们看一下这个行键,实际上是一个二进制数组,是表中每条记录的主键

可以用来方便的快速查找,所以这个设计是非常重要的

下面一个列族,我们实际上也是一个名称

我们可以用一个字符串来表示这个了

这个列族里头,可以包含一个或者多个相关的列

可以在一个列组里头

列族事先定义,但是里头的列,我们可以根据应用的需求,可以动态的插入删除

列实际上属于每个列族的

所以说它的名字应该是列族名字加列的名字

我们每个列都可以动弹的添加和删除的

还有一个版本信息,这个就是时间戳的信息就是

默认了可以是系统的时间戳,可以用户自己定义

所以说到这里,我们来,最后我们来总结下我们的数据模型

数据模型实际上是一张表

每张表里头我们表的名字必须是因为最后的表是存储在

分布式文件系统上头的

所以说表的路径必须是可以是一个对应的一个分布式文件系统的路径名

行、每一行有一个数据对象

用行键来唯一标识的列族,使我们首先要设置好的

列实际上就是动态增加的

我们可以来由每一个单元有具体的词,时间戳是根据可以保存多个版本

好,这个本节学习就到这里结束

数据库系统原理与开发课程列表:

第1章 数据库系统概论

-1.1 数据库及其系统概念

--1.1 数据库及其系统概念

-1.2 数据库技术发展

--1.2 数据库技术发展

-1.3 数据库应用系统

--1.3 数据库应用系统

-1.4 典型数据库管理系统

--1.4 典型数据库管理系统

-1.5 PostgreSQL对象-关系数据库系统软件

--1.5 PostgreSQL对象-关系数据库系统软件

-第1章 数据库系统概论--本章单元测试

-第1章 数据库系统概论--本章重点问题讨论

第2章 数据库关系模型

-2.1 关系及其相关概念

--2.1.1关系及其相关概念-1

--2.1.2关系及其相关概念-2

-2.2 关系模型原理

--2.2.1关系模型原理-1

--2.2.2关系模型原理-2

-2.3 PostgreSQL数据库关系操作实践

--2.3 PostgreSQL数据库关系操作实践

-第2章 数据库关系模型--本章单元测试

-第2章 数据库关系模型--本章重点问题讨论

第3章 数据库操作SQL语言

-3.1 SQL语言概述

--3.1 SQL语言概述

-3.2 数据定义SQL语句

--3.2.1数据定义SQL语句-1

--3.2.2数据定义SQL语句-2

--3.2.3数据定义SQL语句-3

-3.3 数据操纵SQL语句

--3.3 数据操纵SQL语句

-3.4 数据查询SQL语句

--3.4.1单表数据查询

--3.4.2 内置函数与分组统计

--3.4.3 多表关联查询

-3.5 数据控制SQL语句

--3.5 数据控制SQL语句

-3.6 视图SQL语句

--3.6 视图SQL语句

-3.7 PostgreSQL数据库SQL实践

--3.7 PostgreSQL数据库SQL实践

-第3章 数据库操作SQL语言--本章单元测试

-第3章 数据库操作SQL语言--本章重点问题讨论

第4章 数据库设计与实现

-4.1 数据库设计概述

--4.1 数据库设计概述

-4.2 E-R模型方法

--4.2.1 E-R模型方法-1

--4.2.2 E-R模型方法-2

-4.3 数据库建模设计

--4.3.1 数据库建模设计-1

--4.3.2 数据库建模设计-2

-4.4 数据库规范化设计

--4.4.1 数据库规范化设计-1

--4.4.2 数据库规范化设计-2

-4.5 数据库设计模型SQL实现

--4.5 数据库设计模型SQL实现

-4.6 基于Power Designer的数据库设计建模实践

--4.6 基于Power Designer的数据库设计建模实践

-第4章 数据库设计与实现--本章单元测试

-第4章 数据库设计与实现--本章重点问题讨论

第5章 数据库管理

-5.1 数据库管理概述

--5.1 数据库管理概述

-5.2 事务管理

--5.2 事务管理

-5.3 并发控制

--5.3.1 并发控制-1

--5.3.2 并发控制-2

-5.4 安全管理

--5.4.1 安全管理-1

--5.4.2 安全管理-2

-5.5 数据库备份与恢复

--5.5 数据库备份与恢复

-5.6 PostgreSQL数据库管理项目实践

--5.6 PostgreSQL数据库管理项目实践

-第5章 数据库管理--本章单元测试

-第5章 数据库管理--本章重点问题讨论

第6章 数据库应用编程

-6.1 数据库连接技术

--6.1.1 数据库连接技术-1

--6.1.2 数据库连接技术-2

-6.2 数据库存储过程

--6.2 数据库存储过程

-6.3 数据库触发器

--6.3 数据库触发器

-6.4 数据库游标

--6.4 数据库游标

-6.5 嵌入式SQL编程

--6.5 嵌入式SQL编程

-第6章 数据库应用编程--本章单元测试

-第6章 数据库应用编程--重点问题讨论

第7章 NoSQL数据库技术

-7.1 NoSQL数据库概述

--7.1.1 NoSQL数据库概述-1

--7.1.2 NoSQL数据库概述-2

--7.1.3 NoSQL数据库概述-3

-7.2 列存储数据库

--7.2.1列存储数据库-1

--7.2.2列存储数据库-2

-7.3 键值对数据库

--7.3.1 键值对数据库-1

--7.3.2 键值对数据库-2

--7.3.3 键值对数据库-3

-7.4 文档型数据库

--7.4.1文档型数据库-1

--7.4.2文档型数据库-2

--7.4.3文档型数据库-3

-7.5 图形数据库

--7.5.1图形数据库-1

--7.5.2图形数据库-2

--7.5.3 图形数据库-3

-7.6 HBase数据库项目实践

--7.6 HBase数据库项目实践

-第7章 NoSQL数据库技术--本章单元测试

-第7章 NoSQL数据库技术--本章重点问题讨论

期末考试

-期末测试--期末测试

7.2.1列存储数据库-1笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。