梧桐云原生分析型数据库数据生命周期管理使用指南

梧桐云原生数据库生命周期管理指南

梧桐云原生分析型数据库生命周期管理使用指南

1、数据生命周期管理对大数据平台的重要意义

        数据生命周期从数据规划开始,包括开发、产生、部署应用、监视、存档和销毁,是一个不断循环的过程。数据生命周期管理是通过对数据不同阶段的针对性管理措施来降低数据管理成本并提高数据质量度,最终达到数据价值最大化的目的。

1.1 降低数据安全风险

数据在企业内存在损毁、泄露等显性风险,同时也存在由于数据生命周期导致的数据决策管理和数据驱动失误等隐性风险。比如,企业内部可能仍然使用早期的数据结论来辅助决策,由于时过境迁,早期的数据结论可能已经失去其存在或应用的条件,其结论的可信度需要重新评估,混乱应用将带来决策风险。

1.2 降低数据维护成本

IT部门在面对越来越多的数据时,其运维过程需要投入大量的机房、硬件、软件、人力、物力和时间成本,这给企业造成了巨大的成本投入问题。数据生命周期通过各种措施,尤其是数据归档、销毁等方式有效进行数据管理,保证数据可用性的同时还可以有效降低运维成本。

1.3 提高数据质量度

数据生命周期管理的重要内容是针对数据本身的管理,通过对数据的开发、维护使得数据进入“去伪存真”的正向循环,越来越多的高质量数据的沉淀为后期应用提供了坚实基础。

2、梧桐数据库数据生命周期管理

2.1 系统表配置信息

依据原oracle库生命周期管理配置信息配置梧桐云原生分析型数据库数据生命期管理配置。主要配置信息存放到分区管理配置表中。

2.2 流程图

启动管理程序
扫描配置表
添加新分区
删除历史分区
结束

2.3 添加分区处理逻辑

  • 调用启动程序 “select sp_cycle_manager(YYYYMMDD)” 依据传入参数确定当前处理日期,格式为YYYYMMDD,一般为前一天自然日日期;
  • 依据当前处理日期检查分区管理配置表,获取需要进行周期管理的列表清单,确定在当前处理日期之前是否存在需处理的表。
          1、判断当前处理的表模型是否存在,若不存在则记录详细日志信息,并开始下一循环处理列表中下一个需要进行周期管理的模型;
          2、判断当前处理的表模型是否为分表,用于确定分区添加方式:若为分区表,则表分区添加方式ALTER TABLE … ADD PARTITION … VALUES(…);
          3、拼接添加分区SQL语句并执行。若执行错误,则回滚所有操作,并修改配置表中处理标识为失败,记录详细日志信息;若执行成功,则提交所有事务,并修改该表周期配置记录中“当前周期日期值”为“新当前周期日期值”及处理标识为初始化状态0,记录详细日志;
  • 循环结束,退出。

2.4 删除历史分区处理逻辑

  • 依据传入参数确定当前处理日期,格式为YYYYMMDD,一般为前一天自然日日期;
  • 依据当前处理日期检查分区管理配置表,获取需要进行周期管理的列表清单,确定在当前处理日期之前是否存在需处理的表。检查条件1为:按照当前处理日期检查配置表中当前周期日期值;条件1具体实现如下:
          1、如果周期类型为日,则按当前周期日期值小于等于当前处理日期过滤;
          2、如果周期类型为月,则按当前周期日期值(月第一天日期)小于等于当前处理日期的上两个月周期日(即当前处理日期所在月份减2月后的月初第一天)过滤;
          3、如果周期类型为年,则按当前周期日期值(年第一天日期)小于等于当前处理日期的上两个年周期日(即当前处理日期所在年份减2年后的年初第一天)过滤;
  • 对需要进行周期管理的列表清单进行遍历处理:
          1、锁定当前正在进行周期管理的表配置信息,防止数据冲突,并开始记录详细日志;
          2、判断当前处理的表模型是否存在,若不存在则记录详细日志信息,并开始下一循环处理列表中下一个需要进行周期管理的模型;
          3、判断当前处理的表模型是否为分表,用于确定数据删除方式:若为分区表,则数据删除采用分区删除函数ALTER … DROP PARTITION;
          4、获取当前处理的表模型周期字段数据类型,用于拼接数据删除的语句,主要为数值型、字符串型、日期型三种;
          5、根据配置信息中“当前周期日期值”、“当前保留周期数”、“历史保留周期数”计算删除周期日期值和新当前周期日期值。
                                    公式如下:
                                    删除周期日期值=取相应周期日期(当前周期日期值-(当前保留周期数+历史保留周期数))
                                    新当前周期日期值=取相应周期日期(当前周期日期值+1个周期)
          6、判断当前处理的表模型配置信息中月底最后一天数据是否保留,若保留则不删除改周期数据;
          7、拼接删除周期数据SQL语句并执行。若执行错误,则回滚所有操作,并修改配置表中处理标识为失败,记录详细日志信息;若执行成功,则提交所有事务;
  • 循环结束,退出。

2.5 运行日志

SELECT * FROM xxx_tmp_log WHERE PROC_FLAG_ID = ‘e’
AND UPPER(DEAL_CYCLE) = ‘D’
AND CUR_PARTITION_DATE = TO_CHAR((now()),‘yyyy-mm-dd’);

说明: 配置表中PROC_FLAG_ID字段说明:1 正在处理;0 处理成功;e 处理失败。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值