Skip to content

对异构性数据的解决办法

字数
2021 字
阅读时间
8 分钟

存储数据的方式有两种常见的架构,分别是:联邦数据库与数据仓库

一、架构一:联邦数据库

  • 图示:

二、架构二:数据仓库

作用场合

用于支持决策过程

  • 图示:
  • ETL:数据的抽取、转换与加载
    • 转换:工作流形式
      • 工作流:上一个工作的输出可能是下一个工作的输入
  • 拓展:ELT ------- 先抽取,再加载,再转换
  • 数据仓库是面向主题的、集成的、时变的、非易失的数据集合

(一)面向主题的

  • 主题(Subject):特定的数据分析领域与目标
  • 面向主题:为特定的数据分析领域提供数据支持
  • 特定分析领域数据与传统数据库中的数据不同,它们是对传统数据库中的数据进行了抽取、加工和总结而形成的
  • 在每个主题中,都包含了该主题的所有信息,抛弃了与分析处理无关或不重要的数据,从而将原本分散在各个应用系统中的有关数据集中在一个主题中,形成有关该主题的完整一致的描述
  • 数据仓库是面向分析、决策人员的要求
  • 步骤:
    1. 抽取主题
    2. 确定每个主题所包含的数据内容
    • 举例图示:

(二)集成的

  • 一致化操作:
  • 数据更新/同步:
    • 全量更新
    • 增量更新 ------> 只更新变化了的数据,其操作为:变化数据捕获(CDC)
      • CDC方法:时标方法、△文件(DELTA文件)、映像文件、日志文件
        • 时标方法:指在数据库中的数据设-一个时标,如果新插入或更新一个数据记录,在记录中插入新的时标或加.上更新时的时标,然后根据时标判断哪些数据是变化的,并把变化的数据追加到数据仓库中去
        • DELTA文件:该文件是由应用产生的,并记录了应用所改变的所有内容。利用DELTA文件记录数据的变化,不需要扫描.整个数据库,所以效率较高,但生成的DELTA文件的应用并不普遍
        • 映像文件:在上次提取数据库数据到数据仓库之后及本次提取数据库数据之前,对数据库分别作一次快照,然后通过比较两幅快照的不同来确定要追加的数据。这种方法需要占用大量的系统资源,对系统的性能影响比较大
        • 日志文件:由于日志文件是数据库的固有机制,所以它对系统性能的影响比较小,另外它还有DELTA文件的优点,提取数据只局限于日志文件而不用扫描整个数据库。所以日志文件是最可行的一种方法
          • 日志:Data file 和 log file
            • log file
              • replay
              • 记录增删改查操作
  • 数据集成:将多个数据库中的数据通过数据集成方式形成数据仓库的数据
    • 主要方法
      • 统一:消除不一致的现象 --> 数据清洗技术
      • 综合:对原有数据进行综合和计算

1. 数据集成

  • 数据清洗(有效值和范围检验)
  • 维表与事实表的引用完整性检验:当维表和事实数据表之间的引用完整性破坏时,这类查询可能会导致检索数据不准确或不同查询之间数据的不一致性错误
  • 统一数据编码
  • 日期格式转换
  • 测量单位的转换

2. 数据清洗

  • 当数据从源数据库中提取到数据准备区后,必须先进行数据净化才可以装载到数据仓库中去
  • 数据清洗主要指对数据字段的有效值和范围检验。有效值的检验通常包括:范围检验、枚举字段取值和相关检验。
  • 范围检验要求数据保证落在预期的范围之内,通常对数据范围和日期范围进行检验,如对任何在指定范围之外的日期的发票都应删除
  • 枚举字段取值指对-一个记录在该字段的取值,若不在指定的值中,则应该删除
  • 相关检验要求将一个字段中的值与另外一个字段中的值进行相关检验,即在数据库中某个字段应与另一个字段形成外键约束

3. ETL

  1. 数据抽取(Data extraction)
    • get data from multiple, heterogeneous, and external sources
  2. 数据清洗(Data cleaning)
    • detect errors in the data and rectify them when possible
  3. 数据转换(Data transformation)
    • convert data from legacy or host format to warehouse format
  4. 数据加载(Data Load)
    • sort, summarize, consolidate, compute views, check integrity, and build indicies and partitions
  5. 数据刷新(Refresh)
    • propagate the updates from the data sources to the warehouse

(三)时变的

  • 数据仓库保存较长期的历史数据
    • 操作型数据库:当前数据
    • 数据仓库:提供历史数据(例如:5-10年的数据)
  • 数据仓库的表结构字段隐式或显式地包含时间类型
  • 图示:

(四)非易失的

  • 数据仓库中的数据是经过抽取而形成的分析型数据,不具有原始性,主要供企业决策分析之用,执行的主要是“查询”操作,一般情况下不执行“更新”操作。同时,一个稳定的数据环境也有利于分析、决策操作
  • 不需要事务处理,恢复,和并发控制等机制
  • 只需要两种数据访问
    • 数据的初始转载
    • 数据访问(读操作)
  • 图示:

三、区别

在讲这两个架构的区别之前,我们先熟悉一下数据库中的实表与虚表(视图)的区别,有助于帮助理解这两个架构的区别

(一)数据库示例

  • 在数据库中,表(Table)与视图(View)这两者又被称为实表虚表
    • 表(Table):有数据定义,也有实际效应
    • 视图(View):又称为 “虚表”, 只具有数据定义,需要使用SQL语句到表(Table)中查找具有实际效应的数据

(二)联邦数据库与数据仓库的区别

  • 联邦数据库只具有数据定义,客户需要通过联邦数据库去相应的数据库中查询
  • 数据仓库同时具有数据定义与实际效应,客户可以直接到数据仓库查询数据

四、优劣

(一)联邦数据库

  1. 本身不具有数据,而是分布在底层异构数据库
  2. 存储空间小
  3. 实时性较好
  4. 通信成本较小
  5. 查询性能较弱

(二)数据仓库

  1. 本身存储数据,提前对底层异构数据库进行了综合一致化处理
  2. 存储空间大
  3. 实时性较差,需要数据同步
  4. 通信成本较高
  5. 查询性能较高

贡献者

The avatar of contributor named as freeway348 freeway348

文件历史

撰写