大规模并行分析(MPP)数据库(Analytical Massively Parallel Processing (MPP) Databases)是针对分析工作负载进行了优化的数据库:聚合和处理大型数据集。MPP数据库往往是列式的,因此MPP数据库通常将每一列存储为一个对象,而不是将表中的每一行存储为一个对象(事务数据库的功能)。这种体系结构使复杂的分析查询可以更快,更有效地处理。
这些分析数据库将其数据集分布在许多机器或节点上,以处理大量数据(因此得名)。这些节点都包含自己的存储和计算功能,从而使每个节点都可以执行查询的一部分。
在过去的十年中,分析MPP数据库的激增和成本下降为数据驱动型组织提供了巨大的机会来运营和分析比以往更大的数据集。这些数据库是不断壮大的分析师工具包的绝妙补充,但同时也为体系结构带来了额外的复杂性。
数据仓库真正适合什么?
典型的分析工作量
MPP数据库非常擅长常见的分析工作负载,这些工作负载通常以对子集的查询为特征,并在广泛的行范围内进行汇总。这是由于它们的列式体系结构允许他们仅访问完成查询所需的字段(与事务性数据库相反,事务性数据库必须连续访问所有字段)。
列式体系结构还为MPP数据库提供了对分析工作负载有用的其他功能。这些功能因数据库而异,但通常包括压缩类似数据值,有效索引非常大的表以及处理宽的非规范化表的功能。
数据集中化
组织通常使用分析型MPP数据库作为数据仓库或集中式存储库,其中包含组织内部生成的所有数据,例如交易销售数据,Web跟踪数据,营销数据,客户服务数据,库存/后勤数据,人力资源/招聘数据以及系统日志数据。由于分析MPP数据库可以处理大量数据,因此组织可以轻松地依靠这些数据库来存储数据,还可以支持来自这些各种业务功能的分析工作负载。
线性可伸缩性
通过向系统添加更多服务器,分析MPP数据库可以轻松地线性扩展其计算和存储功能。这与垂直扩展计算和存储功能相反,后者涉及升级到更大,功能更强大的单个服务器,并且通常会在规模上遇到障碍。分析型MPP数据库能够如此快速,轻松和高效地进行横向扩展,以使按需数据库供应商能够根据查询的大小自动执行该过程来按比例放大或缩小系统。
数据仓库解决方案
自我管理的MPP数据库
按需MPP数据库
MPP分析架构
大规模并行处理一词指的是装入这些数据库的表分布在群集中的每个节点上的事实,以及发出查询时每个节点同时工作以处理驻留在其上的数据的事实。
分布式架构
分析性MPP数据库旨在在许多单独的服务器或节点上并行运行查询。这意味着,通过将更多节点添加到群集,可以将相同的工作负载分配给更多服务器并更快地完成。
尽管分析型MPP数据库有时可以在某些方面进行扩展,但它们的大优点是通过向系统中添加更多节点,可以相对轻松地水平扩展数据库系统。
大规模并行处理(MPP)
尽管不同的系统采用不同的方法来耦合数据存储和计算查询,采用不同的策略将数据从一个节点移动到另一个节点,但是所有MPP系统都非常快,因为“”可以制定查询计划,然后分配数据的实际工作量。对许多工作人员执行查询。
托管与本地实施
分析型MPP数据库已经存在了几十年,但是在过去十年中,它们的成本和管理它们的复杂性已大大降低。直到近,的选择是自我托管这些数据库。但是近,它们已经迁移到云中。
某些分析数据仓库仅可通过托管体系结构使用。例如,Amazon Redshift,Snowflake和Google BigQuery仅通过云提供。像Teradata这样的其他产品则可以在内部部署,打包为设备(捆绑软件和硬件)或通过云中的托管模型进行部署。
HPE Vertica是分析MPP数据库类别中提供软件的数据库,您可以使用该软件在商品硬件之上构建自己的分析数据库。对于大规模实施,这种类型的解决方案为特殊用例提供了更大的灵活性和定制性。
MPP分析数据库的约束
复杂
与分布式MPP数据库相关的主要约束是,与事务性数据库相比,它们需要的规划和设置类型不同。设置初始的Extract-Transform-Load(ETL)管道来将数据从其源移动到数据仓库可能是一个相当大的项目(尽管许多供应商现在都提供服务来简化此过程)。
可扩展性
在处理多个数据源时,尤其是在无法完全控制这些数据源中的数据量时,规划群集内所需的资源也具有挑战性。许多云托管的mpp数据库技术都提供了自动扩展功能,但并非全部都可以。
批量加载/延迟
通常,由于分析MPP数据库的构建方式,您想要数据越接近“实时”,数据工程任务就越具有挑战性。这是因为这些技术通常针对批量加载进行了优化。针对整个集群中的分布式读取优化数据存储是一项劳动密集型任务。一些分布式MPP数据库专门提供混合存储或其他服务来解决此问题。许多组织维护其事务数据库的副本只是为了能够实时访问数据集的这一部分。
优化分析MPP数据库
根据您使用的是按需MPP数据库解决方案还是托管MPP数据库解决方案以及使用的是哪种,针对分析MPP数据库进行性能调整的注意事项会大不相同。
重要的是要注意,与类似成本的事务数据库相比,MPP数据库解决方案通常可以处理更大的数据量,因此在开始考虑优化和调整之前,将能够处理更多的数据。
就是说,当您到达需要调整性能的阶段时,与自托管解决方案相比,托管MPP解决方案将为您处理更多的细节,这将需要您做更多的工作。