zoukankan      html  css  js  c++  java
  • 拉链表设计

     在企业中,由于有些流水表每日有几千万条记录,数据仓库保存5年数据的话很容易不堪重负,因此可以使用拉链表的算法来节省存储空间。

    1.采集当日全量数据存储到 ND(当日) 表中。 
    2.可从历史表中取出昨日全量数据存储到 OD(上日数据)表中。
    3.用ND-OD为当日新增和变化的数据(即日增量数据)。

    两个表进行全字段比较,将结果记录到tabel_I表中

    4.用OD-ND为状态到此结束需要封链的数据。 (需要修改END_DATE)

    两个表进行全字段比较,将结果记录到tabel_U表中 
    5.历史表(HIS)比ND表和OD表多两个字段(START_DATE,END_DATE) 
    6.将tabel_I表的内容全部insert插入到HIS表中。START_DATE='当日',END_DATE可设为'9999-12-31' 
    7.更新封链记录的END_DATE

    历史表(HIS)和tabel_U表比较,START_DATE,END_DATE除外,以tabel_U表为准,两者交集将其END_DATE改成当日,说明该记录失效。 
    8。取数据时对日期进行条件选择即可,如:取20100101日的数据为 
    (where START_DATE<='20100101' and END_DATE>'20100101' )

  • 相关阅读:
    游戏编程模式--原型模式
    游戏编程模式--观察者模式
    游戏编程模式--享元模式
    游戏编程模式--命令模式
    mybatis的线程安全
    开发遇到的问题
    spring的ThreadLocal解决线程安全
    i++
    jvm内存初步了解
    注解@RequestMapping,@RequestBody
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2680945.html
Copyright © 2011-2022 走看看