这是学习笔记的第 2038 篇文章
关于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