数据仓库应用(二):数据抽取、转换、加载(ETL),数据仓库etl


关联文章:
数据仓库应用(一):数据仓库模型设计
数据仓库应用(三): SQL Server 2005的数据仓库应用–联机分析OLAP

一、问题背景

某电子商务网站主要销售电子类产品,产品又分为几个大类别,包括:电脑类、手机类、键盘类等,每个类别内又细分为几个小类别,各类别下又有诸多的商品,每一个商品都有一个唯一的商品编号。用户可以通过注册成为会员来进行商品的下单购买。用户下单后会由系统自动产生一个唯一的订单号。

现在已为该电子商务平台创建了数据仓库,这次将为该电子商务平台数据仓库建立数据抽取、转换、加载框架并进行数据抽取、转换、加载工作。

二、操作步骤

1、给出各个目标维表(时间维、地区维、产品维、客户维等)数据结构及样例数据、相应源表(或源文件)数据结构及样例数据;给出目标事实表结构及样例数据、相应数据源表结构及样例数据(可能一个表,也可能多个表)。

数据已经放在github点击查看

以下是各个维表所对应数据源文件的名称:

    用户维表:tbl_user数据源表
    地区维表:tbl_area数据源表
    年龄维表:tbl_age数据源表
    时间维表:tbl_time数据源表
    学历维表:tbl_edu数据源表
    商品维表:tbl_goods数据源表
    商品类别维表:tbl_goods_type数据源表

2、根据需求分析结果设计数据仓库ETL架构,画出ETL架构图。

ETL架构

3、根据需求分析结果设计数据抽取、转换、加载(ETL)模型(概念模型、逻辑模型)。

概念模型:

概念模型

逻辑模型:

逻辑模型

4、设计数据抽取、转换、加载(ETL)策略。

数据抽取

    从数据源oracle数据库中的数据利用PLSQL软件根据维度的需要分批抽取到Execl表格中

    1. 利用sql语句查询出所需要字段的数据

    2. 在所查到的结果集中选中全部的内容,然后直接生成execl表数据

    3. 得到我们所需要的数据源



数据转换

    对于Execl表格中抽取到数据仓库中的数据进行如下转换和清洗

    1.对来自数据源中的数据的输出部分,如果有遇到字符串类型的数据源数据需要对这些字符串类型编码进行转换 

    2.将数据源中的时间数据转换成相对应的:年、月、日、季度四个字段

    3.将数据源中的用户的出生日期转换成年龄以及相对应的年龄段

    4.对于用户数据源表中拆分成多个维度时,对于地区维表和学历维表以及年龄维表提供生成主键的策略:


    将用户的ID加上性别的编码作为年龄维表的主键

    将用户的ID加上用户的年龄作为学历表的主键

    对于地区维表直接使用数字的编号来作为其所对应的主键

   5.对于缺失或错误的数据,我们采用人工填写其缺失或者错误的数据



数据加载

    利用SSIS工具将清洗、转换后的数据加载到数据仓库的所对应的维度表中

相关内容