时刻盯住你的数据(一)

    |     2015年7月12日   |   文库   |     评论已关闭   |    1263

||2005-04-13


在今天这个世界,大多数员工都佩戴徽章,从而当他们进入和离开办公室的时候,能够被机器扫描到,并且相关的信息被存储起来。在加上安全警卫的努力,员工的安全和公司固定资产的安全就可以有效的受到保护。这只是数据使用的一个缩影。数据是公司最重要的和最有价值的资产之一,因为它往往包含了重要客户的信息和公司的智力资源。因此,为了公司的长远发展和壮大,这些数据应该被监控,控制和保护起来。


 


当公司把着眼点放到成本控制和建立更多大额规章制度的时候,千万不要忘了数据使用监控也是非常重要的。另外推动数据使用监控发展的是在动态SQL访问数据库方面技术的提高。这种形式的对数据库的动态访问可以实现对数据库活动的探测,找出导致数据库性能有影响的因素。


 


数据使用监控在当它被看作是性能调优的工具的时候,主要用于数据库管理领域,但是现在公司组织内部的各种类型的人员都需要这类数据。本文将描述什么是数据使用监控(data usage monitoring),它的主要组成技术,它的软件产品,以及这些数据如何被利用来为公司提供价值。


 


什么是数据使用监控?


 


数据使用监控是透明的获取和分析数据库使用活动的过程。它并没有分析底层数据的价值,那种工作由数据质量监控(data quality monitoring)来完成二十监控客户端怎样使用组成数据库的表和字段。数据使用监控能够回答以下一些问题:怎样,在什么时间,什么地点使用数据。它不能从本质上回答问题,但是它能通过分析客户端的数据活动来提供必要的线索。


 


需要收集哪些信息?


 


一个数据使用监控工具将会截获在数据库中执行的Data Manipulation Language (DML)命令,例如查询,修改,删除和插入操作,同时也会截获Data Definition Language (DDL)命令,如建立,销毁表结构,赋予权限等等,还有对数据库和数据仓库执行的外部程序和存储过程。


 


收集到的核心信息


 


从这个活动中获得和抽取出来的核心信息是用户的ID,完整的SQL命令,命令开始和结束的时间,CPU使用时间,发起操作的客户端信息,通过以下这些信息,大量的报表都可以生成:


 


l         执行效率最差的SQL语句


l         以小时计算的CPU使用率


l         每小时,每天,每季度,每年的查询次数


l         一段时间客户端的使用情况


l         一段时间某个程序的使用情况


l         隐藏的数据


 


上面描述的信息能够被绝大多数的数据使用监控产品得到,然而有大量的信息隐藏在SQL命令本身。一个SQL命令由以下元素组成:命令类型,字段,表,条件语句,控制符等等。当一个SQL语句被分解到这个粒度的时候,许多以前不能回答的问题就迎刃而解了。例如谁在访问受保护的字段,哪个字段经常被条件语句所引用,哪个表被特定的用户所经常使用等等。


 


另外,把这些分解的信息存储在一个关系数据集市中会很大程度的便利其他第三方报表工具软件包的使用。这可以使技术和非技术的用户获得足够的能力来提出和回答他们的问题。我将在这篇文章的末尾分析这些产品的一些主要特性。


 


数据使用监控怎样获得它的数据?


 


目前,有四种技术来获得使用监控的数据,这些技术可以分为两类。一类使用关系数据库引擎提供的内部命令来获得信息,另外一类通过数据引擎之外的API函数来获得信息。下表描述了这些技术和它们所对应的类别:


 





















类别


命令/产品


描述


数据库内部


快照监控


通过数据库特定的命令和查询语句直接从数据库缓存中抽取信息


 


活动监控


是数据库特定的命令来捕获特定时间发生的活动


数据库外部


开放服务器/网络探测器


开放服务器是截获客户端和服务器之间流量的中间件


网络探测器能够监听特定的端口


 


对于每一类技术,都需要一个自动化的工具或者存储过程来在一定的时间内捕获信息。这些存储过程过着工具能够自行开发。但是我强烈建议购买第三方提供的产品,因为他们的产品在强大性和成熟度上能够提供更好的服务。而且购买成熟的产品而不是自行开发还会带来一个好处,它能够使管理员能够把主要精力放在解决商业问题上面,而不是开发和维护软件产品。另外,第三方的软件产品能够通过增加新的特性,例如SQL命令解析和一些管理功能来增加对数据的使用。


 


数据库内部提供的技术


 


数据库内部引擎提供了两类命令


 


1、快照监控


 


快照监控命令能够获得DDL或者DML命令执行时在数据库缓存中某个时间点的状态。当这个命令被用于使用监控的时候,它一般是每15秒钟被执行一次。命令执行的频率由管理员来确定。


 


这种技术的缺点在于它不能够捕获数据库的活动,因为它的执行时间比较短。它的有点在于它不会显著的降低数据库的性能。快照的命令输出能够被历史保存,用于未来的数据使用报告之用。


 


2、活动监控


 


活动监控在监控有效的时候会收集所有数据库引擎正在执行的SQL语句。只有拥有适当的管理权限的管理员才能够启动活动监控。DB2/UDB中的事件监控器就是一个活动监控的例子。


 


使用活动监控的一个缺点就是它会降低数据库引擎的性能。使用这项技术的优点在于它能够捕获数据库的活动。活动监控主要用于数据库性能的调优。


 


数据库外部提供的技术


 


下面这类数据使用监控的工具不是由关系数据库引擎提供的。


 


开放服务器


 


开放服务器是一种中间件产品,设置之后能够截获两点之间的数据流量。开放服务器的监听客户端的网络流量和发送到特定端口的网络流量,并且能够分析,存储这些数据。


 


数据使用监控开放服务器被设计成用来分析数据库活动包。在配置的时候,它使用数据库最初安装的时候使用的端口,这个端口过来的要求会被送到数据库。


 


数据使用监控开放服务器能够通过分析包头来确定是不是数据库的包。当探测到一个数据库的包的时候,上文描述中的一些关键信息将会被抽取出来,并且被保存。然后这个对数据库的请求会被送到原来它要到达的地址,被数据库所执行。另外,除了截获最初的数据库请求之外,也能够获得一些关键的统计信息,数据库执行完之后的返回码也会被送到开放服务器


 


这种技术的缺点在于,数据库请求也许会被延迟,因为数据库请求需要被开放服务器分析和捕获。这种延迟在数据仓库中是可以被忽略的,在数据仓库中,查询的时间通常从几分钟到几小时。然而,在高性能的交易应用程序中,如果有毫秒级的延迟都会对造成很大的后果。另外一个不足是,所有的网络流量都通过一个点通过。如果数据使用开放服务器宕机了,所有的数据库请求都会被断开,直到开放服务器重新恢复正常运行。最后一个缺点是实施这个开放服务器需要对数据库起停,并且重新配置数据库使用的端口。


 


使用这种技术的优点在于来往于数据库之间的活动都会被捕获。对双向网络流量的监控能够掌握到每条命令开始和结束的时间。这也同时有助于对SQL返回码的收集,以及返回到客户端的结果集。这样就获得了一个完整的端到端请求信息。另外一个好处在于,这种技术没有使用数据库的命令来获得这些信息,因此不会降低数据库的性能。


AMT


相关链接:
时刻盯住你的数据(一)
时刻盯住你的数据(二)
时刻盯住你的数据(三)

责编:admin

转载请注明来源:时刻盯住你的数据(一)

相关文章

噢!评论已关闭。