访问频率监测有助数据库管理
2009-09-18 00:00:00 来源:WEB开发网在数据库早期,当时数据库包含的还只有相对少量的信息,访问频率之间的差别并不是很重要。
现在,我们有大量的数据需要搜集和存储,而访问频率之间的差别正变得越来越重要。现在人们已经有合适的术语来描述数据的这个方面:"热"数据是指经常被访问的数据,而"冷"数据则是指不经常被访问的数据。
在几乎所有的商业系统中,当年的数据被认为是热数据,因为这些数据在事务层面上的访问频率非常高。例如,人们将希望知道这样的问题:"我们上周向X客户出售了什么产品或服务?",或"我们是否已经满足了Y客户昨天下的订单?"
数据仓库中的许多数据是冷数据--大部分内容是事务性数据格式,比如,前四年的数据--只有少量是当年的热数据。
一般来说,如下表所示,我们有三种类型的磁盘。其中一种磁盘--固态驱动器--的价格,就像我在这里所写的,正在快速下滑。在早先的文章中,我还讨论了固态驱动器(SSD)在数据库中的应用,可能已经很明显的是,热数据和冷数据的概念尤其适用于数据仓库。
但是可以肯定的是,任何有这方面意识的DBA(数据库管理员)已经在分区数据表,将经常访问的数据放到快速媒介,将不经常访问的数据放到慢速媒介。实际上,我们用这种方式处理数据已经很多年了,比如将旧材料归档放到磁带等等。因此,为什么人们对数据访问频率的兴趣又开始增加了呢?
这个问题的答案是两个因素--数据访问频率之间的差别越来越大,变化中的存储媒介--意味着数据管理正变得越来越复杂。更准确地说,这意味着如果我们准备好以更加复杂的方式来管理数据,那么我们将获得显著的性能提升。
例如,一个明显的方式就是将冷数据放在慢速廉价磁盘中,同时如果忽略成本因素,将热数据放在SSD中。如果将适量的热数据放在慢速磁盘中,虽然这是违反直觉的,但也不失为一个办法。从定义上来说,一个主要承载冷数据的慢速磁盘大部分时间都是处在闲置状态。
如果你将少量热数据放到慢速磁盘中,当数据访问请求到来的时候,这个磁盘应该不会正忙于做处理其他事务,因此热数据也可以快速访问。
问题的关键是瓶颈,用于归档数据的慢速磁盘碰上瓶颈的概率有时为零。你可以利用和平衡这种概率:这种慢速磁盘不会每时每刻都在工作,实际上,与其降级使用这种磁盘,不如利用它来改善性能。
一旦你决定将一些热数据放到慢速磁盘,你可以将这种数据放到外层磁盘,因为这里的数据经常可以更快地访问。不过你可能认为"哇,虽然理论上这是正确的,但是这种方式太难管理了",你是对的。
在理解了数据也有"温度"且磁盘性能千差万别之后,我们就可以进行很多工作来改善系统,但是实际上问题是数据的访问频率会随着时间而改变,而调整是非常复杂的,因此实际上不可行。
在算法控制下,这种问题可以得到很好的管理。算法控制可以根据数据的实际使用情况来将数据放到合适的位置。实际上,这种对热数据和冷数据的处理方式尤其适用于巨量平行处理(MPP)下对数据的处理。
已经有人在做这样的事。例如,Teradata已经迈向这个领域:监视数据访问频率,然后自动将数据迁移到最佳的存储地点。Teradata对SSD的兴趣已经有好多年了。
Teradata负责EMEA(欧洲,中东与非洲)平台与解决方案营销的总监Martin Wilcox表示:"从数据访问来说,并不是所有的数据引擎都是一样的。和大多数其他引擎不同,Teradata始终都针对随机I/O模式进行了优化,而不是假设I/O是顺序访问的。因此Teradata的引擎从本质上来说可以立即地挖掘SSD的所有优点。"
Teradata已经在SSD的使用上迈出了更多的步伐。在一年前的大会上,该公司展示了一款完全运行在SSD上的数据仓库系统,并利用它来评估性能和成本优势--而且从那以后SSD的价格就在快速下滑。
考虑数据访问频率可以帮助我们更好地优化数据库。如果能够推动数据库引擎供应商考虑将其加入为一种功能,那就更好了。
赞助商链接