分布式数据库-课程总结

news2024/11/16 21:54:38

文章目录

  • 参考资源
  • HBase列族数据库
    • 简介
    • 与关系数据库的对比
      • 存储对比
      • 操作语句
        • 表级别语句
        • 表数据语句
    • 数据库的原理
    • 存储结构
    • 架构
  • MongoDB文档数据库
    • 简介
    • 与关系数据库的对比
      • 存储对比
      • 操作语句 见PPT
    • 命名规范
    • 数据库的原理
  • Redis键值内存数据库
  • Neo4j图数据库

参考资源

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 机制

与关系数据库的对比

存储对比

MySQLHBase
数据库dbnamespace
表tabletable
列字段列族+列标识
rowkey行间
单元格cellrowkey+列族+列标识+版本

操作语句

表级别语句

建表
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}

数据库的原理

数据库的架构
在这里插入图片描述

region定位
数据写入
数据读取
WAL机制
minor合并-store
major合并-store
region拆分
region合并
Region负载均衡

存储结构

在这里插入图片描述

架构

MongoDB文档数据库

简介

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

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

与关系数据库的对比

存储对比

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

操作语句 见PPT

在这里插入图片描述

命名规范

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

数据库的原理

副本集的架构
在这里插入图片描述

分片集的架构
在这里插入图片描述

Redis键值内存数据库

Neo4j图数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1309759.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

佛山数字孪生赋能工业智能制造,助力制造业企业数字化转型

佛山数字孪生赋能工业智能制造,助力制造业企业数字化转型。数字孪生驱动的仿真服务可以模拟产品的各种真实功能,为不同的用户切换不同的应用场景。产品介绍、咨询和体验服务都可以通过产品数字孪生来完成。产品数字孪生在交易时可以交付给客户。产品销售…

HTTP协议请求详解

✏️✏️✏️今天给大家分享的是 HTTP 请求部分的基础知识。 清风的CSDN博客 🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! ✈️✈️✈️动动你们发财的小…

大数据与人工智能——神经网络是如何工作的?

大数据与人工智能——神经网络是如何工作的? 我们习惯于去了解所使用工具、中间件的底层原理,本文则旨在帮助大家了解AI模型的底层机制,让大家在学习或应用各种大模型时更加得心应手,更加适合没有AI基础的小伙伴们。 一、GPT与神…

【改进YOLOv8】车辆测距预警系统:融合空间和通道重建卷积SCConv改进YOLOv8

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义: 随着交通工具的普及和道路交通的不断增加,车辆安全问题日益凸显。特别是在高速公路等高速道路上,车辆之间的距离和速度差异较…

可数集合(可列集合、可列无限集)

凡是和全体正整数所构成的集合对等的集合都称为可数集合、或者叫可列集合、可列无限集。 由于可以按大小顺序排成一个无穷序列,因此一个集合A是可数集合的充要条件为:A可以排成一个无穷序列 可数集合是无限集合。

服务器常用命令介绍和负载监控的工具插件推荐

先赞后看,养成习惯!!!❤️ ❤️ ❤️ 码字不易,如果喜欢可以关注我哦! 如果本篇文章对你有所启发,欢迎访问我的个人博客 命令 服务器相关 5个常用命令 top Top命令不仅显示了当前内核服务的…

解决固定资产盘点问题,易点易动来帮忙!

固定资产盘点是企业管理中不可或缺的环节,然而,很多企业在固定资产盘点方面面临一系列问题: 盘点过程繁琐:传统的手动盘点方式需要耗费大量人力和时间,容易出现疏漏和错误,效率低下; 数据记录不…

2022最新云存储网盘系统,文件分享系统与文件存储系统。

资源入口 2022 最新云存储网盘系统, 文件分享系统与文件存储系统。 测试环境:Apache MySQL5.6 PHP7.0 安装 PHP 扩展 exif、fileinfo 从 PHP 禁用函数中 删除 shell_exec、proc_open、putenv 这三个 PHP 函数 PS:整体还不错的系统,注意的…

年薪30w+”,程序员涨薪秘诀竟然是它!

“程序员能纯靠技术渡过中年危机吗?” 知乎上的这个提问,吸引了大批码农留言,热赞均表示“能,很难”。因为难逃这两种结局: • 没精力学习,技术一迭代,被淘汰。 • 有技术,90%公…

爱名网被评为“最佳安全保障注册服务机构”

12月12日,由中国互联网络信息中心主办,中国科学院计算机网络信息中心、中国工业互联网研究院、中国互联网协会联合主办,人民邮电报社承办的第四届中国互联网基础资源大会(CNIRC)在北京举办。 在本届大会上&#xff0c…

官宣 鸿雁成为2023汇丰世界羽联世界巡回赛总决赛官方供应商

全屋智能和羽毛球运动能擦出怎样的火花? 鸿雁给你答案! 12月13日,2023汇丰世界羽联世界巡回赛总决赛将在杭州举行。 鸿雁签约成为2023汇丰世界羽联世界巡回赛总决赛官方供应商,将携手世界羽联,为广大羽毛球爱好者们…

虹科技术 | IO-Link Wireless如何赋能工厂车间迈向无线自动化?

大规模定制、卓越运营和商业智能正在从根本上改变制造业,为了在竞争中立于不败之地,制造商需要更加灵活、通用、可扩展和具有成本效益的机器和生产线。随着制造商向工业 4.0 迈进,更好的适应性、更高的吞吐量和更短的停机时间是他们的共同要求…

electron中获取mac地址

electron中获取mac地址 引入为了方便做单点登录,我们往往需要使用某个唯一标识来标记客户端的设备,mac地址就是一个还不错的选择思路 我们可以使用Node.js的内置模块os,调用其中的networkInterfaces方法。该方法会返回一个包含网络接口信息…

Leetcode 51 N 皇后

题意理解: N皇后问题指的是在一个nn的棋盘上,防止皇后棋子,每行、每列、每45斜角只能有一个皇后存在。 这是一道困难的题:困难在于: 如何处理棋盘,如何表示棋子。 将期盼看作是2维数组,一行一行…

融资融券超详细攻略!4.5%融资利率怎么开通?

一、融资融券是什么? 融资:顾名思义融资就是找证券公司借钱,然后去二级市场参与交易,到期归还给证券公司资金。简单来说融资就是当我们在看涨某只股票,但没有充足的资金时,这时如果你满足融资融券的条件&am…

ros2+gazebo建立机器人

Building your own robot In this tutorial we will learn how to build our own robot in SDFormat. We will build a simple two wheeled robot.本文用SDF文件建立一个2轮机器人 You can find the finished SDF file for the tutorial here.SDF文件点击下载 What is SDF SD…

Redis持久化AOF详解

基础面试题 什么是AOF AOF(Append-Only File)用于将Redis服务器收到的写操作追加到日志文件,通过该机制可以保证服务器重启后依然可以依靠日志文件恢复数据。 它的工作过程大抵分为以下几步: 收到客户端的写入命令(例如SET、DE…

Unity中Shader URP 简介

文章目录 前言一、URP(Universal Render Pipeline)由名字可知,这是一个 通用的 渲染管线1、Universal(通用性)2、URP的由来 二、Build-in Render Pipeline(内置渲染管线)1、LWRP(Lig…

escapeshellarg参数绕过和注入的问题

escapeshellcmd escapeshellcmd(string $command): string command--要转义的命令。 escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数,或者 执行操作符 之前进行转义。 …

如何排查线上问题的?

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、预警层面 1.1 做好监控告警 1.2 定位报警层面 二、近期版本 2.1 判断最近有没有发版本 2.2 回归最近的版本 三、日志告警…