zoukankan      html  css  js  c++  java
  • 数据仓库 2.数据仓库设计思路及ETL设计思路

    一、数据仓库构建思想

    构造数据仓库有两种方式:一是自上而下,一是自下而上。

    Bill Inmon先生推崇“自上而下”的方式,即一个企业建立唯一的数据中心,就像一个数据的仓库,其中数据是经过整合、经过清洗、去掉脏数据的、标准的,能够提供统一的视图。要建立这样的数据仓库,并不从它需要支持哪些应用入手,而是要从整个企业的环境入手,分析其中的概念,应该有什么样的数据,达成概念完成整;(会考虑到很全面的设计)

    Ralph Kimball先生推崇“自下而上”的方式,他认为建设数据仓库应该按照实际的应用需求,加载需要的数据,不需要的数据不要加载到数据仓库中。这种方式建设周期较短,客户能够很快看到结果。(针对客户的需求,需求要什么就做什么)

    二者都要达到同一个目标:企业级数据仓库。实际上在建设数据仓库的时候,一般都参照这两种方式结合使用没有硬性规定。

    二、ETL(Extract/Transformation/Load)

    用户从数据源中抽取所需的数据,经过数据清洗、转换,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去;ETL是数据仓库系统中最重要的概念之一,ETL在一个数据仓库系统项目中要花一半以上的时间。

    1) ETL调度目标

    数据来源:数据库、数据库文件、文本文件、程序生成(派生列)

    系统数目:单个系统、多个系统(过多的系统可以考虑接口实现)

    数据库的类型:同种数据库/多种数据库

    2) ETL调度参数设计

    调度优先级/调度次序/中断标志/回滚标志/成功标志/调度开始结束时间等

    3) ETL调度日志管理

    文件记录/数据库记录

    作业名称/作业执行开始-结束时间/作业执行结果/异常信息捕获/作业编号等

    4) ETL调度JOB设计

    数据文本文件加载/SQL在程序中调用/存储过程/ETL工具的WORKFOLW

    5) ETL调度策略设计

    全量数据加载:用户信息类数据,状态会更新发生变化的数据

    增量数据加载:流水分批调度设计,抽取数据一般在比较闲暇的时候进行,凌晨时候比较多,而且按照要分析数据的周期,还分为按日、按月数据;由于涉及到的业务系统的数据量庞大,需要分批进行抽取,以及抽取数据后面的一系列处理过程。

    调度并发设计:JOB并发涉及、并发冲突设计、异常处理设计、成功/错误退出方式

    三、存储管理和模型设计

    数据仓库的真正关键是数据的存储和管理。数据仓库一般遇到的几个问题:

    1)大数据量的存储和管理

    数据库的设计,安装、集成根据数据抽取详细设计要求设计数据库应用方案等;

    2)针对决策支持查询的优化

    分区表、索引、簇集索引、MQT、SQL优化等方式。

    3)支持多维分析的查询方式

    是否有相关报表软件及查询方式的优化。

  • 相关阅读:
    [Web] 网络安全(SSH SSL HTTPS)
    [OS] 操作系统课程(三)
    [刷题] 203 Remove Linked List Elements
    [刷题] 206 Reverse Linked List
    for循环中let与var的区别,块级作用域如何产生与迭代中变量i如何记忆上一步的猜想
    es6入门1-- let与var的区别详解
    精读JavaScript模式(八),JS类式继承与现代继承模式其一
    精读JavaScript模式(七),命名空间模式,私有成员与静态成员
    精读JavaScript模式(六),Memoization模式与函数柯里化的应用
    精读JavaScript模式(五),函数的回调、闭包与重写模式
  • 原文地址:https://www.cnblogs.com/MR-zhang-01/p/9180787.html
Copyright © 2011-2022 走看看