[工作笔记]VERTICA 数据清理

公司:HJSD

职位:Java开发工程师

项目代号:G

简介

G项目是一个比较综合的系统,这其中涉及到部分数据统计的功能,为此用到了Vertica。Vertica是一个列存储数据库,在数据查询方面有着显著的性能优势。不过有一点不怎么好,并不完全开源,社区版最多允许1TB的原始数据。因此,需要对数据库的数据进行监控,并定时清理无用数据,来保证不违反社区版的规定。

监控

//Vertica查询原始数据使用空间

SELECT GET_COMPLIANCE_STATUS();

G项目使用python定期通过GET_COMPLIANCE_STATUS查询Vertica的原始数据使用空间,如果发现超过指定限额,会进行报警通知。

TIP:需要特别注意的是,使用GET_COMPLIANCE_STATUS()获取到的数据并非实时变更的的,Vertica会固定时间产生数据,如果手动清除数据,希望GET_COMPLIANCE_STATUS()同步更新,需要人工触发重新统计原始数据使用空间。

数据清理

//查询表压缩后的数据大小,单位GB,此处需要修改的是anchor_table_schema = 'public'

//查询语句来自:https://woothon.iteye.com/blog/2211252

SELECT /*+(compressed_table_size)*/

    anchor_table_schema,

    anchor_table_name,

    SUM(used_bytes) / ( 1024^3 ) AS used_compressed_gb

FROM  v_monitor.projection_storage

Where anchor_table_schema = 'public'

GROUP  BY anchor_table_schema,

        anchor_table_name

ORDER  BY SUM(used_bytes) DESC;

数据清理的时候,一般的目标是找占用空间大的无用数据清理,这样子才能有明显的效果。所以通常查询占用空间最大的几个表,排查无用数据进行清理即可。

重新统计

GET_COMPLIANCE_STATUS()所得到的数据,并非实时更新的,如果清理数据后,需要同步到GET_COMPLIANCE_STATUS(),执行下述语句实现。特别注意,该语句需要管理员账号执行。

//使用管理员账号,重新统计原始数据使用空间

select audit_license_size()

数据诚可贵,删除需谨慎。

推荐阅读更多精彩内容

  • 01工作磨练人的品格 工作是为了让生活更有品质。认真,脚踏实地的工作磨练、完善自己的人格品质,塑造自己的内在灵魂,...
    全函毅阅读 238评论 0 1
  • 妈妈说,太贪吃的女孩子没有将来 多女孩子的妈妈都对自己说过这句话。然而,为什么呢?我一直对这句话不以为然。 室友安...
    芒果小姐爱满天星阅读 4,037评论 0 8
  • 焦点讲师一期班洛阳刘琳坚持分享第266天 在遇到问题时,或者有人跟我们倾诉的时候,我们关注的是人本身还是问题...
    小溪与大海阅读 157评论 0 0
  • 一直以来,都认为思想很重要。每日里的课堂,都总是给学生传递着属于自己思想。可是,近日里,因为突然读书少了,记忆力也...
    歪哥Y_bro阅读 262评论 2 5
  • 摘抄: 一个成熟的人深知社交的本质是互惠,所以他不会想当然地认为他想认识别人,别人就会以同样的热情来回应他。 他清...
    清奇ing阅读 94评论 0 0