“大数据时代” 的概念最早由著名咨询公司麦肯锡提出。麦肯锡表示:“数据已渗透到今天的每个行业和业务功能领域,并已成为重要的生产要素。” 数据在精巧的算法中被挖掘,数据分析变得至关重要,大家开始达成一个共识:” 数据计算,能够找到新发现。”
博思艾伦咨询公司的合伙人 Josh Suillivan 在其著作《数字时代的企业进化》一书中提到,其团队研究了数百个组织,提炼出构成未来成功组织模型的要素,这类成功组织被称为” 数据公司”。而进化成” 数字公司” 的关键,是” 组织是由数据驱动的”。 在大数据时代,企业不再随便删除数据,而是希望把数据存储起来用于分析。数据库也成为了企业基础架构必不可少的一部分。
MPP(Massive Parallel Processing,大规模并行处理),一直被誉为当今数据库的主流架构,被广泛用于众多数据库产品中,包括 Greenplum、Teradata、Vertica 等。MPP 数据库是针对分析工作负载进行了优化的数据库,以满足用户聚合和处理大型数据集的需求。 MPP 分析型数据库将任务并行的分布到多个服务器和节点上,并在完成计算后,将结果返回并汇总,从而完成对海量数据的分析处理。
MPP 数据库集群有可扩展性、高可用性、高性能等众多优势。MPP 数据库的诞生解决了单个 SQL 数据库无法存放海量数据,很难在一台物理机器上完成分析需求的难题。
MPP 架构的数据库以 PC 服务器为单位,通过如下图所示的集群方式来扩展存储和计算。假设一个宽表有 3 亿条记录,MPP 数据库会尝试在每台 PC 服务器的硬盘上分布 1 亿条记录。数据计算时,所有机器同时并行计算,理论上最高可以把计算时间降低到单机部署的 1/n(n 为机器数量),节省了海量数据的处理时间。
大部分传统 MPP 数据库均实现了对 SQL 的完美兼容,包括 ANSI SQL 2008 标准,以及 SQL 2003 OLAP 扩展。对 SQL 的全面支持使得 MPP 数据库可以无缝集成业内常见的提取 / 转换 / 加载(ETL)和 BI(商业智能)工具,完全支持和认证标准数据库接口。企业只需安排少量的集成工作,就可以使用现有的使用标准 SQL 结构和接口的分析工具让应用在 数据库上运行,从而避免了企业受制于供应商,帮助企业在抑制业务风险的同时推动创新。
MPP 架构给数据库的高并发性带来了极大的弹性。架构赋予数据库数据和查询的自动并行化能力,数据可以做到自动在数据库的所有节点上分区,并以高度协调的方式使用所有节点来规划和执行查询。企业可以根据自身的并发需求扩展集群,达到所需的并发需求。
MPP 数据库具有良好的水平扩展能力,企业可以根据业务需求,通过增加服务器,用更多的节点支撑更大的分析需求。
虽然 MPP 数据库有众多优势,因而成为众多分析型数据库产品的主流架构。然而,传统 MPP 数据库也有众多瓶颈和限制。
传统数据仓库的计算和存储是紧密耦合的,计算资源和存储资源按某一比例强绑定,因此用户在扩容时,必须同时扩容计算资源和存储资源,在扩容、运维、迁移上都存在一定的挑战。企业业务发展的不确定性,当企业遇到负载高峰时刻,传统数据仓库无法及时扩资源,可能会导致大数据系统无法及时分析业务数据,错失了充分挖掘数据价值所带来的商业机会。
传统的 MPP 数据库虽然实现了水平扩展,但是由于存算耦合,水平扩展流程复杂且缓慢。随着用户的数据规模增长,每次扩缩容进行增加节点的操作时,大量的 I/O 请求会影响业务的处理速度,对业务的持续性会造成一定的影响。当用户负载突然增大时,无法迅速提高算力以响应业务变化,在负载降低时也无法收缩以节约成本。存算的紧密耦合,导致用户无法根据实际需求申请资源,动态扩展,导致用户的业务受限。
传统数据库价格高昂的软硬件导致巨大的前期投入。随着存储和工作负载需求的日益增长,面临数据库的扩容和升级时,由于传统 MPP 数据库架构存储和计算的紧密耦合,往往需要企业花费巨大的运维和时间成本,且操作繁琐。
传统 MPP 数据库架构存在” 木桶效应”,数据库整体执行速度取决于最” 短板” 单机(Straggler)的性能。单机故障会” 拖垮” 整个数据库的性能,导致查询速度变慢。 因此传统的 MPP 架构往往要求新增的 PC 机和之前的 PC 机是一样的老配置,不然任何一个集群的” 短板” 就会影响整个数据库的性能,也就说摩尔定理不管多厉害,MPP 集群拿老机器的存储和性能” 一刀切” 而取低值。
随着业务的发展,数据量的增加,和信息化建设的需求,企业会为不同部门建设相应的业务信息化系统。然而 MPP 的水平” 扩展 “能力和事实上的” 静态 “项目实施是矛盾的。“扩展” 理论上是和时间关联的一个概念,而基于 PC 机的 MPP 设计并不是” 时间的朋友 “。由于前面提到的存算耦合和” 木桶效应”,企业在购买新机器的时候,往往会选择” 另起炉灶”,新建一个集群,从而造成” 数据孤岛”,严重阻碍了企业实现大数据目标。
面对传统 MPP 数据库的短板,OpenPie 团队打造的云原生数据库 PieCloudDB,创造了全新的 eMPP 分布式架构,构建以云原生、分析型分布式数据库为引擎数据计算平台。
eMPP 由 OpenPie 团队打造,全称是 Elastic Massive Parallel Processing(Elastic MPP,弹性大规模并行计算)。
eMPP 超越传统 MPP 架构,更符合云时代的需求。云平台在信息技术发展过程中具有划时代意义,它带给用户的不仅仅是快捷和便利,更是极大的灵活性和可配置性。用户可以自行定义云主机的配置,定义云主机的数量等,并且可以便捷的增加和删除云主机。一句话来说,云平台给企业应用架构带来了极大的弹性。
MPP 架构和云平台相结合,就诞生了 eMPP。为了适应云平台的弹性,新的 eMPP 架构实现了云上存储计算分离。也就是说,计算资源和存储资源可以在云上实现独立的进行水平扩展。
存算分离赋予 eMPP 数据库 ” 真正” 的弹性。eMPP 架构继承了前文中提到的 MPP 数据库所有优势,并从根本上规避了传统 MPP 数据库的缺陷,拥有众多优势。
基于云计算平台、存算分离的 eMPP(弹性大规模并行计算)架构赋予数据库多维度、智能弹性扩展能力,让用户能够根据业务需求进行横向或纵向的弹性伸缩。
存储侧支持标准对象存储,可以充分利用云计算平台的优势,让对象存储接近无限的容量,避免了企业对集群进行扩容时,因计算资源和存储资源的绑定而造成的资源浪费,可单独进行计算或者存储资源的扩展,存储扩容性价比高。
计算侧在设计上充分考虑无状态实现,计算节点可以充分利用云平台海量的计算节点池,可以按需扩容和缩容。企业可以灵活考虑业务和数据量的变化,动态调整 数据库集群中计算节点的数量,用最适合的资源量来满足其业务需求。
eMPP 架构计算和存储分离,避免了资源的浪费。企业可根据对资源的需求,灵活的以低成本和高效的方式,单独地进行存储或计算资源的弹性扩展,提高了资源的利用率,节省空间成本和能耗开销。
eMPP 架构带来的动态扩展能力,企业可根据自己对资源的需求进行扩展,避免了资源的浪费,相比于传统数据库,具有更高的性价比。
eMPP 架构中,计算节点不存储用户数据,保证了计算节点的无状态性。无状态的计算节点启动和停止非常容易,企业可以根据自身的需求启动足够的冗余计算节点保证 eMPP 数据库的高可用性。在 eMPP 数据库 中,用户数据存储在云计算平台的对象存储中,充分利用云存储的优势保障用户数据高可用性。
PieCloudDB,采用基于云计算的全新 eMPP(Elastic MPP)弹性并行计算架构,集成了 MPP 数据库的众多优点,并完美解决了基于 PC 的传统 MPP 数据库的缺陷。计算和存储分离。存储和计算作为两个独立变量,可以在云端进行独立的弹性伸缩,避免了资源的浪费。企业可根据业务对资源的需求,灵活的以低成本和高效的方式,单独地进行存储或计算资源的弹性扩展,提高了资源的利用率,节省空间成本和能耗开销。
元数据 - 计算 - 数据分离的三层独立架构让 PieCloudDB 实现了将数据集中存储,而元数据独立存储。企业可以像管理商品数据一样来管理自己的数据产品的元数据。企业可以将所有数据在云中存储,为已有和未来的应用真正实现数据共享。