【IT168 技术】数据库在大型企业及企业级应用中,面临着越来越多的挑战,尤其是随着数据量的不断增长,大规模数据管理成为摆在企业及其数据库管理人员面前的最大难题。企业中的数据量越来越大、类型越来越多且实时性越来越强,即所谓的大数据的3V特性(Volume、Variety、Velocity)。数据库每天需要处理大量数据,这些数据可以达到几十或几百GB,甚至可以达到TB或PB级别,企业的经营决策又向数据库提出了实时处理的要求。因此如何能够快速、实时的处理大规模的数据成为解决企业数据库难题的关键。
相关文章:
现阶段,存储介质和数据处理技术发展迅速,涌现了大批新技术,但这些仍不能满足企业数据快速增长的需求。为了加快企业数据读写操作和查询操作的速度,数据库分区技术应运而生。数据库分区是一种物理数据库设计技术,是将一个或多个数据库表分布在两台以及多台物理或者逻辑机器上,通过并行的方式对分布在多台机器上的数据库表进行处理,从而实现对数据的快速处理。数据库分区的主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。
▲数据库分区架构的三种类型
通过数据库分区技术可以提高对大容量数据的访问速度,对数据进行并行读取,并且数据库分区技术在一定程度上具有可扩展性。从架构上来看,数据库分区可划分为三种典型的架构:共享内存(Shared Memory)模式,共享磁盘(Shared Disk)模式以及无共享(Shared Nothing)模式。本文将重点介绍无共享模式的DB2数据库的分区特性,以及DB2与Oracle数据库分区特性的比较。
DB2数据库分区特性——DPF
DB2的企业版提供的数据库分区功能,即DPF(Data Partitioning feature),这一功能主要用来为大规模数据处理提供支持。DB2数据库分区采用Share-nothing体系结构,数据库在一个非共享的环境中被分解为独立的分区,每个分区都具有自己的资源,例如内存、CPU和磁盘以及自己的数据、索引、配置文件和事务日志。数据库分区有时称为节点或数据库节点,每个节点具有独立处理单一任务的能力,每个子任务处理一部分数据,分区间数据通过高速网络进行交互。
DB2 DPF的扩展性较好,通过增加节点资源即可线性扩展节点。简单来说,它相当于将一个大的数据库分成多个小的数据库,而每一个小数据库分区拥有自己的一部分数据,同时达到节点同时并发的高效率处理能力。DPF是一种跨多个彼此合作的实例,以建立单个大型数据库服务器的技术。这些实例既可以位于一个服务器中,也可以跨多个物理机器。
▲DB2 DPF体系架构图
DB2 DPF是基于并行性的体系架构,这里的并行包括在节点之间的并行,以及在节点之内分区的并行;查询语句之间的并行,以及查询语句内部的并行等。在性能方面,采取分而治之的策略,没有限制的规模。在编译器方面,采用基于开销的优化器和查询重写器,SQL和实用工具完全平行运行。除此之外,DPF还根据负载动态分流,同时支持异步I/O和平行I/O等。