使用Shell脚本来解析ssc源码 搭建出售MySQL元数据变化

今天写了一个简单的Shell脚本,ssc源码 搭建出售Q【2-1-7-1-7-9-3-4-0-8】可以通过这个脚本来得到一个MySQL元数据变化的列表。 

总体上我把变更分为了三类:

新增表

删除表

修改表

  新增字段

  删除字段

  变更字段

其中修改表的逻辑最为复杂,会主要包括三个场景:新增字段,删除字段,变更字段。

如何有效的进行元数据信息的快速提取呢,我们可以考虑增量的实现方式,比如若干套数据库中,有100张表,那么在一个时间周期范围内的数据变化次数相对来说属于少数,我们抽取元数据的时候如果每次都是全量进行提取势必会影响已有的服务性能,同时也会提取出大量冗余的数据,如何进行元数据的状态识别,我们可以由浅入深,比如我们根据information_schema.tables里面的create_time来得到一张表的DDL变化情况。 

这里就会存在两个边界,一个是根据时间来筛选,哪些新增和变更的表相对容易筛选,但是删除的表怎么来判别呢,这个就需要考虑快照的模式了,比如有一个数据库有100张表,在某一个时间点T之后删除了一张表,又新增了一张表,表的总数不变,还是100张,但是包含两类变更,我们可以使用快照对比着两个时间点的变化明细(数据库,表,变更时间)来得到一个变更列表,有了这个变更列表,我们就可以进行明细信息的抓取了,通常来说,变更的比例和总数相对是属于小范围的,所以这个周期数据的管理工作应该是后端的筛选会比较频繁,但是数据总量不大。 

猜你喜欢

转载自blog.51cto.com/14401659/2409421