大数据,又称巨量资料,指是所涉及的数据资料量规模巨大到无法通过人脑甚至主流软件工具。在合理的时间内管理,处理。并更积极地处理企业经营决策资讯,简而言之,大数据就是数据量非常大,非常多。无法常规归类方法应用计算的数据集成。
1. 概述
当前大数据已经渗透到每个行业和领域,成为了重要的生产因素。在大数据环境下,数据是海量的,且呈爆发式增长。数据类型复杂多样,除结构化数据外,还有大量半结构化和非结构化数据。大数据应用需求也很复杂,包括复杂多表关联查询,即席查询,。线数据批量处理等,这种形势给构建大数据处理的通用平台带来了挑战。
2. 传统数据库构建大数据平台的不足
传统事务型数据库是针对事务型处理设计的,采用行存储和Shared Disk架构。硬件方面采用小型机+磁盘阵列的配置,而面对大数据的分析处理型应用,传统的数据库在处理海量数据方面表现出明显的不足。主要表现在如下方面:
传统的Shared Disk架构存在I/O瓶颈,扩展能力不足,无法支撑PB级别数据的存储和计算。对于海量非结构化数据处理也很有限;
传统数据库基于行存储方式适用于事务型应用,需要大量读取冗余数据而增加磁盘I/O,在分析类型应用效率低下。
传统数据库索引针对于每一行建立,检索速度慢,需要手工建立,不便于维护,且极大的影响数据的入库效率。
采用小型机+磁盘阵列的硬件平台成本较高,扩容成本大,且扩容能力有限。
传统的数据库系统采用关系型数据库,主要用于对结构化数据的处理,不支持对半结构化和非结构化数据的存储和处理。无法满足海量半结构化,非结构化的存储,查询,分析和处理的需求。
3.1.MPP数据库
MPP数据库是新型数据库类型,采用Shared Nothing+MPP架构,通过列存储,高效压缩,粗粒度智能索引等多项大数据处理技术,结合MPP架构高效的分布式计算模式。完成对海量高密度结构化数据的分析类应用的支撑,运行环境多为低成本PC Server,具有高性能和高扩展性的特点,MPP数据库广泛应用到行业数据仓库和各类结构化数据分析领域。
MPP数据库可以有效支撑PB级别的结构化数据处理,它具有如下特点:
具备ACID特性:满足原子性、一致性等要求。
支持关系模型:基于关系模型设计。
使用SQL引擎:标准接口,开发效率高,应用迁移方便。
基于Share Nothing架构:可以横向扩展数百个节点,支撑PB级别的数据处理。
存储结构化数据,有明显的星型和雪花模型结构:便于进行OLAP分析、多维分析。
可基于开放的X86架构服务器部署:平台建设成本低。
MPP数据库擅长处理高价值密度的结构化数据,适合大规模的复杂分析,海量数据的查询,关联等场景,例如数据仓,、数据集市,企业级报表,统计分析,即席查询,多维分析等。
3.2.Hadoop技术
基于Hadoop生态的大数据技术主要针对非结构化数据的存储和计,、实时流处理等传统关系型数据库较难处理的数据和场景。Hadoop依托于开源社区的优势,以及相关技术的不断进步和迭代更新。可支撑对于非结构、半结构化数据处理,复杂的ETL流程、复杂的数据挖掘和计算模型。
Hadoop技术具有如下特点:
键值对存储方式:简单低耦合方式存储数据。
分布式文件系统:基于HDFS的分布式文件系统,具有明显的存储优势,可以存储海量的结构化、半结构化、非结构化数据。
MR/RDD:灵活的编程模式。
存储结构化、半结构化和非结构化数据:全量数据存储。
可基于开放的X86架构服务器部署:扩容成本低。
扩展性:可以扩展到上千节点。
3.3.两种技术对比
MPP数据库与Hadoop技术具有各自的优缺点和适用场景,二者之间的对比如下。
MPP数据库为Shared Nothing架构,对于JOIN或GROUP BY操作,执行计划可以优化为直接通过本地计算完成关联或分组,而不需要进行各节点间重分布数据。处理性能优越。Hadoop是基于HDFS文件存储,需要通过扫描来定位数据,同时在计算中会有大量的节点间数据搬运和排序操作。对于大表复杂关联及GROUP BY处理性能较低。
MPP数据库擅长处理高价值密度的结构化数据,而Hadoop的优势在于处理非结构化数据和流数据。
Hadoop对数据的操作模型,更适合于只支持一次写入多次读取,数据更新性能较低,MPP数据库基于关系模型。其存储结构和处理结构可以支持任意对数据集合的更新和删除。
对于小数据量,MPP数据库和Hadoop生态的Spark在运算关系型上没有太大差异,但对于100TB级以上的数据处理。MPP数据库充分利用其内存管理和CBO设计上的优势,有比较Spark更强的性能优势,但在关系型运算之外,Spark在数据挖掘算法。尤其在基于迭代的算法执行方面具有优势。
Hadoop生态的Spark处理性能高,但也只有在内存中处理才能保证高性能,一旦内存不足,数据就需要存回到HDFS中,性能将会发生很大的抖动。
Hadoop对SQL兼容性不好,且调优算法复杂多样。MPP 数据库是关系型数据库,本身支持SQL。且执行计划有多年的积累,便于进行高效的优化。
MPP数据库擅长SQL编程解决的问题,Hadoop的MapReduce及RDD编程模型比较灵活。可以处理部分SQL不能处理的问题,例如机器学习等。
Hadoop采用Java开发,在运行时依赖JAVA虚拟机,内存需求较大时容易出现大量的内存垃圾。影响任务执行效率。MPP数据库有完善的内存管理,保证内存和磁盘之间数据置换的平滑性。
MPP数据库可以有效的采取基于代价的优化(CBO),根据内部数据字典作动态优化数据的分析和处理。
当前数据管理技术发展飞速,供我们选择的种类繁多,在面对家属上的选择时很难说哪种更好因此需要才是最主要的,根据需要选取适合的来满足更多的技术。
更多产品了解
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!
2022-11-22 10:06:36
2022-11-22 10:57:38
2022-07-11 13:40:42
2022-11-22 10:08:34
2022-11-21 11:05:19
甄选10000+数字化产品 为您免费使用
申请试用
评论列表