我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据类型与分布式存储

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据类型与分布式存储

数据类型与分布式存储

================================================================================

概述:


================================================================================

数据类型

 1.结构化数据

定义:

  • 结构化数据即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据;

  • 能够用数据或统一的结构加以表示,我们称之为结构化数据,如数字、符号。传统的关系数据模型、行数据,存储于数据库,可用二维表结构表示;

  • 结构化数据,简单来说就是数据库。结合到典型场景中更容易理解,比如企业ERP、财务系统;医疗HIS数据库;教育一卡通;政府行政审批;其他核心数据库等。这些应用需要哪些存储方案呢?基本包括高速存储应用需求、数据备份需求、数据共享需求以及数据容灾需求;

  • 所有关系型数据库中的数据全部为结构化数据;

  • 结构化数据:SQL, TPS(事物处理系统)较差, MySQL(主从复制、分库分表来提升性能);

 2.非结构化数据

定义及作用:

  • 非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等

  • 相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。

  • 非结构化数据库是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的数据库,用它不仅可以处理结构化数据(如数字、符号等信息)而且更适合处理非结构化数据(全文文本、图象、声音、影视、超媒体等信息)

  • 非结构化WEB数据库主要是针对非结构化数据而产生的,与以往流行的关系数据库相比,其最大区别在于它突破了关系数据库结构定义不易改变和数据定长的限制,支持重复字段、子字段以及变长字段并实现了对变长数据和重复字段进行处理和数据项的变长存储管理,在处理连续信息(包括全文信息)和非结构化信息(包括各种多媒体信息)中有着传统关系型数据库所无法比拟的优势。

  • 非结构化数据:k-v

 3.半结构化数据

定义及作用:

  • 所谓半结构化数据,就是介于完全结构化数据(如关系型数据库、面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据,HTML文档就属于半结构化数据。它一般是自描述的,数据的结构和内容混在一起,没有明显的区分。

  • 半结构化数据:json, xml (Document Store文档存储, mongodb、Elasticsearch)

  4.数据模型

  • 结构化数据:二维表(关系型)

  • 半结构化数据:树、图

  • 非结构化数据:无 

  • RMDBS的数据模型有:如网状数据模型、层次数据模型、关系型 (oracle,mysql等)

  • nosql非关系数据库(memcached,redis,mangodb)

  • 结构化数据:先有结构、再有数据

  • 半结构化数据:先有数据,再有结构

CAP理论(一致性、可用性、分区容错性)

 CAP理论在互联网界有着广泛的知名度,知识稍微宽泛一点的工程师都会把其作为衡量系统设计的准则。大家都非常清楚地理解了CAP:任何分布式系统在可用性、一致性、分区容错性方面,不能兼得,最多只能得其二,因此,任何分布式系统的设计只是在三者中的不同取舍而已

定义及作用:

  • C(一致性):所有的节点上的数据时刻保持同步;

  • A(可用性):每个请求都能接受到一个响应,无论响应成功或失败;

  • P(分区容忍):系统应该能持续提供服务,即使系统内部有消息丢失(分区);

高可用、数据一致是很多系统设计的目标,但是分区又是不可避免的事情

CA without P:

  • 如果不要求P(不允许分区),则C(强一致性)和A(可用性)是可以保证的。但其实分区不是你想不想的问题,而是始终会存在,因此CA的系统更多的是允许分区后各子系统依然保持CA。

CP without A:

  • 如果不要求A(可用),相当于每个请求都需要在Server之间强一致,而P(分区)会导致同步时间无限延长,如此CP也是可以保证的。很多传统的数据库分布式事务都属于这种模式。

AP wihtout C:

  • 要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。现在众多的NoSQL都属于此类。

分布式存储技术及应用

 1.海量数据的关键环节及面临的挑战

★大数据下的关键环节:

海量数据的生成

  • 访问日志数据

  • 业务数据

  • 用户上传

海量数据应用

  • 精准广告

  • 个性化定制

  • 未来预测

海量数据的管理

  • 文件

  • 图片

  • 数据

大数据带来的挑战

  • 数据采集

  • 数据存储

  • 数据搜索

  • 数据共享

  • 数据传输

  • 数据分析

  • 数据可视化

 2.大数据如何存储

   根据did you know(http://didyouknow.org/)的数据,目前互联网上可访问的信息数量接近1秭= 1百万亿亿 (1024)。毫无疑问,各个大型网站也都存储着海量的数据,这些海量的数据如何有效存储,是每个大型网站的架构师必须要解决的问题。分布式存储技术就是为了解决这个问题而发展起来的技术.

传统存储问题:

  • 纵向扩展受阵列空间限制;

  • 横向扩展受交换设备限制;

  • 节点受文件系统限制

如:NFS图片存储会遇到带宽、存储空间、请求并发等问题

分布式存储的概念:

  • 与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。

分布式存储系统的特性:

可扩展(Scalable)

  • 分布式存储系统可以扩展到几百台甚至几千台的集群规模,而且,随着集群规模的增长,系统整体性能表现为线性增长。

可靠性(Reliable)

  • 高性能。无论是针对整个集群还是单台服务器,都要求分布式存储系统具备高性能。

低成本(Cheap)

  • 分布式存储系统的自动容错、自动负载均衡机制使其可以构建在普通PC机之上。另外,线性扩展能力也使得增加、减少机器非常方便,可以实现自动运维。

易用

  • 分布式存储系统需要能够提供易用的对外接口,另外,也要求具备完善的监控、运维工具,并能够方便地与其他系统集成,例如,从Hadoop云计算系统导入数据。

分布式存储的机制分类:

通用分布式存储:

  • 分布式存储(不支持挂载,不支持复杂的文件系统机制,不支持权限模型),mogilefs, fastdfs, ...

专用分布式存储:

  • 分布式文件系统(支持挂载), moosefs, ...

分布式存储的挑战

  • 节点间通信;

  • 数据存储;

  • 数据空间平衡;

  • 容错;

  • 文件系统支持

分布式存储的核心点

  • 元数据存储(高效)

  • 数据存储(冗余)

存储一般分为两种类型:

集中式:

  • NAS:Network Attached Storage; 文件系统级别, 例如NFS, FTP, SAMBA… 

  • SAN:Storage Aera Network; 块级别, 例如IP SAN, FC SAN…

分布式 :

  • 中心节点存储:每个集群中有节点专门用来存储元数据, 其他节点则存储部分数据 

  • 无中心节点存储:每个集群各节点都存储元数据和部分数据

分布式存储和分布式文件系统:

  • 文件系统: 有文件系统接口

  • 存储: 无文件系统接口, 通过API访问

分布式存储文件系统的常见实现

Google Filesystem

GFS擅长处理单个大文件

GFS+MapReduce (编程模型-运行框架-API)可以实现程序切割到多节点运行,实现分布式处理

Hadoop Distributed Filesystem

根据GFS思想开发的,擅长处理单个大文件

ClusterFS擅长处理单个大文件
Taobao Filesystem淘宝开源的文件系统,擅长处理海量小文件,适用于大规模场景。
MogileFS是一个高性能的分布式存储,擅长处理海量小文件
Ceph是一个 Linux PB级别的分布式文件系统,测试中
MooseFS分布式文件系统,兼容POSIX(FUSE),可以直接挂载使用,当节点多,并发量大环境中,可扩展性差,性能一般。
Lustre一种平行分布式文件系统

 3.具体技术及应用

  -海量的数据按照结构化程度来分,可以大致分为结构化数据,非结构化数据,半结构化数据。

结构化数据的存储及应用

定义:

  • 所谓结构化数据是一种用户定义的数据类型,它包含了一系列的属性,每一个属性都有一个数据类型,存储在关系数据库里,可以用二维表结构来表达实现的数据。

存储:

  • 大多数系统都有大量的结构化数据,一般存储在oracla或MySQL的等的关系型数据库中,当系统规模大到单一节点的数据库无法支撑时,一般有两种方法:垂直扩展与水平扩展。

◆垂直扩展:

  • 垂直扩展比较好理解,简单来说就是按照功能切分数据库,将不同功能的数据,存储在不同的数据库中,这样一个大数据库就被切分成多个小数据库,从而达到了数据库的扩展。一个架构设计良好的应用系统,其总体功能一般肯定是由很多个松耦合的功能模块所组成的,而每一个功能模块所需要的数据对应到数据库中就是一张或多张表。各个功能模块之间交互越少,越统一,系统的耦合度越低,这样的系统就越容易实现垂直切分。

◆水平扩展:

  • 简单来说,可以将数据的水平切分理解为按照数据行来切分,就是将表中的某些行切分到一个数据库中,而另外的某些行又切分到其他的数据库中。为了能够比较容易地判断各行数据切分到了哪个数据库中,切分总是需要按照某种特定的规则来进行的,如按照某个数字字段的范围,某个时间类型字段的范围,或者某个字段的hash值。

垂直扩展与水平扩展各有优缺点,一般一个大型系统会将水平与垂直扩展结合使用。

非结构化存储及应用

定义:

  • 相对于结构化数据而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。

存储:分布式存储

分布式文件系统是实现非结构化数据存储的主要技术,

  • Google File System(GFS)

  • Hadoop Distributed Filesystem(HDFS)

  • TFS:Taobao Filesystem

  • GlusterFS(去中心化设计)

  • Lustre,HPC

  • Ceph(内核级别构建)

  • Mogile Filesystem(分布式存储)

    ·API(php,java,perl,python)

  • Moose Filesystem(MFS)

  • FastDFS

半结构化存储及应用

定义:

  • 就是介于完全结构化数据(如关系型数据库、面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据, 半结构化数据模型具有一定的结构性,但较之传统的关系和面向对象的模型更为灵活。半结构数据模型完全不基于传统数据库模式的严格概念,这些模型中的数据都是自描述的。

  • 由于半结构化数据没有严格的schema定义,所以不适合用传统的关系型数据库进行存储,适合存储这类数据的数据库被称作“NoSQL”数据库。

存储:NoSQL 数据库

  • 被称作下一代的数据库,具有非关系型,分布式,轻量级,支持水平扩展且一般不保证遵循ACID原则的数据储存系统。“NoSQL”其实是具有误导性的别名,称作Non Relational Database(非关系型数据库)更为恰当。所谓“非关系型数据库”指的是:

  • 使用松耦合类型、可扩展的数据模式来对数据进行逻辑建模(Map,列,文档,图表等),而不是使用固定的关系模式元组来构建数据模型。

  • 以遵循于CAP定理(能保证在一致性,可用性和分区容忍性三者中中达到任意两个)的跨多节点数据分布模型而设计,支持水平伸缩。这意味着对于多数据中心和动态供应(在生产集群中透明地加入/删除节点)的必要支持,也即弹性(Elasticity)。

  • 拥有在磁盘或内存中,或者在这两者中都有的,对数据持久化的能力,有时候还可以使用可热插拔的定制存储。

  • 支持多种的‘Non-SQL’接口(通常多于一种)来进行数据访问。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据类型与分布式存储

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

第3篇:分布式数据库存储

一、分布式数据库存储在前面的章节;GreenPlum数据库是分布式架构数据库;表的数据分布在segment节点。那么表的数据根据什么策略来分布的?GreenPlum数据库性能依赖于跨数据节点均匀分布GreenPlum数据库查询响应时间由所有数据节点完成时间来度
第3篇:分布式数据库存储
2018-05-01

SpringBoot分布式文件存储数据库mongod

MongoDB是一个基于分布式文件存储的NoSQL数据库,由C++语言编写,旨在为Web应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富最像关系数据库的
2023-02-02

Linux主机与Ceph分布式存储

Linux主机与Ceph分布式存储的结合使用,可以充分利用Ceph的高可扩展性、高性能和自动故障恢复等优势,为Linux系统提供更可靠、高效的数据存储解决方案。在Linux主机上使用Ceph分布式存储,通常涉及以下几个关键步骤:安装和配置
Linux主机与Ceph分布式存储
2024-09-27

分布式存储数据保护方式是什么

分布式存储数据保护方式包括:1. 冗余备份:将数据分布在多个节点上,以确保数据的可靠性和可用性。如果某个节点出现故障,数据可以从其他节点恢复。2. 数据加密:对敏感数据进行加密,以保护数据的机密性和安全性。只有授权用户才能解密和访问数据。3
2023-05-30

分布式存储如何保证数据安全

分布式存储系统使用数据复制、纠删码和副本放置策略来保证数据可用性和容错能力。数据加密和密钥管理确保数据的机密性。快照、版本控制和安全协议保护数据免遭未经授权的访问和修改。监控、告警和安全审计帮助识别和应对安全风险。人员安全和最佳实践进一步加强数据保护,防止各种威胁。
分布式存储如何保证数据安全
2024-04-11

分布式存储如何保证数据安全

分布式存储系统通常使用多个存储节点来存储数据,因此在保证数据安全方面有以下几个关键因素:1. 数据冗余:分布式存储系统会将数据复制到多个节点上,以保证数据的冗余性。这样即使某个节点发生故障,系统仍然可以从其他节点获取数据,并且不会丢失数据。
2023-09-20

Cassandra如何进行数据分片和分布式存储

Cassandra是一个分布式数据库系统,它通过数据分片和分布式存储来实现高可用性和扩展性。数据分片是将数据分成小块,并分布存储在多个节点上。分布式存储是将这些数据块分布存储在多个节点上,以实现数据的冗余和高可用性。在Cassandra中
Cassandra如何进行数据分片和分布式存储
2024-03-06

java中关于String类型数据的存储方式

Java中String类型数据存储在常量池中,以字符串字面量形式存在。编译时创建唯一String对象,多个引用指向同一对象。常量池还存储其他字面值,优化内存和性能。String对象包含不可变字符数组,按块对齐存储。StringBuilder和StringBuffer类提供可变字符串表示,使用可变字符数组存储内容。
java中关于String类型数据的存储方式
2024-04-10

hdfs分布式存储数据的原理是什么

HDFS(Hadoop Distributed File System)是一种分布式文件系统,它由多个节点组成,每个节点都可以存储数据和执行计算任务。HDFS的原理主要包括以下几个方面:数据块划分:HDFS将文件划分为固定大小的数据块(通常
hdfs分布式存储数据的原理是什么
2024-04-09

深入分析C语言存储类型与用户空间内部分布

这篇文章主要介绍了C语言存储类型与用户空间内部分布,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2022-12-26

Teradata如何支持多种数据格式和数据类型的存储与查询

Teradata支持多种数据格式和数据类型的存储与查询,包括结构化数据和非结构化数据。Teradata提供了多种数据类型用于存储不同类型的数据,例如整数、浮点数、字符串、日期时间等。此外,Teradata还支持嵌套数据类型,如数组、结构体、
Teradata如何支持多种数据格式和数据类型的存储与查询
2024-04-09

prometheus数据存储类型有哪些

Prometheus 中的数据存储类型有以下几种:Memory:内存存储类型是最基本的存储类型,用于保存最近的指标数据。这种存储类型通常用于短期存储和快速访问,但是会受到内存限制的限制。Local disk:本地磁盘存储类型用于长期存储指
prometheus数据存储类型有哪些
2024-04-09

编程热搜

目录