大数据存储综述

时间:2024-03-23 10:38:44

本文内容源自网络整理,更多详细内容请阅读参考文献的原文。

1 存储方式

1.1 块存储

块存储就好比硬盘一样,直接挂载到主机,一般用于主机的直接存储空间和数据库应用的存储。它分两种形式:

  • DAS:一台服务器一个存储,多机无法直接共享,需要借助操作系统的功能,如共享文件夹。
  • SAN:金融电信级别,高成本的存储方式,涉及到光纤和各类高端设备,可靠性和性能都很高,除了贵和运维成本高,基本都是好处。

云存储的块存储:具备SAN的优势,而且成本低,不用自己运维,且提供弹性扩容,随意搭配不同等级的存储等功能,存储介质可选普通硬盘和SSD。

1.2 文件存储

文件存储与较底层的块存储不同,上升到了应用层,一般指的就是NAS ,一套网络储存设备,通过TCP/IP进行访问,协议为NFSv3/v4。由于通过网络,且采用上层协议,因此开销大,延时肯定比块存储高。一般用于多个云服务器共享数据,如服务器日志集中管理、办公文件共享。

1.3 对象存储

对象存储具备块存储的高速以及文件存储的共享等特性,较为智能,有自己的CPU、内存、网络和磁盘,比块存储和文件存储更上层,云服务商一般提供用户文件上传下载读取的Rest API,方便应用集成此类服务。

1.4 总结

  • 块存储:是和主机打交道的,如插一块硬盘。
  • 文件存储:NAS,网络存储,用于多主机共享数据。
  • 对象存储:跟自己开发的应用程序打交道,如网盘。

它们的层级是越来越高。

2 大数据的存储方式

2.1 分布式系统

分布式系统包含多个自主的处理单元,通过计算机网络互连来协作完成分配的任务,其分而治之的策略能够更好的处理大规模数据分析问题。主要包含以下两类:

  • 分布式文件系统:存储管理需要多种技术的协同工作,其中文件系统为其提供最底层存储能力的支持。分布式文件系统 HDFS 是一个高度容错性系统,被设计成适用于批量处理,能够提供高吞吐量的的数据访问。
  • 分布式键值系统:分布式键值系统用于存储关系简单的半结构化数据。典型的分布式键值系统有Amazon Dynamo,以及获得广泛应用和关注的对象存储技术(Object Storage)也可以视为键值系统,其存储和管理的是对象而不是数据块。

2.2 NoSQL数据库

关系型数据库已经无法满足Web 2.0的需求。主要表现为:无法满足海量数据的管理需求、无法满足数据高并发的需求、高可扩展性和高可用性的功能太低。

NoSQL数据库的优势:可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web 2.0应用,具有强大的横向扩展能力等,典型的NoSQL数据库包含以下几种:键值数据库、列族数据库、文档数据库和图形数据库。

2.3 云数据库

云数据库是基于云计算技术发展的一种共享基础架构的方法,是部署和虚拟化在云计算环境中的数据库。云数据库并非一种全新的数据库技术,而只是以服务的方式提供数据库功能。云数据库所采用的数据模型可以是关系数据库所使用的关系模型(微软的SQLAzure云数据库都采用了关系模型)。同一个公司也可能提供采用不同数据模型的多种云数据库服务。

3 大数据存储技术路线

3.1 MPP架构的新型数据库集群

采用MPP(Massive Parallel Processing)架构的新型数据库集群,重点面向行业大数据,采用Shared Nothing架构,通过列存储、粗粒度索引等多项大数据处理技术,再结合MPP架构高效的分布式计算模式,完成对分析类应用的支撑,运行环境多为低成本PC Server,具有高性能和高扩展性的特点,在企业分析类应用领域获得极其广泛的应用。

这类MPP产品可以有效支撑PB级别的结构化数据分析,这是传统数据库技术无法胜任的。对于企业新一代的数据仓库和结构化数据分析,目前最佳选择是MPP数据库。

3.2 基于Hadoop的技术扩展

基于Hadoop的技术扩展和封装,围绕Hadoop衍生出相关的大数据技术,应对传统关系型数据库较难处理的数据和场景,例如针对非结构化数据的存储和计算等,充分利用Hadoop开源的优势,伴随相关技术的不断进步,其应用场景也将逐步扩大,目前最为典型的应用场景就是通过扩展和封装Hadoop来实现对互联网大数据存储、分析的支撑。对于非结构、半结构化数据处理、复杂的ETL(Extract-Transform-Load)流程、复杂的数据挖掘和计算模型,Hadoop平台更擅长。

3.3 大数据一体机

大数据一体机是一种专为大数据的分析处理而设计的软、硬件结合的产品,由一组集成的服务器、存储设备、操作系统、数据库管理系统以及为数据查询、处理、分析用途而特别预先安装及优化的软件组成,高性能大数据一体机具有良好的稳定性和纵向扩展性。

4 分布式文件系统

下面列举了常用的分布式文件系统:

  • GFS也就是Google File System,Google公司为了存储海量搜索数据而设计的专用文件系统。尽管Google公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为开源软件发布。
  • HDFS(Hadoop Distributed File System)源于Google在2003年10月份发表的GFS(Google File System) 论文,它其实就是 GFS 的一个克隆版本。
    开源 http://hadoop.apache.org/
  • Ceph是加州大学圣克鲁兹分校的Sage weil攻读博士时开发的分布式文件系统。由于ceph使用btrfs文件系统,而btrfs文件系统需要Linux 2.6.34以上的内核才支持。
    开源 https://ceph.com/
  • Lustre是源自Linux和Cluster的混成词。最早在1999年,由皮特·布拉姆创建的集群文件系统公司开始研发,于2003年发布Lustre 1.0。采用GNU GPLv2开源码授权。 开源 http://lustre.org/
  • 适合存储小文件、图片的分布文件系统有:
    MogileFS(https://github.com/mogilefs/)
    mooseFS(https://moosefs.com/)
    FastFS(https://github.com/happyfish100/fastdfs)
    TFS(http://tfs.taobao.org/)
    GridFS(https://www.mongodb.com

参考文献:

  1. chen yue . https://www.zhihu.com/question/21536660/answer/33279921
  2. 大数据的存储方式 . http://www.sohu.com/a/117867612_421062
  3. 三种最典型的大数据存储技术路线 . https://www.cnblogs.com/liangxiaofeng/p/5166795.html
  4. 各种分布式文件系统简介及适用场景 . https://blog.csdn.net/rickiyeat/article/details/53895987

大数据存储综述