分布式数据库-课程总结

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 分布式数据库-课程总结

参考资源


http://172.16.16.164:8000/courses/81 最新的实验 前5章 理解下,能完成对数据库的操作。


HBase

http://172.16.16.164:8000/courses/81/assignments/709?module_item_id=3779


MongoDB参考:

http://172.16.16.164:8000/courses/81/assignments/711?module_item_id=3781

http://172.16.16.164:8000/courses/81/assignments/712?module_item_id=3782


数据库的模型特点:列族 文档 键值对 图

数据库的特点:官网的首页

与关系数据库对比: 逻辑结构(数据库 表 行 单元格) 操作语句对比(内容可以基本对比)

数据库场景:

数据库语句操作:数据库操作 数据表操作 表中数据操作(CRUD 索引 高级的查询)

数据库的原理:hbase的原理 mongodb存储引擎B+树

数据库的编程:java 和 python操作数据库 能连接,能完成CRUD 能完成适当的高级查询就可

综合案例:大家去完成下


HBase列族数据库


简介

Hbase-Hadoop Database是一个高可用、高性能、面向列、可伸缩、实时读写的分布式数据库 。

大:一个表可以有上亿行,上百万列。

可伸缩:可根据负载增减节点。

面向列:相对于行式数据库,空间利用率高。

稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。

高可用:基于HDFS的多副本机制,WAL(Write-Ahead-Log)预写机制,Replication 机制


与关系数据库的对比


存储对比

MySQL HBase
数据库db namespace
表table table
列字段 列族+列标识
rowkey行间
单元格cell rowkey+列族+列标识+版本


操作语句

表级别语句

建表

mysql

CREATE TABLE exam_result (
 id INT,
 name VARCHAR(20),
 chinese DECIMAL(3,1),
 math DECIMAL(3,1),
 english DECIMAL(3,1)
);

hbase

#创建一张名为Student的表,包含基本信息(baseinfo)、学校信息(schoolinfo)两个列簇
create 'student','haseinfo','schoolinfo'


删除表

mysql

drop table user;

hbase


#删除表前需要先禁用表
disable 'student'
#删除表
drop 'student'

表数据语句

增加


put 'student', '1','baseinfo:name','tom'
put 'student', '1','baseinfo:birthday','1990-01-09'
put 'student', '1','baseinfo:age','29'
put 'student', '1','schoolinfo:name','Havard'
put 'student', '1','schoolinfo:localtion','Boston'
put 'student', '2','baseinfo:name','jack'
put 'student', '2','baseinfo:birthday','1998-08-22'
put 'student', '2','baseinfo:age','21'
put 'student', '2','schoolinfo:name','yale'
put 'student', '2','schoolinfo:localtion','New Haven'
put 'student', '3','baseinfo:name','maike'
put 'student', '3','baseinfo:birthday','1995-01-22'
put 'student', '3','baseinfo:age','24'
put 'student', '3','schoolinfo:name','yale'
put 'student', '3','schoolinfo:localtion','New Haven'
put 'student', '4','baseinfo:name','maike-jack'

获取指定行、指定行中的列族、列的信息

# 获取指定行中所有列的数据信息
get 'student','3'
# 获取指定行中指定列族下所有列的数据信息
get 'student','3','baseInfo'
# 获取指定行中指定列的数据信息
get 'student','3','baseinfo:name'

删除指定行、指定行中的列

# 删除指定行
delete 'student','3'
# 删除指定行中指定列的数据
delete 'student','3','baseinfo:name'

get查询


# 获取指定行中所有列的数据信息
get 'student','3'
# 获取指定行中指定列族下所有列的数据信息
get 'student','3','baseinfo'
# 获取指定行中指定列的数据信息
get 'student','3','baseinfo:name'

scan查询


#查询整表数据
scan 'student'
#查询指定列簇的数据
scan 'student', {COLUMN=>'baseinfo'}
# 查询指定列的数据
scan 'student', {COLUMNS=> 'baseinfo:birthday'}
# 查看指定列两个版本的数据(3.3中我们设置了3个版本)
scan 'student', {COLUMNS=> 'baseinfo:birthday',VERSIONS=>2}
# 查看前3条数据
scan 'student',{LIMIT=>3}


数据库的原理


数据库的架构

435da1fc48928b4fa9f358c39f1fee14_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JpZ0RhdGFfSG9iZXJ0,size_16,color_FFFFFF,t_70#pic_center#pic_center.png


region定位

数据写入

数据读取

WAL机制

minor合并-store

major合并-store

region拆分

region合并

Region负载均衡


存储结构

d4a1beaccf7aaa35c2fd0d5ca4c331e2_5592fc87e81f4291b1b64ccd1b3616fc.png


架构


MongoDB文档数据库


简介

MongoDB是文档型的NoSQL数据库,数据以文档(对应关系型数据库的记录)的形式在MongoDB中保存,文档实际上就是一个个JSON字符串,使用JSON的好处是非常直观,通过一系列的Key-Value键值对来表示数据,符合我们的阅读习惯。


在Java、Python中对JSON都有很好的支持,数据从MongoDB中读取出来后,可无需转换直接使用;支持丰富的数据结构,Value可以是普通的整型、字符串、数组、嵌套的子文档,使用嵌套的好处是在MongoDB中仅需一次简单的查询就能够获取到你所需的数据。


c0890eefb6c8936443083fa0fac72a34_31e4f904309341f7b06e54b3bb6e4fba.png

与关系数据库的对比

存储对比

MySQL MongoDB
数据库db db
表table 集合collection
列字段
document文档
单元格cell 键值对k:v


操作语句 见PPT

命名规范


数据库的原理

副本集的架构

分片集的架构


Redis键值内存数据库


Neo4j图数据库

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
存储 Cloud Native 数据库
云原生多模数据库Lindorm权威指南|从入门到精通(持续更新 v2021.2)
Lindorm是阿里云发布的业界首款云原生多模数据库,支持宽表、时序、文件等多种类型海量数据的低成本存储、检索与分析,兼容HBase/Cassandra、OpenTSDB、Solr、SQL、HDFS等多种开源标准接口,希望通过本指南,可以给开发者给更多的了解和使用指导,本文将持续更新
11334 2
云原生多模数据库Lindorm权威指南|从入门到精通(持续更新 v2021.2)
|
2月前
|
存储 NoSQL 关系型数据库
【赵渝强老师】什么是NoSQL数据库?
随着大数据技术的兴起,NoSQL数据库(Not Only SQL)得到广泛应用。它不局限于二维表结构,允许数据冗余。常见的NoSQL数据库包括Redis、MongoDB和HBase。Redis是基于内存的高性能数据库,采用单线程模型和多路复用I/O,支持高效的数据结构。MongoDB使用BSON格式存储文档,查询语言强大,类似关系型数据库。HBase基于HDFS,适合数据分析,采用列式存储,支持灵活的列族设计。视频讲解及更多内容见下文。
222 79
|
7月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
606 0
|
9月前
|
分布式计算 Java Hadoop
杨校老师课堂之分布式数据库HBase的部署和基本操作
杨校老师课堂之分布式数据库HBase的部署和基本操作
95 0
|
10月前
|
NoSQL 分布式数据库 MongoDB
分布式数据库-课程总结
分布式数据库-课程总结
|
存储 分布式数据库 数据库
分布式数据库的特点 | 学习笔记
快速学习 分布式数据库的特点
323 0
|
Cloud Native 关系型数据库 分布式数据库
阿里云开源数据库PolarDB分布式版入门训练营开营报名中!
阿里云开源数据库PolarDB分布式版入门训练营开营啦!本次训练营共有三个课程+四个任务,大家可根据自身情况灵活安排个人时间完成哦。
阿里云开源数据库PolarDB分布式版入门训练营开营报名中!
|
存储 运维 Cloud Native
开源分布式数据库PolarDB-X源码解读——卷首语
开源分布式数据库PolarDB-X源码解读——卷首语
701 0
|
运维 分布式数据库 云栖大会
PolarDB-X 开源分布式数据库进阶营玩法公告
为了帮助大家能够快速体验 PolarDB-X 新版本特性,阿里云 PolarDB-X 技术专家团队联合开发者学堂,共同打造 PolarDB-X 开源分布式数据库进阶训练营,通过本次课程您将学习到 PolarDB-X 新版本诸多重点特性,包括更高效的部署与运维方法(一键创建、审计日志、节点重搭、备份恢复、参数模版、只读实例)、数据快速导入导出、TP负载测试、分区管理、数据TTL过期自动删除、冷热数据归档、读写分离与HTAP等众多新特性,更有免费线上实验环境,理论学习与场景实操相结合,完成七天打卡任务将获得训练营结营证书,还有精美定制礼品等着你!
PolarDB-X 开源分布式数据库进阶营玩法公告
|
存储 数据采集 SQL
分布式数据库|学习笔记
快速学习分布式数据库
分布式数据库|学习笔记