监控数据仓库
通常,数据仓库环境中两种受监控的操作成分是存储于数据仓库中的数据和数据的使用。监控数据仓库环境中的数据是管理数据仓库环境的基本能力。通过监控数据仓库环境中的数据能取得一些重要信息,包括:
■ 识别发生了什么增长,增长发生在什么地方,增长以什么速率发生
■ 识别正在使用什么数据。
■ 估算最终用户得到的响应时间。
■ 确定谁在实际使用数据仓库。
■ 说明正在使用数据仓库中的多少数据。
■ 精确指出数据仓库何时被使用。
■ 识别数据仓库的多少数据被使用。
■ 检查使用数据仓库的层次。
当数据体系结构设计者不知道这些问题的答案时,有效的管理运行中的数据仓库环境是不可能的。监控数据仓库真的有用吗?只要考虑一下知道“在数据仓库中什么数据正在被使用”有多么重要就明白了。数据仓库的特性是不停地增长。历史数据不停地加入数据仓库,汇总数据也不停地加入,新的抽取流在创建。同时数据仓库驻留的存储和处理技术并不昂贵。有时会问这样的问题:“为什么所有这些数据要积累起来?真有人用这些数据吗?”显然,不论是否有数据仓库的合法用户,在数据仓库正常运行期间,一旦数据放入数据仓库,数据仓库的开销就会增长。只要数据体系结构设计者没有办法确定如何使用数据仓库中的数据,那么除了不断购买新的计算机资源之外就别无选择了—购买更多的存储设备、更多的处理器,等等。但是通过监控数据仓库中数据的使用,就有机会把不用的数据移到其他介质上。当数据体系结构设计者发现当前一些数据没有使用,就把这种数据移到不昂贵的介质上,这是合适的做法。通过监控数据仓库中数据的使用和活动情况,数据体系结构设计者能确定现在什么数据不在使用,就能进行转移。监控数据仓库环境中的数据及活动会得到非常实在的和迅速的回报。
在数据监控处理期间,可以建立数据的各种概要文件包括:
■ 数据仓库中所有表的目录。
■ 这些表的内容。
■ 数据仓库中表的增长。
■ 用于访问表的可用的索引目录。
■ 汇总表和汇总源的目录。
监控数据仓库活动的需求通过下列问题来说明:
■ 什么数据正在被访问?
■什么时候访问?
■由谁访问?
■访问频率怎样?
■在什么细节层次?
■ 对请求的响应时间是什么?
■ 在一天的什么时间提出请求?
■ 请求多大的数据量?
■ 请求是被终止的还是正常结束的?
在数据仓库环境中使用监控程序的一个根本问题是在哪儿进行监控。能进行监控工作的一个地方是最终用户终端。这是做监控工作的一个方便位置,因为这里有很多空闲的机器周期,并且在这里进行监控工作对系统性能只有很小的影响。但是,在最终用户终端监控系统意味着每个被监控的终端需要自己的管理员。在一个单独的D S S网络中,可能有多达10 000台终端,试图管理每个终端的监控工作几乎是不可能的。另一个途径是在服务器层次对D S S系统进行监控。在查询已形式化并且已经传给管理数据仓库的服务器后,才开始进行监控。毫无疑问,在此处管理监控程序要容易得多。但是存在系统范围内性能下降的很大可能性。因为监控程序使用服务器资源,监控程序影响整个D S S数据仓库环境的工作性能。监控程序的位置是必须仔细考虑的重要问题,要在管理的方便性和降低性能之间进行权衡。监控程序最有效的用途之一是能够将今天的结果与每天平均的结果进行比较。发现异常时,能够问一句“今天与每天平均的结果有什么不同?”这通常是有好处的。在大多数情况下会发现性能变化不象想象中那么坏。但为了做这样的比较,需要一个“每天平均概况”。“每天平均概况”包括了D S S环境中描述一天情况的各种标准的重要度量指标。一旦对当天的情况进行了度量,就可以与每天平均概况进行比较。当然,每天平均值总是随时在变化的。定期地追踪这些变化,使得对长期系统趋势能够进行度量将是有意义的。