Ch05 Phase of DW

11/23/2021 DataData warehouse

# Phase of DW

结构:img

Monitoring:监视data changes in the data source incrementally

  • 只能提供被改变的数据信息:only something has been changed, not the change data
  • 可以监视all the changes 或者 net effect of changes
  • 可以data source主动告诉monitor自己的数据改变了,也可以monitor间隔的查询source中数据是否改变
  • 几种实现方法,分为外部的和内部的img
  • 快照算法,最后生成一个F outimg
    • 先根据key排序,然后再对比
    • 快照文件可能是压缩的
    • 为了优化快照会被读很多次,可以用window算法
      • 前提条件 img
      • F1比F2老,并且F1,F2是被排好序的img
      • match的意思就是计算哪些要Insert,哪些要update,哪些要delete,并把他们写到F out文件中
      • 如果match成功的元组,则删除,match失败的元组,放到aging buffer中,由下一次继续匹配
      • 因为F1是老的快照,所以循环最后没有匹配的就delete掉
      • F2是新的快照,所以循环最后没有匹配到就insert

# Extraction

img

  • No access to the source system, 直接把数据库导出,压缩再传输img
    • eg:导出DB2,使用 | 作为列的分隔符,messages 是存放error或者warning信息的
    • Load和import对比,load的并发性更高,performance更高,但是import的数据完整性更好imgimg
    • Filterimg
      • Bad files是不能处理的文件
      • Discard files 是不满足限制性条件的文件
    • 直接整合外部数据源的三种方法:img
      • 把外部的数据注册成一张表
      • 把外部数据源通过java等语言查询成一张表
      • 通过wrapper把外部多个数据库统一一下,使内部看来像在访问一个数据库一样

# Load

img

  • Insert: 插入数据,不改变原数据

  • Insert_Update: 插入数据,对于主键相同的数据更新

  • Replace:把原来的数据都删除,不改变表以及索引的定义

  • Replace_Create:如果表存在的话,把原来的数据都删除,不改变表以及索引的定义,如果表不存在的话,创建表以及索引,再把数据插入

  • Merge into:merge两个表,如果和原来的表有某一行的规定字段是一样的话,就update,否则insertimg

  • Multiple inserts:把多行插入到多个表中img

    • 如果用insert first的话,key小于100的只会被加到customer表中
    • 用insert all的话,两个表都会加入
  • Replication:

    • data distribution(asymmetric):只有source可以update
      • 应用:通常source是data warehouse,target是data mart
    • data consolidation(asymmetric):多个source可以update,并整合到target库中,可能会有conflict
      • 应用:通常是从各个source中取数据整合到DW中
      • 应用:或者是从independent datamarts 整合到global DW中
    • update anywhere(symmetric):任何地方都可以update,会有更多的conflict,基本无应用img

    # Transformation

    img

    semantics:必须要统一语义,对相同的东西有相同的叫法

    Data integration需要考虑的东西:imgimg

Data cleansing:其中householding就是groupingimgimg

Data qualityimg

Toolsimg

Last Updated: 11/19/2024, 1:54:38 PM