大数据领域,实时分析系统(在线查询)是最常见的一种场景,前面写了一个《 实时分析系统 (HIVE/HBASE/IMPALA) 浅析 》讨论业界当前常见的方案。互联网公司用得比较多是 HIVE/HBASE ,如腾讯基于 HIVE 深度定制改造,改名为 TDW ,小米等公司选用 HBASE 等。关于 HIVE/HBASE/IMPALA 介绍等可以看我前面的文章。
当前在实时分析系统中,最难的是多维度复杂查询,目前没有一个很好的解决方案,这两天和人讨论到 MPP DB (分布式数据库,以 Greenplum 为最典型代表)。如果从性能来讲, MPP DB 在多维复杂查询性能确实要好于 HIVE/HBASE/IMPALA 等,因此有不少声音认为, MPP DB 是适合这种场景的未来的解决方案。 MPP DB 看似对多维度复杂查询性能较好,但是同时有两个致命的缺点,大家选型的时候不得不考虑:
1、 扩展性:
MPP DB 都号称都能扩展到 1000 个节点以上,实际在应用过程中,就我目前从公开资料看到的不超过 100 个节点,如支付宝中用 Greenplum 来做财务数据分析的最大一个集群 60 多台机器。另外和 Greenplum 公司交流,在广东移动最大的用来做数据存储的,也就 100 台以内。这和 hadoop 动不动 4,5 千个节点一个节点集群简直不在一个数量级上。
为什么 MPP DB 扩展性不好?
有很多原因,有产品成熟度,也有应用广度的问题,但是最根本的还是架构本身的问题。讲到架构这里就要先讲下 CAP 原则:
Consistency( 一致性 ), 数据一致更新,所有数据变动都是同步的
Availability( 可用性 ), 好的响应性能
Partition tolerance( 分区容错性 ) 可靠性
定理:任何 分布式 系统只可同时满足二点,没法三者兼顾。
忠告:架构师不要将精力浪费在如何设计能满足三者的完美 分布式 系统,而是应该进行取舍。
MPP DB 还是基于原 DB 扩展而来, DB 里面天然追求一致性( Consistency ),必然带来分区容错性较差。集群规模变得太大,业务数据太多时, MPP DB 的元数据管理就完全是一个灾难。元数据巨大无比,一旦出错很难恢复,动不动导致毁库。
所以 MPP DB 要在扩展性上有质的提示,要对元数据,以及数据存储有架构上的突破,降低对一致性的要求,这样扩展性才能提升,否则的话很难相信一个 MPP DB 数据库是可以容易扩展的。
2、 并发的支持:
一个查询系统,设计出来就是提供人用的,所以能支持的同时并发越高越好。 MPP DB 核心原理是一 个大的查询通过分析为一一个子查询,分布到底层的执行,最后再合并结果,说白了就是通过多线程并发来暴力 SCAN 来实现高速。 这种暴力 SCAN的方法,对单个查询来说,动用了整个系统的能力,单个查询比较快,但同时带来用力过猛的问题,整个系统能支持的并发必然不高,从目前实际使用的经验来说,也就支持50~100的并发能力。
当前HBASE/IMPALA应对复杂查询时,也是通过全盘SCAN的方法来实现的,这种场景下,硬盘数量越多越好,转速越快越好。HBASE为什么号称支持上千并发,这也是在特定的场景下(查询时带用户标示,即带row key)才能实现的,复杂查询场景下,什么系统都歇菜。
所以MPP DB应用场景已经非常明显了,适合小集群(100以内),低并发的(50左右)的场景。MPP DB未来是不是趋势,我不知道,但是至少目前来看,用MPP DB来应对大数据的实时分析系统是非常吃力的。
相关推荐
在唯品会大数据实时OLAP升级过程中,谢麟炯提出了多个解决方案,包括使用商业敏捷BI工具、GreenPlum MPP数据库作为数据仓库的存储、计算介质、数据仓库和OLAP分析混用同一个数据库实现等。同时,谢麟炯也分享了...
MPP数据库设计用于处理海量数据,尤其在数据分析和决策支持系统中表现出色。随着互联网和移动互联网的快速发展,数据的来源、类型和增长速度都发生了革命性的变化,传统的RDBMS(关系型数据库管理系统)逐渐无法满足...
IBM的大数据分析解决方案涵盖了数据的整合、治理、分析和应用等多个层面,其中包括Hadoop系统、数据仓库、流计算和内容分析。Hadoop作为分布式处理框架,能处理PB级别的数据,而IBM的解决方案则进一步增强了Hadoop的...
IBM的解决方案涵盖了多个层面,包括Hadoop系统、数据仓库、流计算、信息整合与治理、应用开发、内容管理、决策管理、风险分析、商业智能和预测分析等。Hadoop作为大数据处理的核心,允许企业处理和存储PB级别的数据...
包括Hadoop、Hive、离线计算、实时计算、数据库、数据仓库、维度建模以及大规模并行处理MPP,还将介绍阿里云的一些大数据产品,如MaxCompute、DataWorks、数据集成、机器学习PAI和AnalyticDB。 Hadoop是大数据处理...
Greenplum作为一个大规模并行处理(MPP)架构的开源数据库系统,特别适用于大数据存储、计算、分析和挖掘的应用场景。在本篇文章中,我们将探讨Greenplum数据库的核心概念、架构特点、核心组件、SQL执行过程等关键...
大数据的应用不再局限于传统的数据仓库和商务智能,而是涵盖了实时分析、内存数据库、NoSQL解决方案等多个方向。 Intel Information Technology指出,大数据市场的发展趋势包括了数据分析的深化和实时性提升。例如...
通过64位Linux系列和X86架构的硬件及操作系统,FusionInsight MPPDB构建大规模并行处理集群,实现高效的数据迁移和SQL开发,同时具备完整的工具链和集群管理功能。 综上所述,华为在大数据领域的实践和创新,不仅...
而Scale-Out,或横向扩展,通过增加更多的服务器节点来提高处理能力,适用于大数据和高并发场景,比如Hadoop、MPP DB、NoSQL数据存储、HPC、媒体流和Web前端。例如,Hadoop的MapReduce计算框架和HBase/HDFS就采用了...
大数据分析架构的一个关键特征是在线处理,这要求系统具备实时性。随着技术的进步,内存数据库和MPP(Massively Parallel Processing)数据库如Greenplum和Vertica,以及后来的Spark,提供了更高效的数据处理能力。...
7. **实时分析**:理解GaussDB-OLAP在实时数据分析中的应用,如流计算和实时报表生成。 8. **备份恢复与故障排查**:学习GaussDB的备份策略,如何进行数据恢复,以及常见问题的诊断和解决方法。 9. **安全性与权限...
大数据治理方案的技术栈包括:Oracle数据库、PostgreSQL、达梦、浪潮、KDB、DB2、MySQL、国产数据库、MPP内存数据库、常见数据库、消息队列、文本格式、达梦、Dameng、浪潮、KDB、DBone、EMC greenplum、gbase8、...
FusionInsight MPPDB采用全新的数据格式Carbondata,以满足不同业务需求,提供高效率、高性能和存储灵活性。 【华为大数据解决方案的优势】 华为FusionInsight具备完备的SQL能力,便于应用平滑迁移;开放平台性能...
此外,通过跨集群和跨数据中心的数据协同分析,以及Hadoop和MPP DB的数据融合,实现了统一访问和高效计算。 **产品规格** - **系统规格**:系统最大支持5000个节点,MTTF(平均无故障时间)为17520小时,MTTR...
分布式数据库如MPP DB用于存储加工后的业务数据,支持深度分析和数据挖掘。主数据仓库则存储关键指标数据,提供数据开放接口供外部应用使用。 在技术架构上,Hadoop生态系统包括Pig、Hive、Sqoop、HBase、Avro、...
其最新版本"greenplum-db-5.0.0-rhel6-x86_64.zip"专为虚拟化x86服务器设计,提供了无分享(shared-nothing)的大规模并行处理(MPP)架构,是大数据工程师手中不可或缺的利器。 首先,让我们深入了解MPP(大规模...
HCIP-GaussDB-OLAP(H13-922)教材V1.5.zip是...通过这个教材,学习者可以系统地学习和掌握GaussDB(DWS)的使用,提升在大数据环境中的数据库管理和分析技能,为从事相关工作或获取HCIP-GaussDB-OLAP认证打下坚实基础。
分布式数据存储是指对大数据进行存储和管理的平台,包括HADOOP、MPP DB等;消息队列是指对数据进行处理和传输的平台,包括Kafka、RabbitMQ等。 数据治理管理平台是指对数据进行管理和治理的平台,包括数据资产管理...