MPP数据库(Vertica)

在这里插入图片描述

Vertica 是一款基于列存储的大规模并行处理(MPP)架构的数据库。它由关系数据库大师 Michael Stonebraker(2014 年图灵奖获得者)创建,于 2011 年被惠普收购,成为其核心大数据平台软件。

一、特点和优势

支持大规模结构化数据:可以存放多至 PB 级别的数据。

  • 列式存储和计算:通过列式计算和强大的主动数据压缩,大幅降低成本高昂的磁盘 I/O,执行查询的速度可提升 50 到 1000 倍,存储成本最高削减 90%。
  • “横向扩展式”MPP 架构:基于无共享的 MPP 架构,支持在线添加数量不限的 x86 工业标准服务器,可根据需求任意扩展解决方案。
  • 实时分析能力:通过内存与磁盘混合存储架构,以及原生支持 Kafka 消息系统的连接,支持数据实时装载和秒级分析。
  • 高可用性:使用类似 RAID 的功能为数据库提供高可用性,例如采用 k-safe 安全性机制,数据会按照多副本的形式存放,确保在部分节点出现故障时数据库仍能有效运转。在实际环境中,通常会根据物理机架的规则构建 fault group,以防止因机架断电导致数据库无法使用,尽可能提高数据库集群的高可用性。
  • 自动数据库设计:在数据库环境部署完成后,近乎不需要再调整任何数据库参数(只有负载均衡、连接上限等需要根据实际环境定义)便可充分利用服务器的资源。
  • 完整的关系数据库和 SQL 标准支持:支持关系数据库事务处理和 ACID 规范,支持 SQL-92/SQL-99/SQL-2003 标准,提供 ODBC、JDBC、ADO.NET 接口规范驱动,完全兼容传统关系数据库的开发、使用和管理习惯,可以轻松与现有的 ETL 和报表工具集成,保护客户已有的投资。
  • 可扩展的数据库内部分析框架:采用面向用户定义的过程式分析的强大开发框架,实现了对于数据库内部处理的开放式访问。除了使用内置的 SQL 分析和聚合函数外,还可借助 C++/Java/R 语言软件开发人员套件(SDK)定义自己的定制函数,SDK 功能可保证沙盒安全,并使函数能够并行运行以加快运行速度。
  • 原生支持 Hadoop:可以作为 SQL 分析引擎直接部署到 Hadoop 集群中,直接存取 HDFS 上的数据;也可以通过标准 SQL 直接访问 Hive 等管理的数据,并与 Vertica 管理的数据进行关联分析;另外 Vertica 还提供应用编程接口(API)支持与 MapReduce、Pig 等框架构建结构化、半结构化和非结构化深度融合的大数据分析应用。
  • 自动优化和性能管理:通过强大的 API 集合来监控系统的资源、后台进程、工作负载及性能,通过工作负载分析和数据库设计器自动优化数据库,简化系统管理。
    在 Vertica 中,数据库的物理层对象为 projection(其他关系型数据库为 table),且 Vertica 的 projection 均是有序存放的(规范建表必须显示指明 ORDER BY,否则默认取前 30 列升序入库)。它还实现了 read-optimized store(ROS)和 write-optimized store(WOS),ROS 负责管理存储在磁盘上的数据,而 WOS 运行在内存中,用于应对频繁的插入、删除、更新等操作,当 WOS 中的数据到达一定量之后,会运行 tuple mover 将其移动至 ROS。
    此外,Vertica 支持分区(partitioning)和分段(segmentation)。分区在物理上表现为在一个节点内部对存储划分不同的 logical region,以达到并行处理不同分区的能力;分段则是按照某个字段 hash 为一个个独立的 segments,然后将 segments 分发到不同的 nodes 存储,可在节点间扩展。其 projection 可以有副本,副本也按照 segment 存储,这一方面增加了系统的可用性,另一方面也能够在一定程度上提高并发性。
    同时,Vertica 提供了较为完善的应用集成,包括 DBD 分析引擎、Vertica MC 控制管理平台、资源池配置(WLM)、 scheduler 任务计划对接 Kafka 等。

二、缺点

成本较高:Vertica 是一款商业数据库,其使用许可费用相对较高,这可能对一些预算有限的用户造成一定的负担。例如,有网友提到其价格昂贵,一个 T 数据可能需要 15 万左右(并且是按入库前的大小计算,Vertica 进库后会压缩 10 倍)。

  • 不适合某些特定操作:虽然它适合大量数据和聚合操作,但不太适合扫描少量数据,也不太适合随机的更新以及含有删除和更新的实时操作。对于批量更新,不同的列式数据库表现各异,有些优化较好的(如 Vertica )表现不错,而有些则表现较差。
  • 扩展效率局限性:Vertica Enterprise Mode 架构的扩展效率存在一定局限性,扩展过程实施较为方便,但 rebalance 操作却较为费时费力。该架构只有扩充现有节点的倍数才能提升扩展效率,反之数据 rebalance 将十分耗时,这对于数据量较大的数仓环境不太友好。
    然而,需要注意的是,数据库的选择应该根据具体的应用场景和需求来决定。Vertica 数据库在很多方面也具有显著的优势,例如极高的装载速度、高效的压缩率、适合大量数据和聚合操作等。在实际应用中,用户可以根据自身的业务需求、数据特点、预算等因素综合考虑,选择最适合的数据库解决方案。同时,随着技术的不断发展,Vertica 也在不断改进和完善,一些缺点可能在后续的版本中得到改善。

三、应用场景

  1. 大数据分析:能够快速处理大规模数据集,适用于金融、电信、零售等行业的复杂数据分析需求。
  2. 实时数据仓库:支持快速的数据加载和查询,可以用作实时数据仓库,满足实时分析和报表需求。
  3. 物联网分析:例如车联网,可处理来自车辆传感器的数据,用于驾驶员安全监控、预防性维护和智能路线优化;在智能建筑中,可分析建筑系统的传感器数据以控制设备并预测和解决问题;在产品监测方面,能监控产品运行状况和性能,主动解决服务和维护问题,还能分析用户行为以用于未来产品开发;智能计量领域可用于跟踪各地区的消费和需求数据,帮助个性化客户体验、分析电网消耗和管理需求等。
  4. 日志分析:可以快速处理大量的日志数据,帮助企业实时监控和分析系统运行情况。
  5. 客户行为分析:通过分析客户相关数据,深入了解客户行为模式,以支持精准营销、个性化推荐等应用。
  6. 通信和网络分析:处理通信和网络领域产生的大量数据,帮助优化网络性能、识别潜在问题等。
  7. 欺诈监控和风险管理:分析交易数据等,以识别欺诈行为和潜在风险。
  8. 业务智能:提供强大的数据分析和可视化功能,助力企业进行业务智能分析和决策。

四、发展趋势

Vertica 数据库未来可能会呈现以下一些发展趋势:

  • 云原生和混合部署:进一步加强对云原生环境的支持,提供更灵活的混合部署能力,以满足不同用户在公共云、私有云或混合云环境中的需求。例如,Vertica 12 针对云优化的架构提升了用于数据 ETL 过程和数据摄取的子集群效率,还增强了 AWS S3 的数据共享,并将对 Kubernetes 的支持扩展至更多云存储服务。
  • 性能优化和扩展:持续提升数据库的性能和可扩展性,以处理更大规模的数据集和更复杂的分析任务。例如通过优化存储、查询处理和分布式计算等方面,快速自动化分割大型的未分割表,加速 Parquet 文件分析等,从而更好地适应数据量的快速增长和业务需求的不断变化。
  • 高级分析和机器学习集成:更深入地融合高级分析和机器学习功能。包括增强数据库内分析能力、端到端的机器学习能力,帮助用户在数据库平台上管理和操作机器学习模型等,为用户提供更强大的数据分析和预测能力。如 Vertica 12 新增了用于 Python pickle 的 VerticaPy 功能、增强的 Graphviz 包,以及优化存储程序等。
  • 增强数据集成和开放性:与更多的数据源、分析工具和技术进行无缝集成,扩大对主流分析生态的支持,提供更广泛的接口和协议,以方便用户在不同系统之间进行数据交互和共享。
  • 自动化和智能化管理:利用自动化技术来简化数据库的管理和运维,例如自动优化查询计划、自动调整资源分配等,以降低管理成本并提高效率。同时,可能会引入更多的智能化功能,例如自动识别数据模式、自动进行数据分区等。
  • 安全和合规性:随着数据安全和合规性要求的不断提高,数据库将更加注重数据的安全性保护,包括加密技术、访问控制、审计等方面的增强,以满足严格的法规和企业安全标准。
    数据库技术的发展受到多种因素的影响,包括市场需求、技术创新、行业竞争等。Vertica 数据库的具体发展方向还需结合市场动态、用户需求以及技术进步等因素来综合判断。Micro Focus 等相关公司也会根据这些因素不断调整和改进产品,以保持其在数据分析领域的竞争力。
    总体而言,与传统的解决方案相比,Vertica 可以以较低的成本,实现数倍甚至千倍的性能提升,适用于对性能、扩展性和实时分析有较高要求的大数据分析场景。但具体的使用效果还需根据实际的业务需求、数据规模和使用场景等因素进行评估。其版本也在不断更新,以提供更多的功能和优化。
  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值