MPP 数据库

网友投稿 328 2023-11-27

大规模并行分析(MPP)数据库(Analytical Massively Parallel Processing (MPP) Databases)是针对分析工作负载进行了优化的数据库:聚合和处理大型 数据集。MPP数据库往往是列式的,因此MPP数据库通常将每一列存储为一个对象,而不是将表中的每一行存储为一个对象( 事务数据库的功能)。这种 体系结构使复杂的分析查询可以更快,更有效地处理。

MPP 数据库

这些分析数据库将其数据集分布在许多机器或节点上,以处理大量数据(因此得名)。这些节点都包含自己的存储和计算功能,从而使每个节点都可以执行查询的一部分

典型的分析工作量

MPP数据库非常擅长最常见的分析工作负载,这些工作负载通常以对子集的查询为特征,并在广泛的行范围内进行汇总。这是由于它们的列式体系结构允许他们仅访问完成查询所需的字段(与事务性数据库相反,事务性数据库必须连续访问所有字段)。

列式体系结构还为MPP数据库提供了对分析工作负载有用的其他功能。这些功能因数据库而异,但通常包括压缩类似数据值,有效索引非常大的表以及处理宽的非规范化表的功能

线性可伸缩性

通过向系统添加更多服务器,分析MPP数据库可以轻松地线性扩展其计算和存储功能。这与垂直扩展计算和存储功能相反,后者涉及升级到更大,功能更强大的单个服务器,并且通常会在规模上遇到障碍。分析型MPP数据库能够如此快速,轻松和高效地进行横向扩展,以使 按需数据库供应商能够根据查询的大小自动执行该过程来按比例放大或缩小系统

MPP分析架构

大规模并行处理一词指的是装入这些数据库的表分布在群集中的每个节点上的事实,以及发出查询时每个节点同时工作以处理驻留在其上的数据的事实。

分布式架构

分析性MPP数据库旨在在许多单独的服务器或节点上并行运行查询。这意味着,通过将更多节点添加到群集,可以将相同的工作负载分配给更多服务器并更快地完成。

尽管分析型MPP数据库有时可以在某些方面进行扩展,但它们的最大优点是通过向系统中添加更多节点,可以相对轻松地水平扩展数据库系统。

大规模并行处理(MPP)

尽管不同的系统采用不同的方法来耦合数据存储和计算查询,采用不同的策略将数据从一个节点移动到另一个节点,但是所有MPP系统都非常快,因为“领导者”可以制定查询计划,然后分配数据的实际工作量。对许多工作人员执行查询。

批量加载/延迟

通常,由于分析MPP数据库的构建方式,您想要数据越接近“实时”,数据工程任务就越具有挑战性。这是因为这些技术通常针对批量加载进行了优化。针对整个集群中的分布式读取优化数据存储是一项劳动密集型任务。一些分布式MPP数据库专门提供混合存储或其他服务来解决此问题。许多组织维护其 事务数据库的副本只是为了能够实时访问数据集的这一部分

OLTP(OnLine Transaction  Processing  ,联机事务处理)系统 例如mysql。擅长事务处理,在数据操作中保持着很强的一致性和原子性 ,能够很好的支持频繁的数据插入和修改 ,但是,一旦数据量过大,OLTP便力不从心了。

OLAP(On-Line Analytical Processing,联机分析处理)系统 例如Greenplum。不特别关心对数据进行输入、修改等事务性处理,而是关心对已有 的大量数据进行多维度的、复杂的分析的一类数据系统 

1 海量数据的分析需求

传统数据库无法支持大规模集群与PB级别数据量

单台机器性能受限、成本高昂,扩展性受限

2 支持复杂的结构化查询(这里是重点)

复杂查询经常使用多表联结、全表扫描等,牵涉的数据量往往十分庞大;支持复杂sql查询和支持大数据规模;

3  Hadoop技术的先天不足

Hive等sql-on-hadoop性能太慢,分析场景不一样,SQL兼容性与支持不足

大数据分析:MPP数据库做大数据计算或分析平台非常适合,例如: 数据仓库系统、历史数据管理系统、数据集市等。

有很强的并行数据计算能力和海量数据存储能力,但是他不擅长高频的小规模数据插入、修改、删除,每次事务处理的数据量不大。这类数据衡量指标是TPS,适用的系统是OLTP数据库。

所以,报表统计分析、运维统计数据,快速生成报表展示都可以使用mpp数据库。

符合几个条件:不需要更新数据,不需要频繁重复离线计算,不需要并发大。

有上百亿以上离线数据,不更新,结构化,需要各种复杂分析的sql语句,那就可以选择他。几秒、几十秒立即返回你想要的分析结果。例如sum,count,group by,order,好几层查询嵌套,在几百亿数据里分分钟出结果

MPPDB架构

MPP 采用完全并行的MPP + Shared Nothing 的分布式扁平架构,这种架构中的每一个节点(node)都是独立的、自给的、节点之间对等,而且整个系统中不存在单点瓶颈,具有非常强的扩展性。

MPP数据库有对SQL的完整兼容和一些事务的处理能力,对于用户来说,在实际的使用场景中,如果数据扩展需求不是特别大,需要的处理节点不多,数据都是结构化的数据,习惯使用传统的RDBMS的很多特性的场景,可以考虑MPP,例如Greenplum/Gbase等。

MPPDB与Hadoop都是将运算分布到节点中独立运算后进行结果合并(分布式计算),但由于依据的理论和采用的技术路线不同而有各自的优缺点和适用范围。两种技术以及传统数据库技术的对比如下:

Hadoop在处理非结构化和半结构化数据上具备优势,尤其适合海量数据批处理等应用要求。 MPP适合替代现有关系数据机构下的大数据处理,具有较高的效率。 MPP适合多维度数据自助分析、数据集市等;Hadoop适合海量数据存储查询、批量数据ETL、非机构化数据分析(日志分析、文本分析)等

数据开发:

小表选择Replication方式(例如表大小为5MB),会在每一个DataNode上存储一份全量表数据

大表选择Hash方式,会根据hash值把数据映射到对应的DataNode上

使用Hash分表策略时,需要选择合理的分布列(即字段),选择的列要具有随机性,以保证数据均匀的分布到各个DataNode上。检查数据是否分布均匀的SQL如下

来自 “ ITPUB博客 ” ,链接:http://blog.itpub-/69949806/viewspace-2900590/,如需转载,请注明出处,否则将追究法律责任。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Mysql索引失效场景有哪些
下一篇:怎么确定Redis有性能问题及如何解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~