• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

分布式存储里的文件存储和数据库存储有什么区别

首先你要区分使用方式不同,对于文件存储,往往调用的接口就是打开文件,读写文件和关闭文件。对于数据库,操作的对象就是表格,通过SQL语句实现表格的定义、插入删除和属性修改,所以数据库往往更加的灵活。

一、分布式存储里的文件存储和数据库存储的区别

首先你要区分使用方式不同,对于文件存储,往往调用的接口就是打开文件,读写文件和关闭文件。对于数据库,操作的对象就是表格,通过SQL语句实现表格的定义、插入删除和属性修改,所以数据库往往更加的灵活,也更加的复杂。分布式存储中,常见的接口一般就是文件、对象和表格等。这是从使用者角度来说。

我们再说一下存储的实现,我们可以通过文件存储的方式实现数据库存储的部分功能。为什么这么说呢,因为数据库存储不仅要存储数据,还要涉及到索引和事务的ACID。对于数据库中的数据,可以通过文件的形式保存,同时还要实现索引更新、事务保证等等,所以数据库存储更加的复杂。

那我们最后说说分布式的区别,分布式系统中,一份文件可能对应一份物理文件,一份文件也可能被切割打散到不同的机器上,这是不同的实现方式,可以参考下GFS和Haystack的设计。对于文件存储,最主要的是一致性问题处理,有强一致同步方法,亚马逊提出的nwr模型,还有paxos/raft等多数派协议。这些方法也可以用来存储数据库的数据,但是分布式数据库还要在这之上实现分布式事务等复杂技术,可以看一下目前流行的数据库论文spanner和Aurora。

延伸阅读:

二、Vertica是什么

Vertica是一款基于列存储的MPP(massively parallel processing)架构的数据库。

它可以支持存放多至PB(Petabyte)级别的结构化数据。Vertica是由关系数据库大师Michael Stonebraker(2014 年图灵奖获得者)所创建,于2011年被惠普收购并成为其核心大数据平台软件。Vertica 采用无共享的MPP 架构,基于工业标准的x86 服务器,拥有高可扩展性。Vertica 集群中的所有节点100%对等,集群中没有主节点或其他共享资源。通过增加节点,就可以线性地扩展集群的计算能力和数据处理容量。Vertica 是真正的纯列式数据库,优化器和执行引擎可以忽略表中与查询无关的列。Vertica 不仅仅按列式存储数据,还主动地根据列数据的特点和查询的要求选用优异的算法对数据进行排序和编码压缩,这就极大地降低磁盘I/O 消耗。同时,Vertica 的执行引擎和优化器也是基于列式数据库设计的,编码压缩过的列数据在Vertica 的执行引擎中进行过滤、关联、分组等操作时不需要解反编码,从而大大降低了CPU 和内存消耗。

相关文章