南大通用GBase 8a数据库基于审计日志的冷温热数据分析-之“解决方案”

数据生命周期管理是项目中常见问题,一般解决方案为:根据数据表创建时间和使用时间,计算出数据表的使用频率,从而将数据表分类为冷、温、热数据,以便客户进行数据清理或数据迁移。

但当表数据量较多时,该类信息无法快速或者直接从集群元数据中获取。因此需要通过程序多维度地提取元数据中的信息,梳理出客户业务中常用、不常用的数据表,并经过加工整合归类分析,最终解决该类问题。

解决方案

1、新建表test.splist_bryan,作为自建笛卡尔积cross join时的伪参数表。

2、新建存储过程,对伪参数表test.splist_bryan进行初始化操作。插入100行行号。

注:这里假定每个sql 中涉及到的表不会超过100个(一般也不会超过)。如果有类似场景需要单行转多行,且拆分出的行数最大超过100个,在如下存储过程还可以再修改添加。

3、新建表test1 对audit_log表进行分类汇总统计。start_time是表最近访问时间,tbl是对应的表名(表名列表)。

注:此处audit_log是根据集群中每个节点中的gbase.audit_log汇总而来的express引擎表,这里只为描述方便, 未作引用。

跨引擎迁移表内数据需要打开_gbase_query_path参数。


集群新audit_log表各字段含义:

thread_id   ,线程号,同processlist中的ID;

taskid      ,全局唯一的任务号;

start_time  ,开始执行的时间;

end_time    ,SQL执行结束的时间;

user_host   ,登陆的用户名和host;

user        ,用户名;

host_ip     ,用户登录端IP地址;

query_time  ,执行的时间;

rows        ,返回结果集行数;

db          ,执行的当前数据库名;

table_list  ,涉及表,格式:``.``[,...];

sql_text    ,sql 内容;

sql_type    ,标识SQL类型,DDL,DML,DQL,OTHERS;

sql_command ,sql命令类型,如SELECT、UPDATE,INSERT,LOAD等;

algorithms  ,涉及的算子,比如JOIN、WHERE、GROUP、HAVING等;

status      ,标识SQL执行成功还是失败,SUCCESS,FAILED;

conn_type   ,用户登陆方式(CAPI、ODBC、JDBC、ADO)。


4、新建表test2,通过corssjoin自建笛卡尔积实现一行变多行;通过substring_index函数实现对串的不同部分按照行号进行截取,进而统计出每张表最近的访问时间;结果需要过滤掉系统库的表。


5、以下结果显示,test2表中,每张表最近的使用日期。每张表占用一行,无重复表名。这样就可以根据这个日期,针对表进行使用热度分析。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值