• ETL 解析


    extract-transform-load (ETL)
    Everyone understands the three letters: You get the data out of its original source location (E), you do something to it (T), and then you load it (L) into a final set of tables for the users to query.
    每个人都知道这三个字母:你得到的数据从它的原始位置(E),你对它做些什么(T),然后你把它(L)为查询用户的最终组表。

    这里简单列出数据核查阶段的工作项目:
    1、数据的唯一标识和键值
    2、数据类型
    3、数据表之间的关联关系
    4、表/字段之间的映射关系,1-1,1-m,m-m
    5、null数据
    6、日期数据,注意日期数据可能没有存储在日期型字段中,这是日期型数据不同于其他数据类型的一个特点


    映射文档应该包括以下内容:
    目标表:多维模型中的表名
    目标字段:多维模型中表字段
    目标列数据类型:
    表类型:维度/事实/桥接
    缓慢变化维:3类SCD
    源数据库:源数据库名/文件路径,
    源类型:DBMS类型,文件类型
    源表:源表名,可能多个表对应一个DW/DM中的表
    源列: 源列名
    源列数据类型:
    转换规则:定义源信息将经过怎样转换到DW/DM,通常用伪代码描述
    一般ETL工具都提供了源与目标的映射功能,但是笔者依然强烈建议单独编制mapping文档,以方便查阅。


    开发抽取过程之前需要确定的另一项重要内容就是System-Of-Record(SOR)

    提高抽取效率
    1、请求DBA在source段对抽取条件字段上创建索引;
    2、只抽取需要的数据,需要的数据就是最终会被加载到多维模型的数据,多余的不要提取;
    3、慎用Distinct,非常耗时
    4、操作数据库时使用集合操作命令,集合概念是数据库的基础理论,努力把非集合的操作转化为集合操作,将充分利用DBMS的长处
    5、不要在where条件中使用函数
    6、避免使用NOT子句,它将导致全表扫描

  • 相关阅读:
    getParameter和getAttribute的区别
    forward和sendRedirect的区别
    关于html/css的路径问题
    手写ORM
    数据库其他使用方法介绍
    Navicat使用与python操作数据库
    表查询
    表与表之间的三种关系
    SQL语法
    MySQL数据库的安装与使用
  • 原文地址:https://www.cnblogs.com/libbybyron/p/4180513.html
Copyright © 2020-2023  润新知