存储系统、数据库和对象存储 | 青训营

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 存储系统、数据库和对象存储 | 青训营

存储系统

一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统

特点有

  • 作为后端软件的底座.性能敏感
  • 存储系统软件架构,容易受硬件影响
  • 存储系统代码,既“简单"又“复杂”

数据库

关系型数据库和非关系型数据库

关系=集合=任意元素组成的若干有序偶对反应了事物间的关系

相关文章

关系代数=对关系作运算的抽象查询语言

  • 交、并、笛卡尔积…… SQL=一种DSL=方便人类阅读的关系代数表达形式

关系型

关系型数据库是存储系统,但是在存储之外,又发展出其他能力

  • 结构化数据友好struct
  • 支持事务acid
  • 支持复杂语言SQL关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。

非关系型

NoSQL非关系型数据库,主要指那些非关系型的、分布式的,且一般不保证ACID的数据存储系统。

NoSQL提出了另一种理念,以键值来存储,且结构不稳定,每一个元组都可以有不一样的字段,这种就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,为了获取用户的不同信息,不需要像关系型数据库中,需要进行多表查询。仅仅需要根据key来取出对应的value值即可。

主流存储分类

单机存储 单机数据库 分布式数据库 分布式存储
文件系统 关系型数据 关系型数据 分布式文件系
Key-Value存 非关系型数据 非关系型数据库 对象存储

1.单机存储

单个计算机节点上的存储软件系统,一般不涉及网络交互

特点

  • 本地文件系统
  • key-value存储

2.分布式存储—概览

在单机存储基础上实现了分布式协议,涉及大量网络交互

HDFS、Ceph

特点

  • 分布式文件系统
  • 分布式对象存储

3.单机数据库

单个计算机节点上的数据库系统

事务在单机内执行,也可能通过网络交互实现分布式事务

关系型数据库

商业产品Oracle,开源产品MySQL & PostgreSQL

非关系型数据库

MongoDB、Redis、Elasticsearch

关系型数据库一般直接使用SQL交互,而非关系型数据库交互方式各不相同

非关系型数据库的数据结构千奇百怪,没有关系约束后,schema相对灵活

不管是否关系型数据库,大家都在尝试支持SQL(子集)和“事务”

4.分布式数据库

  • 容量:单点容量有限,受硬件限制
  • 弹性:扩容等问题
  • 性能
  • 性价比

在存储和数据库领域,硬件反推软件的变革十分常见

对象存储OSS(Object Storage Service)

特点

  • 容量无限大:可以到 EB 级,多少数据都能存的下
  • 持久可靠:11个 9 甚至以上的可靠性,数据丢失的概率比中五百万的概率还要低 2-3 个量级
  • 低成本:1 部高清电影存 1 年,差不多也就几块钱人民币
  • 使用方便:支持 REST 接口,主要操作为 PUT/GET/DELETE等,使用非常简单。

应用场景:日志、文本、音频、视频、图片、安装包、备份、前端js文件等

对象存储使用

对象(Object)是OSS存储数据的基本单元,也被称为OSS的文件。

和传统的文件系统不同,Object没有文件目录层级结构的关系。

  1. 创建Bucket
  2. 开发业务逻辑
  3. 测试

restful接口

对象存储对外提供的一般都是Restful风格的接口。

和gin类似

MultiUpload接口

解决大文件的问题

Listprefix接口

查看bucket里面的对象

关于运行代码

刚再阿里云上申请完,但是控制台里显示"数据还在准备中"

官网里面的文档非常详细了,不需要做任何补充

bucket创建就可以使用

OSS管理控制台 (aliyun.com)在这里可以看到endpoint当然是选择外网访问的第一个啦

在头像触摸可以出来accessKey管理,新建一个就可以使用。

分别是acessKey和acessSecretKey,在之后登录会用到

还有STS访客临时登录等等,文档里面很详细


在goland里面用

发现完全没必要自己写了啊,找到了阿里云的 OSS SDK for Go

  • 执行命令go get github.com/aliyun/aliyun-oss-go-sdk/oss获取远程代码包。
  • 在您的代码中使用import "github.com/aliyun/aliyun-oss-go-sdk/oss"引入OSS Go SDK的包。

这样就应该可以在大项目里面用了

go

复制代码

package main
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
  client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
  if err != nil {
    // HandleError(err)  
  }
  lsRes, err := client.ListBuckets()
  if err != nil {
    // HandleError(err)  
  }
  for _, bucket := range lsRes.Buckets {
    fmt.Println("Buckets:", bucket.Name)
  }
  bucket, err := client.Bucket("my-bucket")
  if err != nil {
    // HandleError(err)  
  }
  lsRest, err := bucket.ListObjects()
  if err != nil {
    // HandleError(err)  
  }
  for _, object := range lsRest.Objects {
    fmt.Println("Objects:", object.Key)
  }
}


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
1天前
|
存储 druid 分布式数据库
列式存储数据库与超市的关系?
列式存储数据库是一种高效的数据管理方式,类似于超市将相似商品集中摆放。它将相同类型的数据(如年龄、价格)归类存储,便于快速查询和压缩,广泛应用于市场分析、财务报告和健康数据分析等领域。知名产品包括HBase、ClickHouse、Druid和Apache Cassandra等,适合处理大规模数据和实时分析任务。
17 4
|
16天前
|
存储 弹性计算 数据管理
阿里云对象存储OSS收费标准:存储、流量和请求等多个计费项详解
阿里云对象存储OSS提供多样化的计费模式,涵盖存储、流量、请求等多项费用。存储费用方面,按量付费标准型为0.09元/GB/月,包年包月则有9元40GB等多种选择。流量费用仅对公网出方向收费,价格区间从0.25至0.50元/GB不等,支持按量付费与流量包抵扣两种方式。更多详情及精准报价,欢迎访问阿里云OSS官方页面。
1288 1
|
24天前
|
存储 数据库
快速搭建南大通用GBase 8s数据库SSC共享存储集群
本文介绍如何GBase8s 数据库 在单机环境中快速部署SSC共享存储集群,涵盖准备工作、安装数据库、创建环境变量文件、准备数据存储目录、修改sqlhost、设置onconfig、搭建sds集群及集群检查等步骤,助你轻松完成集群功能验证。
|
29天前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
29 1
|
17天前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
110 3
|
1月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
39 1
|
2月前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
138 3
|
2月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
43 2
|
2月前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
125 2
下一篇
DataWorks