海量结构化数据分析平台解决方案

上传人:hao****an 文档编号:157691010 上传时间:2022-09-30 格式:DOC 页数:7 大小:80.01KB
返回 下载 相关 举报
海量结构化数据分析平台解决方案_第1页
第1页 / 共7页
海量结构化数据分析平台解决方案_第2页
第2页 / 共7页
海量结构化数据分析平台解决方案_第3页
第3页 / 共7页
点击查看更多>>
资源描述
曙光海量结构化数据分析平台解决方案曙光信息产业(北京)有限公司2012-05导言在数据爆炸的今天,从海量结构化数据中提取并挖掘出有用的信息逐渐成为众多行业的新的应用热点。而海量数据的分析中呈现出的高并发加载数据,海量存储,低并发查询,但每次查询的规模都非常高的特点。使得如何将数据库操作有效并行化成为海量数据分析首要需要解决的问题。虽然目前流行的Hadoop的map-reduce并行计算框架在很多互联网企业中得到了广泛的应用,但却由于其不支持SQL语句,使得难以与现有的基于SQL的关系型数据库的应用场景进行结合。曙光在海量数据分析和挖掘领域积累了多年的经验,和计算所智能中心合作研发出专门针对海量关系型数据库应用特点的关系型数据库系统DRAC,为海量数据分析系统提供高性能,高可扩展性的并行数据库系统,并且已成功部署在多个国家大型项目中。其底层采用无共享(shared-nothing)的oracle数据库节点作为数据节点,具有较好的扩展性和系统可靠性。DRAC软件将用户的操作透明地转化成对底层数据库的操作,而对用户呈现为单一的数据库系统。DRAC系统可根据数据的访问频度和重要性实施多级存储的方案,以降低整个系统的成本,提高系统的性价比。技术特点曙光集群并行数据库DRAC(Dawnings Real Application Cluster)是一种无共享(shared- nothing)结构的并行数据库管理系统。DRAC原是专为分析网络监控数据设计的并行数据库系统,现已部署在国家某大型项目、某市大型项目等多个系统中。它具有如下技术特点: DRAC采取目前主流的集群设计方法,具有性价比高、扩展性好等诸多优点。 它直接将任意查询分解成操作于分区数据的子查询和汇总中间结果的后处理查询,用成熟的DBMS来实现两种查询的执行,从而避免了一般的分布式查询处理器为了通用而引入的复杂性。配合针对特定应用的分区策略,DRAC的方法能保证查询执行的效率。 大任务全并行处理。DRAC采用单机数据库作为基本数据处理单元,将数据并行地写入这些单元数据库,查询时并行地从各个数据库中读取和处理这些数据。这种完全并行的处理极大地提高了系统存储数据的能力并缩短单个查询的完成时间。DDL操作也在各数据库节点上并行地执行。 DRAC对外提供单一系统映像,用户使用类似ODBC或JDBC的接口提交SQL语句。这些操作被服务节点自动地并行执行。 DRAC采取了功能分离的设计思路,像加载、查询等功能均可按需要配置,满足在线扩展的高可用要求。 和Oracle RAC等并行数据库不同,DRAC不需要光纤交换机和较高端的盘阵,硬件成本低。配合灵活部署和简易管理的工具,DRAC在大规模部署时有较高的性能价格比。系统架构下图给出了一种典型的DRAC配置。系统中的节点分为两大类:存储数据的数据库节点和提供并行数据管理功能的服务节点。后者包括:加载服务、查询服务、数据复制和数据定义服务。所有类型的节点个数均可根据容量和性能的需要而灵活配置。数据库节点是带独立存储系统(本地硬盘或磁盘阵列)的商品化服务器。节点上安装单机版的Oracle数据库管理系统。按照数据划分策略,每个数据库节点保存全部的复制数据和分片数据表的一部分。每个数据库节点上数据均可使用Oracle的索引、分区等特性。数据库的功能被分成加载、查询、数据复制、数据定义等服务,每种服务部署在单独的物理节点上。任一服务节点均建立到所有的数据库连接。加载节点启动若干个加载线程,线程将一批数据写入某一数据库节点。由于海量数据分布存储在各数据库节点上,查询服务首先并行地在处理各数据库节点上的局部数据得到中间结果,然后将中间结果汇总成最终结果。复制数据是指将一个表的数据同时存储一组数据库节点上,以此避免两个表的连接操作。数据复制服务专用于处理这部分数据的操作。它通过分布式事务在有关节点上同时执行事务操作,保证复制前后数据都是一致的。 数据定义服务用于维护系统的元数据,它并行地执行表结构、表空间和其它数据库模式改变等元数据操作。采用这种服务分离的设计,用户可以灵活地配置各种服务的个数,以达到整个体统资源的最佳利用。DRAC集群数据库系统结构无共享架构DRAC采取Shared-Nothing的架构,即所有存储数据的数据库节点除互联网络外,不共享任何资源。除此之外,并行数据库还有Shared-Memory和Shared-Disk两种架构。学术界普遍认为,Shared-Nothing架构有很强的扩展性。另外,DRAC不需要存储网络设施,也不依赖于昂贵的高端盘阵。这样可以很好降低用户的硬件成本,在大规模部署时有很高的性价比。Shared-Memory结构是多个处理器通过内存总线与多个共享内存相连接,再通过I/O总线共享多个存储设备。Shared-Memory 结构是典型的向上扩展类型,即在单节点上加入更多的处理器、内存、磁盘和网卡。多家厂商的产品已经证明,在常规商务负载环境下,SMP 服务器能够提供 10 倍于单处理器系统的向上扩展能力。然而,随着 CPU 个数增多,共享的内存带宽成为瓶颈,同时多处理器竞争降低了系统总线的利用率,因此难以扩展到大规模。Shared-Disk结构中每个节点有自己的内存,共享磁盘。每个节点都可以读取和修改所有数据。通过分布式的并发控制机制来保证数据一致性。随着节点数增多,并发开销增大,因此商用 Shared-Disk构建的实用数据库系统一般只有 6-8个节点。Shared-Nothing 结构属于多处理单元多数据单元结构。Shared-Nothing 环境下,每个处理器有自己的内存和磁盘存储设备,所有处理器通过节点间互连网络进行连接,对于节点间通信少、返回结果集少的应用(如 数据仓库或DSS),具有良好的扩展性。可达数千个节点。在DRAC中,单元数据库除了采用单机Oracle之外,还可以采用Shared-Disk的并行数据库,如Oracle RAC。这是一种融合了Shared-Disk和Shared-Nothing结构的系统,可以扩展到更大的规模。Shared-Nothing架构下,数据库节点如果失效将导致数据不可访问。DRAC提供了双写的策略,对于要求高的数据存储在两个节点上。只要有一个节点存在,数据仍然及时可用。关键技术DRAC是一套完整的并行数据库系统,除上述特征外,下面再给出并行加载、并行查询和数据双写等关键技术。l 并行加载提高系统加载能力的关键是提高单机加载能力和充分利用系统资源。DRAC的并行加载技术包括如下层面上的设计。1)单线程直接路径加载。加载线程使用预处理过程将被写数据的格式告知数据库,然后接受客户端的一大批记录,以直接路径加载的方式一次性将数据写入数据库。这是Oracle提供的最快的在线数据加载方法。2)单机多线程同时加载。每个加载节点都维护一个线程,当有请求到达时,即分配一个线程向某一个数据库节点加载。这样能充分利用加载节点的带宽和计算资源,提高其利用率。3)多数据库并行加载。每个加载节点的多个线程可以同时向多个数据库并行加载。当加载节点较多的时候,可以充分利用数据库的加载能力,使系统的加载性能达到最大。上述三种设计的考虑使DRAC能提供很高的加载速度和近似线性的加载扩展比。数据均衡是Shared-Nothing架构的并行数据库要解决的一个重要问题。解决数据均衡的关键是避免某个节点上的数据过多。出现这种情况,将导致该节点上的查询任务完成地最晚,因为并行任务的完成时间取决于最慢的操作,所以会导致查询扩展性严重下降。DRAC每次都选择当前加载量最小的节点进行加载,保持当前的数据均衡。如果某个数据库节点失效后重新启动,导致一段时间内加载量过小,后续就会出现短期内加载过多的情况。针对面向流数据应用,DRAC采取周期性计数的方法。当超出一个周期后,计数归零。在上述情况发生时,上个周期数据量少不会影响到一个周期的数据平衡。l 并行查询流数据管理中,具有流特征的数据表因为随时间而增长,往往变得很大。海量的数据表分布存储在不同的数据节点上,这是DRAC的并行查询的基础。如图所示,查询服务器上也部署一个数据库,用于保存中间结果。查询服务将来自客户端的SQL分解成数据库节点上本地数据子查询和综合子查询的后处理查询。子查询在各个数据库节点处理原始数据,各节点的中间结果汇总到查询节点后执行后处理查询,即可得到用户最终的结果。基于分布表和复制表的并行查询处理当中间结果集较小时,该方法有很好的扩展性。两个分布表之间的关联操作采用节点间数据重分布来实现。为了实现查询的鲁棒性,查询服务实现了客户端超时和服务器资源回收机制。确保在客户端异常后,不对系统产生影响。另外客户端可以主动取消查询。l 数据双写对于要求数据可靠性和可用性要求很高的用户,DRAC提供数据双写功能。如图所示,每个数据库节点上创建两个数据库,如d1和d2是同一物理机上的两个数据库。节点之间的数据库做完全镜象,数据在写入的时间同时保存在镜象的两个数据库中。图中给出了交错的镜象关系,除任一数据库节点失效后数据仍可用外,上面或下面所有数据库节点损坏,系统中的数据仍然可用。DRAC的数据双写高可用DRAC采用多种方式提高系统的可用性,完全可以提供7*24小时无间断运行。按离用户的远近,DRAC的高可用性包括如下层面。高可用的负载均衡机制。DRAC标准情况下配置两个负载均衡器,当其中一个不可用时,客户端接口库自动使用另一个,因此负载均衡器是高可用的。高可用的服务。DRAC每种服务(加载、查询、复制引擎)都可以配置在多个物理服务器上,只要还有一个可用,这种服务就是可用的。高可用数据库。DRAC系统配置多个互相独立的数据库节点。当某个数据库出现故障时,这种故障分临时性故障、节点宕机和数据损坏三种情况。如果是临时性的故障或节点宕机,正在进行的查询不能获得这部分数据的结果,但其余节点上的计算结果会返回给用户并提示“结果集不完整”。当节点宕机时,这种状态要持续到机器重新启动为止。启动双写机制后,即使数据库失效,数据也不会丢失,并且随时可用。扩展性DRAC管理的系统中,只要增加数据库节点,系统的容量可随即增加。与此同时,所有数据库的处理能力近似为整个系统的处理能力,也随之扩展。当系统规模扩大时,系统的性能表现,即扩展性是并行系统的重要特征。达到所有数据库的写速度之前,DRAC数据加载的性能和加载节点的个数呈近线怀的增长。大部分的查询则随数据库节点个数的增加,也呈近线性的结果。根据应用的实际需求,用于加载和查询等任务的服务器可以方便地增加和删除,但系统总的处理能力主要受数据库节点能力的限制。所有节点均可在不中断业务的情况下进行。软件也可以实现在线升级。DRAC在生产系统的部署中超过18个数据库节点,处理的数据量超过400TB。统备份恢复DRAC高可用性的介绍中已经从4个层面上介绍了在部分设备出现故障的时候系统如何保证对外服务的连续可用性。在未发生数据丢失的情况下只需替换故障设备,重新加入系统,即可恢复故障。为了防范出现数据丢失的严重故障,DRAC提供备份工具dmbk,它分别从各数据库节点导出需要的数据,经过压缩后存储在备份介质上。当需要时,它从备份介质上读出数据,解压缩后导入原数据库。简易管理DRAC的各种服务及数据库节点均是“逻辑节点”,它们可以部署在任何的物理节点上,因此针对特定的系统结构,只需指明“逻辑节点”和“物理节点”的映射关系,即可用工具简易完成包括底层数据库在内的整个的系统部署。它可以部署在包括单个节点在内的任意数量机器的系统上。DiM是基于B/S模式的DRAC部署、监控和管理工具。它通过和用户的交互确定“逻辑节点”和“物理节点”的映射关系,然后根据该映射关系,生成在不同节点上执行的脚本,再引导用户一步步完成系统的部署。它同时可以完成系统部署正确性的验证和各种服务的检查工作。DRAC定期采集系统各组件(如数据库节点、服务节点)的状态及平均资源利用率,并写入管理数据库的特定表中,用户可以用浏览器直接查看硬件、数据库和服务等监控信息并获取各种统计。DiM同时提供对组成系统的各种服务和单元数据进行启动、停止等管理操作。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 方案规范


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!