zoukankan      html  css  js  c++  java
  • 搭建数据仓库第02篇:数据仓库技术架构解决方案

    上一篇开了个头,从Kimball数据仓库生命周期方法角度,列出了数据仓库搭建的核心步骤,从这一篇开始将讲述技术路径:技术架构设计和产品选择和安装。

    首先先以某公司的数据仓库的总体架构图的视角,了解整个数据仓库搭建起来后结构大体的样子。

       image

    1. 最底层是数据源,一般是在线的数据库或者是文件系统。对于在线数据库,一般是操作型数据库,比如mysql,oracle等,一般是存在主库和从库,从库用来做备份,主库出现问题时切换到从库,从而尽可能的避免影响线上的应用,从库的数据是从主库使用工具同步过来的,比如oracle的shareplex等,所以从库有一定的延迟。文件系统一般使用的格式是csv或者txt。不推荐excle格式的文件,容易出现格式问题。
    2. 数据仓库层包含ODS,EDW,DM,接口数据,归档数据以及调度监控,元数据管理,主数据管理和数据质量监控
      • ODS层是从数据源抽取(E),经过格式的转换(T),最后加载(L)到数据仓库中的。
        • ETL过程中数据的粒度不会变化,一般除了简单的格式变化,跟线上的数据库的表基本一致。
        • 抽取是对从库的表的数据进行抽取,抽取的时候需要对主从库是否存在延迟进行监测。
        • 有的时候是加载操作在转换操作之前,也就是ELT,这取决于转换操作在数据仓库中是否更加容易操作,在一般的TB、PB的数据仓库中,数据的转换函数并不是很丰富,即便是有,有时候性能也不是很好,所以都是在抽取数据到文件之后,对文件进行转换操作处理。
        • 抽取的时候一般可以选择增量抽取还是全量抽取,增量抽取一般需要根据时间戳,全量抽取的时候可以通过ROW NUM字段进行批量式的抽取。
        • 加载的目标表可以是临时表staging table,全量ODS表,分区ODS表。加载到临时表一般是针对增量抽取而言的,通过将增量数据全部load到临时表之后,通过merge操作更新ODS表。加载到全量ODS表,如果是增量抽取,那么就用新增数据merge历史全量数据,此时确保没有应删除操作;如果是全量抽取,那么直接用新抽取的数据覆盖历史数据。 分区ODS表分为增量分区(每个分区是增量数据)和全量分区(每个分区是历史全量数据),增量分区表可以选择增量抽取,全量分区,在没有硬删除的时候可以采用增量抽取,然后merge前一个分区的数据生成最新的分区,有硬删除的情况下只能采用全量抽取,然后直接生成最新的分区。
      • EDW层是将ODS层的数据按照主题来生成基础数据。EDW之上的是DM层。针对特殊的APP应用或者部门等,可以通过EDW的数据生成接口数据,专门服务于应用软件等。
      • 任务调度,从数据源—>ODS—>EDW—>DM/接口层的数据流的计算都需要使用工具或者编写脚本来执行,执行的过程需要调度系统来安排,过程中需要管理任务的执行频率,优先级,任务的依赖,以及任务运行时的监控(失败或者延迟)等等。
      • 元数据和主数据的管理,这一块是比较难于管理的部分。
      • 数据质量监控
    3. 数据应用层主要是数据的分析、挖掘和展示。

    系统角度上,影响建设数据仓库的解决方案的因素

    • 操作出现的频率,即业务部门每隔多长时间做一次查询分析。
    • 在系统中需要保存多久的数据,是一年、两年还是五年、十年。
    • 用户查询数据的主要方式,如在时间维度上是按照自然年,还是财政年。
    • 用户所能接受的响应时间是多长、是几秒钟,还是几小时。

    产品选择角度上,影响建设数据仓库的解决方案的因素

    • 厂商的背景和支持能力,能否提供全方位的技术支持和咨询服务。
    • 数据库对大数据量(TB级)的支持能力。
    • 数据库是否支持并行操作。
    • 能否提供数据仓库的建模工具,是否支持对元数据的管理。
    • 能否提供支持大数据量的数据加载、转换、传输工具(ETT)。
    • 能否提供完整的决策支持工具集,满足数据仓库中各类用户的需要。

    在了解了整个数据仓库自上而下的框架之后,数据的同步,数据的存储计算,数据的计算,数据的分析,数据的展现,这些阶段上建设数据仓库有什么样的解决方案呢?

    • 首先是数据同步(数据源-ODS层):ETL工具的选择
      • 主流的ETL工具有Informatica,Datastage,Kettle

     

    (借此吐槽一下博客园表格的使用太不和谐了,做好的表格,整篇文章格式全乱了! 只能做好截个图)

      • 其他的ETL工具有ODI,Beenload,Cognos等等
    • 其次是数据的存储计算(EDW-DM):数据仓库
      • 数据仓库主流有Teradata,Exadata,GreenPlum,SybaseIQ,Hive

     

    • 数据的分析和报表展示:OLAP
      • 5大主流BI工具
        • 参考http://www.cnblogs.com/cold/archive/2011/10/18/2216272.html

  • 相关阅读:
    opencvsharp BitmapSource图片截取问题
    wpf RenderTargetBitmap保存控件为图片时图片尺寸不对的问题
    c# ??和运算符先后的问题
    wpf 窗口打开后默认设置控件焦点
    win10 requireAdministrator设置开机自启动无效的解决方案
    Gogs webhook钩子 验签 (PHP版本)
    MongoDB管理用户的认证机制
    RocketMQ使用指南及参数详解
    微信公众号h5获取用户openId的方法和步骤
    php中常用的正则表达式函数
  • 原文地址:https://www.cnblogs.com/benchen/p/6028743.html
Copyright © 2011-2022 走看看