vertica数据库总结

研究使用vertica有一段时间了,对它也有了一定的了解。总的来说,vertica是一款性能强大,功能全面,很容易使用的MPP数据库,当然,要是这款数据库能够开源就更好了。

对于一款数据库,客户选择它的理由不外乎从以下几个方面考虑:性能、成本、可靠性和稳定性、易用性。下面将从这几个方面大概介绍一下vertica的特点,之前已经有博客对vertica的一些功能做描述,这篇博文算是一个总结。

性能提升
  • vertica是一款真正的列式数据库,这点有别于一些号称支持列式存储的数据库。vertica的优化器和执行引擎都是基于列式存储设计的。列存能够带来很大的好处----较少IO。因为大多数时候,执行一个查询不需要去读取所有字段。行存会扫描一个表的所有字段,而列存只需读取相应的列,这将大大减小IO。
  • vertica支持主动编码压缩,延迟物化,延迟解压技术。得益于列式存储,数据的压缩比会大大提高,这将会节省存储空间。而延迟物化(解码),延迟解压技术,使得数据库最终读取的只有最终结果集,这将会大大的减少数据库的IO工作量。
  • projection。vertica的实际物理架构是projection,数据存储在projection中,也通过projection来实现高可用性。有多种projection,而特定于查询的projection,聚合projection会在大多数情况下提升数据库的查询性能。可参考projections以及聚合projections。
  • flatten table。vertica中的flatten table,能够将表之间join的结果存储到表中,从而加快join查询。可参考flatten table。
  • 混合存储。vertica中通过在内存中增加一个wos空间,隔离实时数据加载和分析查询。这对于实时数据加载的同时,进行分析查询很有用。可参考数据加载。
节约成本
  • 由前文所介绍的,列存会带来更好的压缩性能,这可以节省硬件成本。
  • 所有节点完全对等。相比其他master-slave结构的MPP数据库,可以更高效的利用硬件。
  • 混合负载。vertica支持将不同的schema,表,甚至表的部分分区存储到不同的存储介质上,这样可以将不常使用的数据存储到成本更低的存储介质上。
可靠性与稳定性
  • 通过对projections的自动冗余备份,实现数据的高可用性。
  • 大规模集群与容错组。
  • 备份与恢复功能。支持全量、增量、部分备份与恢复。
可扩展性与易用性
  • 无共享架构带来的可扩展性。可以很方便的增加,减少节点。
  • 支持EON模式和弹性布置。可参考EON模式。
  • 分区以及分层分区。更好的管理分区,如将近一个月的数据按天分区,近一年的数据按月分区,近3年的数据按年分区。可参考vertica分区中的介绍。
  • 多租户资源管理。vertica通过资源池来对用户资源进行分配管理。可参考vertica资源管理。
  • DBD功能。vetica的数据库自动优化设计(DBD)可以很方便的给出整体及特定于查询的projection设计,大大节省了DBA的工作量。可参考Database Designer。
其他

对SQL的非常好的支持;支持ODBC,JDBC,以及其他预言开发的插件及函数;支持与Hadoop,kafka,spark等大数据组件的集成;支持库内机器学习和高级分析;支持空间地理分析;支持时序数据库特性。

你可能感兴趣的:(Vertica)