让你的大数据应用具备更高性能
大数据应用在大型企业中变得越来越常见。企业具备历史数据分析和趋势预测的能力,能够为自身创造可观价值;此外,商业智能分析不仅可以避免出现运输中断、资源短缺,还能减少服务水平协议SLA和预测客户所需的产品和服务。BI能够给企业带来巨额红利。
随着购物节的临近,利用客户交互的明显增加,可以预期到你的企业将会开展更多的BI活动。通过优化大数据应用,提高性能,IT企业应该积极为更大数据量和更多的分析活动做好准备
从哪里开始DBA、支持人员应将他们的努力集中在以下几个领域:灾难恢复,数据仓库性能和数据组织以及大数据的应用中的数据存储。
灾难恢复大多数IT人员认为灾难恢复并不属于性能调优的范畴。在大数据环境下,这一误解又有所加深,因为人们普遍认为建立在大数据应用上的数据分析,相对于计算工资,总帐,订单输入,运输和客户服务之类的应用来说,并不十分重要。
但是,大数据应用在过去的几年里已经日趋成熟,企业所使用的业务分析功能也随之日臻完善。曾经的临时查询现在被作为常规报表来执行;额外的历史数据允许查询对大量数据进行比较和分析,通过进行负载均衡,商业分析软件可以让你的大数据应用得以更加方便快捷的执行查询。这使得今天的大数据应用提供了大量的可操作数据,可以提供更好的客户服务,消耗更低的成本并获得更高的利润。
这意味着,即使大数据应用遭遇一次很小的中断,都可能在你的用户群中产生连锁反应,报表无法按时交付、查询无法正常运行、以及那些基于商业分析结果的决策被延迟等。
DBA应该经常审核DR计划,以保证大数据应用在其控制之下。他们需要关注下列几种情况。
审核恢复过程。一年中最忙的时候就是遭到灾难性故障的时候。中断将会显著的影响企业的营利,特别是在事务频繁的时期。DBA应该协助恢复过程,避免浪费时间和精力。
验证恢复时间。很多DR计划包括一个目标恢复时间,表示可以完全恢复的最晚时间点。对于数据库来说,这可能意味着从备份文件恢复数据,并将日志从备份时间调整到恢复时间点。在高峰时期,数据和事务量较大;因此,恢复时间可能延长。为了降低这种风险,DBA应该考虑实施更频繁的关键数据库备份。由于在数据表恢复过程中,通常需要花时间来重建索引,DBA应该将DB2的备份和恢复能力考虑在内。
数据仓库性能一般来说,大数据的存储和分析或存在于企业数据仓库(EDW)内部,或者与其相关。要整合各地的大数据解决方案,你需要为每一部分的EDW过程设置接口。下面是一个关于EDW子系统的总结,涉及大数据对它们的影响,以及如何提前制定性能计划。
数据获取和采集。包括一个在数据转移到EDW之前,用于暂存数据的方案,以避免硬件故障造成的延误。还应确定这些新资产和流程将如何影响你的灾难恢复计划。开发人员喜欢在旺季开始之前实现新功能或加固操作系统。其中一些增强数据可能需要传递到你的数据仓库,随后为大数据应用可能执行的查询提供服务。在此之前你要确定,这些新应用或者改动后的应用可能需要一个业务分析组件,
数据转换和迁移。快速迁移大量数据可能需要额外的资源,甚至特殊的软件或硬件。你的网络有能力将日益增长的数据从操作系统迁移到数据仓库,并最终部署到大数据应用中么?
数据访问和分析。随着数据持续填满仓库,在仓库和大数据的应用合并后,用户可以运行分析软件。捕获数据访问路径和数据分布统计信息并留作分析。你需要确定是否有足够的系统资源(CPU、磁盘存储、网络容量等)来支持预期的查询工作负载。
数据归档。大量的数据分析,庞大的数据量可能会占用宝贵的存储介质,使一些进程运行缓慢。IT和业务合作伙伴必须决定如何以及何时将旧的大数据存档清除,以及它是否必须保留以供日后使用。
大数据的组织和存储供应商销售的第一大数据应用通常是即插即用型的。几乎没有调优选项。主要的原因是,应用依赖一个专有的,混合的硬件和软件解决方案,该解决方案使用大规模并行存储和I / O,以实现对分析查询的快速应答。
客户对于大数据分析的需求日益成熟,供应商解决方案需要提供多个同步存储和检索数据的方法。其结果是供应商设计并实现了可选数据存储和检索选项。一个例子是指定关键记录如何存储的能力。设想一个大数据应用,实现了一百个独立的磁盘驱动器。原始的应用通常将记录随机分散到这些驱动器。一些分析查询可以在逻辑上分成一百个独立的查询,每个查询访问一个驱动器,所有查询的结果合并成最终的答案,比相同的序列数据库查询快上一百倍。
然而,考虑一个基于键的,需要连接两个表的查询。随机分布在一百个磁盘驱动器的两个表将不再具备性能优势,因为行连接操作与两个表存储在同一个磁盘驱动器上时已经完全不同了。
目前很多大数据应用解决方案包含选项和算法以支持跨驱动器的表查询,存储是按键值排序的,并不是随机分布。通过在每一个磁盘驱动器存储相同范围的键值行,行连接操作将在同一个驱动器上执行。因此按键值指定数据分布的能力提供了巨大性能提升。
考虑到这一点,以下是一些建议,可用于大数据应用的性能调优。
检查数据分布统计信息。使用RunStats程序来收集表键和数据分布信息。特别是主键和外键索引,因为表连接通常会基于这些列。
审查数据访问路径。在本质上分析查询是临时的,数据表最有可能使用相同或相似的访问路径加被访问。捕获和分析这些访问路径寻找常见的连接方法。这一信息,加上数据分布统计信息,将帮助您确定数据表应如何按键值分布在大数据应用中。
存储数据访问路径以进行分析。作为上面的建议的延伸,你应该有一个方法用于捕获和储存分析查询的访问路径。方法返回结果应展示出表和索引是如何被访问,以及使用了哪些索引,执行了哪些排序等等。查询获取更多的数据,数据量增加返过来审查你的历史访问路径并比较。数据量增加引起的变化,观察访问路径的变化都可能表明性能出了问题。
总结通过审核数据恢复流程,提高数据仓库的性能,评估当前大数据应用性能的优化选项,可以让你的大数据应用为即将到来高峰做好准备。大数据应用的数据组织方式对性能有这十分显著的影响;此外,你还应该仔细考虑可能发生的故障,为灾难做好准备,即使大数据应用上一个小的中断都可能对企业利益造成重大影响。