首页 理论教育 大数据改进索引数据库:中国索引第六辑

大数据改进索引数据库:中国索引第六辑

时间:2023-08-15 理论教育 版权反馈
【摘要】:网络大数据条件下的大索引技术离不开数据库的创新发展。按行进行Hash分布是并行数据库的重要特征。目前,磁盘的速度是并行数据库发展最大的瓶颈问题。随着后两者的价格快速下降,并行数据库又将面临一次重大变革,并有望解决鱼和熊掌兼得的难题。分布式数据库的分表和分库设计是索引数据库技术发展的重要方面。针对网络大数据,如果所有的索引数据存于同一张表,必然会迅速超过数据库表可承受的最大值。

大数据改进索引数据库:中国索引第六辑

网络大数据条件下的大索引技术离不开数据库的创新发展。在设计大规模数据库的时候,首先要考虑两个特性:并行式和分布式。并行数据库同时执行多个节点,它们共同处理一个问题,通常有严格的执行步骤和反馈时间。分布式数据库则完全不同,它强调处理过程分布于不同的节点,对上提供透明性。其透明性包括位置透明性和任务透明性。所以,并行和分布是矛盾的两个方面。我们不期望并行数据库能在很短的时间内处理大量的请求。它的设计初衷是为了处理某一个大问题,并不是大量的小问题。在设计运行大规模集群软件的时候,因为设计目的不一样,一般不要求同时追求这两者。

1.并行数据库[3]的存储、执行和管理技术

并行数据库并行使用多个CPU和磁盘,它将诸如装载数据、执行查询等操作并行化,从而大大提升响应和处理的性能。并行数据库主要由三个模块组成:执行引擎、存储引擎和管理功能模块。

建设这样的大规模集群数据库,首先要考虑的是节点的风格,其中最重要的就是主节点。主节点负责生成执行计划、元数据管理、SQL Parser、任务调度、任务提交等功能。目前主节点主要分为专职Master和无专职Master。两种方式各具特点,适用的场景各有不同。在大规模集群下,无专职Master的架构优势更加明显。尤其值得一提的是,这种架构比较容易向“多Master”架构发展。比如Gbase8a、Vertica已经支持这样的部署方式。从发展趋势看,多Master架构可能是未来发展的重点。它可以提供良好的扩展性和高可用,同时也保持了数据节点的对等性。

在存储引擎中需要重点考虑数据的分布。按行进行Hash分布是并行数据库的重要特征。相对于其他方式而言,这种方式能够精确控制数据的摆放,能够提供足够的用于优化处理的存储信息。这种高度耦合的非透明方式带来了明显的好处,但同时也引入了问题。系统设计者不得不面对其扩展性、高可用性方面的损失。“鱼与熊掌不可兼得”。完成了数据分布之后就要考虑Hash后的数据在节点中如何存储。通常的存储方式有三种:按行、列或者行列混合存储。行存储、列存储这两种存储方式有明显的特性。行存储的装载速度普遍比列存快,但访问的效率比列存慢许多。所以需要依据实际的应用需求来选择具体的存储方式。如果是一次装载完毕、后续多次查询的分析应用型数据库,一般是选用列存储的方式。最后要考虑的是硬件设计。目前典型的并行数据库一般使用SAS磁盘,虽然HDFS容量更大、价格便宜,但性能和可靠性稍差。目前,磁盘的速度是并行数据库发展最大的瓶颈问题。它大大制约了其效率和可扩展高可用的兼得。虽然磁盘的速度难以匹配摩尔定律要求的速度,但是电子盘和内存是可以的。随着后两者的价格快速下降,并行数据库又将面临一次重大变革,并有望解决鱼和熊掌兼得的难题。

并行数据库的组件分工(软件模块)将越来越细化。除了主节点、数据节点两类以外,接入节点、协调节点、安全节点、元数据节点、日志节点、SQL节点等等可能会被单独分析出来。在节点分工细化的基础上,还可以通过加载硬件进行针对性的优化设计。存储的瓶颈一旦通过电子盘和内存的方式解决,网络架构就变得非常关键。虽然典型的MPP架构对网络通常要求不高,不过在一些特殊的场景,例如装载和非分布键查询,对网络传输的性能要求就比较敏感。因此基于Infiniband的RDMA将来可能会变得很必要。

2.分布式数据库[4]的存储、分表和分库技术

发展网络大数据环境下的索引技术,我们更要聚焦分布式数据库的创新发展理论。首先是分布式数据库的存储问题。就目前网络大数据的处理规模和存储形式来看,已经实现了从TB级、PB级乃至EB级的提升。在此基础上的索引数据量也是大幅跃升,为了更好地控制数据存储成本,提高系统整体的并发吞吐率,设计者要积极研究出更为有效的存储模式,从而满足目前索引数据分布式存储的迫切要求。Google搜索引擎的3大核心技术:MapReduce、GFS、BigTable,就是分布式数据处理技术的具体实现。Apache软件基金会推出的Hadoop和HBase系统(源码开放),已经实现了编程模型(MapReduce)、分布式数据库和分布式文件系统。Yahoo、IBM、Facebook、百度等公司大量应用了Hadoop系统,使得该系统在业界获得了快速的发展。作为新兴的技术体系,分布式数据访问大大促进了大规模网络信息的处理及应用。这种数据存储方式是索引技术发展的一个重要环节,其发展前景非常可观。当然也不能回避仍然存在的一些局限性,针对网络大数据进行索引存储时,常常面临数据总量极大规模、响应速度要求高、数据类型异构多样等难题,仍然需要开发扩展度更高的EB级分布式数据存储框架。设计者需要不断优化适应数据布局的存储方法,以提高索引大数据存储和处理效率,降低整个系统的建设成本,从而实现高效、高可用的索引大数据分布式存储。(www.xing528.com)

分布式数据库的分表和分库设计是索引数据库技术发展的重要方面。分表解决的是数据量过大的问题,分库解决的是数据库性能瓶颈的问题。

当一张表被频繁插入或者被联合查询,其响应速度明显变慢时,就可以考虑分表操作。进行分表处理后,单表的并发能力提高,写作操作的效率也随之提高,插入数据库需要重新建立索引的数据量也明显减少。

当单台数据库的存储空间明显不够,单台服务器已经无法支撑查询量时,就需要对该数据库进行分库设计。分库分为垂直拆分和水平拆分。例如,文献型数据库,可以把文献数据中不存在强关联关系的表放在不同的服务器中,比如几乎无关联的国内、国际文献。在垂直拆分的基础上,还可以根据文献的作者进行水平拆分。水平拆分如果能预估规模,越早做成本越低。分库设计需要处理的是跨数据库的事务响应、路由和组装等问题。

关系型数据库在数据量跃升时检索性能会明显下降。针对网络大数据,如果所有的索引数据存于同一张表,必然会迅速超过数据库表可承受的最大值。单纯的分表操作虽然可以解决数据量过大的问题,但无法解决过多请求并发访问同一个库的响应速度问题。但分表也有其特殊的适用场景。比如事务问题,作为最常见的分表请求,同在一个库却不需要考虑分布式事务。过多的数据库实例不利于运维管理也决定了分表操作在实际应用中还会长期存在。综上所述,最佳实践是合理地综合使用分库和分表操作。

基于网络大数据的索引应用对各行各业的发展都有着积极的影响,对索引数据库的建设以及相关的知识工程建设也有着显著的推动作用。但大数据的海量规模以及复杂性、异构型、涌现性等自身特征,很大程度上阻碍了索引数据库技术的进一步开发和应用。因此,加强索引数据库技术的研究和开发,形成相对统一的标准,对网络大数据的开发和应用至关重要。

3.网络大数据时代索引数据库技术以人为本的发展理念

在今后的网络大数据发展中,我们仍然要注重以人为本的发展理念。在这个高新技术激烈竞争的时代,所有的竞争归根结底还是人才的竞争。人的需求不断推进技术的创新发展。大数据时代的大索引技术以数据分析为前提,进行科学探索,实现科学决策,都离不开人在其中的卓越创造力。目前,机器的智能分析在某些领域虽然已经赶上甚至超越了人类,但人的思维具有不可预估的创造性,机器分析始终无法代替人类的思维活动。人们在大数据发展进程中扮演着不同的角色,是生产者,也是使用者,但更多的是参与者。我们要通过人的意识能动,推动大数据时代索引数据库技术的创新发展。在今后的大数据大索引发展中,要持续加强以人为本的理念,不断促进该系列理论进一步变革创新。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈