这是学习笔记的第 2038 篇文章

  关于MySQL周期表管理,近期做了初步的设计,总体上是希望把周期表的管理和业务同学对接起来,实现流程化的管理。

对于周期表的数据管理,能够实现数据的批量管理,也可以对接到大数据中实现数据分析,并通过巡检任务对接,让整个流程动起来。

MySQL周期表管理的设计_MySQL周期表管理的设计

对于整体的设计方面,需要开发后端的API,API列表如下:

 

  • 周期表列表

  • 周期表创建

  • 周期表属性变更

  • 周期表批量变更接口

  • 周期表数据清理接口

  • 巡检任务

  • 大数据提取接口

  • 即时通讯提醒接口

对于模型的设计是重中之重,也能够决定我们的周期表管理的存储设计优劣。

模型方面考虑了如下的一些表:

  • Mysql_dailytable 周期表

  • Mysql_cycle_table_manage_log 周期表维护日志(包含配置创建,属性修改)

  • Mysql_cycle_table_ddl_log 周期表变化历史记录

  • Mysql_cycle_table_inspection_log

 

模型详细设计如下:

Mysql_dailytable

  • id

  • ip_addr

  • db_port

  • db_name

  • Operator_method

  • Table_name

  • Business_name

  • Start_date

  • End_date

  • Table_ddl

  • Table_status

  • Memo

  • Freq_type

  • Date_parttern

  • Push_to_bigdata

 

Mysql_cycle_table_manage_log

包含

周期表扩展记录,

周期表属性变化(包含保留时长,是否推送大数据等,不包含DDL)

周期表清理记录

 

  • Ip_addr

  • Db_port

  • Db_name

  • Table_name

  • Tab_id

  • Change_type

  • Change_date

  • Memo

 

Mysql_cycle_table_ddl_log 周期表变化历史记录

包含表属性变更(新增配置,新增,删除,修改字段,新增,删除,修改索引等,删除配置)

  • Ip_addr

  • Db_port

  • Db_name

  • Table_name

  • Tab_id

  • ddl_type

  • Ddl_date

  • memo

 

Mysql_cycle_table_inspection_log

包含周期表的巡检信息,可以根据时间频率指定

  • Ip_addr

  • Db_port

  • Db_name

  • Table_name

  • Tab_id

  • Inspection_code

  • inspection_name

  • Inspection_result

  • Inspection_date

 

 

API细化部分,需要考虑具体的参数设计:

周期表列表

ip_addr,db_port,db_name,table_name,create_date,due_date,freq_type,push_to_bigdata

 

周期表创建

JSON

 

周期表属性变更

ip_addr,db_port,db_name,table_name,create_date,due_date,freq_type,push_to_bigdata,retention_period(days),

 

周期表批量变更接口

ip_addr,db_port,db_name,table_name,sql_set

 

周期表数据清理接口

ip_addr,db_port,db_name,table_name,retention_period

 

巡检任务

ip_addr,db_port,db_name,table_name,metric_list

 

大数据提取接口

复用《周期表列表》

 

即时通讯提醒接口

ip_addr,db_port,db_name,table_name,due_date

 

 

MySQL周期表管理的设计_MySQL周期表管理的设计_02