OBIEE Usage Tracking增强--使用Python深入分析OBIEE访问日志--总的想法

浏览: 2313

最近想清理一下OBIEE的模型,考虑了一下,需要能够到统计一下展现层表和字段的使用次数才能做判断,如果能统计到物理层那就更好了。

数据来源:

1.OBIEE的日志表(一般叫s_nq_acct)有逻辑sql语句,使用query_text字段就可以了,不过可能由于字段长度可能被截断,obiee11g增加了一个blob字段query_blob。

2.物理语句就需要使用NQQuery.log了。

整理了一下具体要做的事:

1.准备SQL解析语句,能够获取字段名和表名。

2.获取逻辑语句并统计

3.获取物理语句并统计

解析SQL语句:

今天先介绍如何使用sqlparse,解析sql语句,  介绍见https://pypi.python.org/pypi/sqlparse

安装pip install sqlparse

使用的示例

import sqlparse
sql = 'select a.col11,a.col12,b.col21,b.col22 from foo a , foo_detail b  where (a.id = b.id) and a.id in (select bar.id from bar);'
print( sqlparse.format(sql, reindent=True, keyword_case='upper'))

结果如下:

SELECT a.col11,
       a.col12,
       b.col21,
       b.col22
FROM foo a,
     foo_detail b
WHERE (a.id = b.id)
  AND a.id IN
    (SELECT bar.id
     FROM bar);

下一步就是统计字段了,下一次继续。

推荐 3
本文由 seng 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册