早期使用大数据技术的朋友可能还记忆犹新,那时候的产品通常是特殊的软硬件混合解决方案,产品描述大都包含“黑盒”、“可插拔”和 “不需要性能优化”。 现在,随着解决方案越来越成熟,客户越来越了解这些供应商解决方案所提供的功能,大家都认识到,想要充分实现大数据应用的最大潜能,确实需要对它们进行优化。这种优化工作既不简单也不免费。如何理解需求,采用正确的优化方法?这个重担落到了DBA(数据库管理员)的肩上。
大数据应用不是运行速度很快吗? 大数据应用总是被标榜具有超快的访问速度。这种技术宣称能够快速、轻松地分析大量的数据,然后根据分析结果去改变面向客户的系统。管理层认为,这种分析及其带来的变化将提高客……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
![TechTarget微信公众号二维码](/wp-content/uploads/res/images/spriteimg/ttweixin.jpg)
TechTarget
官方微博
![TechTarget中国官方微博二维码](/wp-content/uploads/res/images/spriteimg/ttweibo.jpg)
TechTarget中国
早期使用大数据技术的朋友可能还记忆犹新,那时候的产品通常是特殊的软硬件混合解决方案,产品描述大都包含“黑盒”、“可插拔”和 “不需要性能优化”。
现在,随着解决方案越来越成熟,客户越来越了解这些供应商解决方案所提供的功能,大家都认识到,想要充分实现大数据应用的最大潜能,确实需要对它们进行优化。这种优化工作既不简单也不免费。如何理解需求,采用正确的优化方法?这个重担落到了DBA(数据库管理员)的肩上。
大数据应用不是运行速度很快吗?
大数据应用总是被标榜具有超快的访问速度。这种技术宣称能够快速、轻松地分析大量的数据,然后根据分析结果去改变面向客户的系统。管理层认为,这种分析及其带来的变化将提高客户满意度、提高市场份额和增加收益。
大数据应用性能的关键在于解决方案(通常称为设备)的架构。设备包含大量高容量磁盘驱动器、I/O通道和高度并行的软件。举个简单的例子,假设一个客户数据表包含1亿条客户记录。在这个数据表上执行一条标准SQL语句查询“A地区购买产品X的客户”,可能就需要很长的时间,即使可能需要从头到尾扫描整个数据表。
再假设后面配置了100个大容量磁盘驱动器,而且每一个驱动器还配置了一个高速I/O通道。在我们查询之前,1亿多条客户记录分散存储在多个磁盘驱动器中,其中第一个驱动器存储1百万条记录。设备软件会读取我们的查询,然后同时在100个磁盘驱动上执行,最后再合并查询结果。
正如我们所看到的,这种并行运行对于提升设备性能有着重要作用。直接将数据分散到多个磁盘上,查询时间可能按指数级下降,甚至可能下降上百倍!
每一个设备在实现时自动决定如何将数据分割到各个内部磁盘驱动器中。客户并不需要知道其中使用的方法和算法;在很多时候它们可能是不可修改的。
大数据设备性能优化之现状
大多数设备已经发展并超越了上述状态。现在有一些设备处理数据分割(data partitioning)有多种存档方法,而且其中有许多方法允许客户控制。这是大势所趋。 随着各个供应商开始标准化大数据解决方案所使用的技术,现在主要的特性差异在于查询性能和数据传输速度。
这种重大变革也有一定的代价。现在DBA有责任去理解设备的工作方式,开发出替代的数据分割方案,实现这些方案,然后再继续测定其性能,以决定是否需要作其他的修改。
除了一些像内存分配这样的基本配置参数,对于DBA来说最重要的新优化特性包括如何将数据物理地分布到设备内部的多个磁盘上。
一般而言,数据划分方法可以分成两类:随机/散列式和键值式。它们大体上与数据库管理系统中关系数据表所采用的水平分割方法相对应。假设有一个销售交易表。在一个普通的数据库中,DBA会基于维护、数据可用性或性能等综合因素而考虑对数据表执行物理分割。
例如,有一个方法按交易日期来分割数据表,可能是按月份分割。前面的分区可能包含最早交易日期的记录,而后面的分区则包含较后日期的交易。这样直接清空或重用前几个分区就可以轻松地清除老数据或不用的数据。此外,它也能够大大提升按日期或日期范围划分的数据查询性能,因为有相似日期的交易记录应该位于同一个分区内。
可惜的是,在大数据环境中,这些问题实际上会降低查询性能。因为设备是通过大规模并行数据访问来实现最佳性能,而按交易日期聚集数据之后,设备就无法在它的大型磁盘阵列整体上将所有查询分割为上百个针对每一个磁盘数据的较小查询。
简而言之,优化大数据设备需要了解访问数据的查询种类,以及各种数据分割技术将如何影响这些查询的性能。
DBA的额外任务
除了大数据设备,DBA还必须负责提高整个数据获取生命周期的性能。数据是以定期方式从分段存储区加载到设备之中的,所以这些区域的高速数据传输是必不可少的;分段存储区从原始系统的数据源获取数据,而这些数据大部分都必须经过通常所谓的提取、转换和加载(ETL)流程的验证和清理。最终,来自原始系统的数据还必须在限定时间内传输到目的地。
所有这些方面都要求我们采用一种系统方法去优化数据传输性能。操作系统的数据获取包括数据复制、文件和各种数据库提取过程。有一些数据项可能是无效的(例如:日期值00-00-0000),而有一些数据则完全缺失。每一个系统都有自身的数据清理问题,另外在一些特定时间里数据本身可能非常方便提取。所有这些流程都要求根据数据容量的增长来调优性能。
另一个问题是将数据批量加载到应用程序中。随着日常采集的输入数据不断增长,加载时间也会不断地增长,而且数据加载是超高I/O密集型操作。我们可能需要寻找一些特殊的供应商解决方案来实现高性能数据加载。
最后,如何方便地将老数据或无用数据清除出设备呢?虽然查询执行可能非常快速,但是删除旧数据或无用数据则可以减少存储的总数据量,这也一样有利于减少查询执行时间。
DBA能成为大数据专家吗?
大数据提供了大量获取和利用专业知识的机会。下面这些领域的技能可以提升DBA团队对公司业务产生正面影响的重要能力:
- 设备管理:在优化设备之后,DBA还必须保持对行业趋势的跟进。可以肯定一点,公司对于大数据解决方案的需求任何时候都不可能快速消失。数据会持续涌入大数据设备。用户查询会继续增加;实际上,有一些查询的用处会被更多地重视,以致最终成为常规报表。甚至有一些会变为关键任务查询,这时就需要有稳定的性能保证,因此优化就成为一项重要的DBA任务。
- 业务用例:数据建模人员首要理解的一点是数据的使用方式。大数据DBA也一样。老数据或无用数据将会存档还是清除?最繁重的数据访问是否在某一个特定时期内发生?数据元素的一些特定部分的分析频率是否一定最高?回答这些问题将有助于DBA确定数据分割模式、数据库备份频率、数据表与索引设计、数据净化条件和安排等。
- 分析查询优化工具:如果一个公司无法及时获得有用数据,那么解决方案的支出将超过收益。大多数供应商解决方案都承诺(或预期)查询能够超快速地运行。虽然目前是这样的,但是将来能否继续保持高速呢?如果额外实现了多个超大数据存储呢?如果开始将积累多年的历史数据用于分析呢?如果有几百姓(或几千)额外用户开始执行新的、超长且复杂的查询呢?DBA是这种环境中负责查询优化的重要技术人员。这可能还不足以让他们成为配置和优化设备的专家;但是DBA必须实现整体性能,并且将查询性能优化策略和方法加入到日常工作中。
小结
虽然DBA团队包含许多种类、组别和等级的专业知识,但是支持大数据应用程序和设备的工作会改变他们的任务、优先级和管理方式。一开始可能只有少数专业人员掌握必要的知识和技能;然而,随着公司实现越来越多的应用程序,增加越来越多的用户,整个团队都会加入到大数据支持行列中。
翻译
TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。
相关推荐
-
游走在地图上的大数据
曾经有一段时间,地理数据用于寻找石油或水资源研究。现在,地理位置系统已无处不在。这其中发生了哪些变化呢?
-
企业如何提高“数据文化水平”
智慧的业务需要数据驱动。然而,在缺少足够知识水平的人员时,要做到这一点是很难的。而互联网金融公司Avant的BI主管正在帮助他的公司做到这一点。
-
销售2.0时代:让数据驱动你的团队
许多公司为销售代表们提供了分析工具以追踪潜在客户,判断销售表现以及预测商机。数据驱动的销售可以降低成本,产生利润。
-
SAP六问大数据 你做到了吗?
面对大数据的大商机,企业掘金大数据前必须搞清楚六大基本问题:大数据的概念、价值、应用领域、主要推动力、受益业务流程以及大数据的负面影响。