• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >DB2 > 使用 DWE-SQW 实现 ETL 过程 1

使用 DWE-SQW 实现 ETL 过程 1

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了etl过程,数据etl过程,数据预处理 etl 过程,etl过程图,etl存储过程等相关知识,希望本文的分享对您有所帮助
</div>

摘要

本文介绍了 IBM DWEv9.1.1 产品包中的一个新成员:SQW(SQL Warehousing Tool)。 SQW 是一种 ETL(Extract Transform and Load) 工具,它可以实现多种数据源到 DB2 数据仓库的抽取、转换和加载,并且实现这一过程的可视化、自动化和可控化。

从需求讲起

一个跨国零售店,主要经营衣服、鞋、饰品、电器、食品,有着多年的经营历史。为了增加率润,公司需要分析多年的历史销售数据,得到客户的消费趋势并且找到公司现存的销售问题。为了达到这个目标,销售经理需要分析销售状态并且找到可以改进的问题,数据架构师则需要建立一个数据仓库来向销售经理提供相关的数据。

图 1. 零售公司的数据仓库需求

使用 DWE-SQW 实现 ETL 过程 1

数据架构师首先根据公司现存的交易型数据库,设计出一个供公司进行销售分析的分析型数据库。

图 2. 数据仓库模型

使用 DWE-SQW 实现 ETL 过程 1

下面他的问题来了,怎样将多年的历史数据导入这个数据仓库数据库里呢?公司的数据库系统运营多年,产生了多个历史备份,并且其间系统经过了多次升级,数据库结构也已经大相径庭,因此怎样将这些零散的、结构不一致的数据导入到一个数据库仓库变成了一个非常复杂的问题。

SQW 的功能和相关术语

SQW 可以实现多数据源到 DB2 数据源的数据导入,可以将多个异构数据源的数据经过加工整理导入到 DB2 数据仓库里 , 并且可以按时按期循环执行。下面我们将介绍如何使用 SQW 在可视化环境中进行数据的转移、整理和加载的。

SQW 分为设计和生产两个环境,也可以描述为客户端和服务器。其中 DWE Design Studio 是内置于 Eclipse 的客户端,用来完成各种数据流和控制流的设计调试。而 DWE Admin Console 则是部署在 WebSphere 之上的一个服务器,用来管理、运行和监控 ETL 进程。

为了便于描述,这里有一些术语名词需要解释:

ETL 是 Data Extraction, Transformation and Loading 的首字母缩写,是数据仓库、数据挖掘以及商业智能等技术的基石 , 其主要用来实现异构多数据源的数据集成。

工作空间 (workspace):一个本地的目录,用来存放工程文件。DWE Design Studio 运行时,必须指定一个 workspace。同一个 workspace 同时只能由一个用户打开。

数据仓库工程 (Data Warehouse Project):为了完成某项任务而设计的 model 和 flow 的集合。一个 Workspace 中可以包含多个 Project.

SQL 执行数据库 (SQL Execution Database):用于执行 SQL 的中间数据库,可以是源数据库,或者目标数据库,也可以是一个单独的数据库,物理上必须是 DB2。

数据流 (dataflow):通过对源文件或者源表的一系列转换步骤,从而加载或者更新数据到目标文件或者目标表中。任何 dataflow 都需要在一个 SEDB 上执行。

数据子流 (subflow):dataflow 的一个子集,用来定义一些通用的数据转换操作,源和目标可以在 dataflow 中指定,并引用 subflow。

控制流 (controlflow):用于序列化一个或多个 dataflow,并集成了如 FTP,Command,Email 等多种功能的流程,也可以定义分支 (branch) 和循环 (iterator)。

数据仓库应用 (application):设计完成 controlflow 之后,为了部署到 DWE Admin Console 上而需要对 code 打包,application 正是打包之后生成的 zip 文件,一个 application 可以包含多个 control flow。

进程 (process):部署到 DWE Admin Console 里的 application 的下一个级别,它对应于 design studio 的一个 control flow。

实例 (instance):process 的每一个具体执行。

数据仓库 application 的产生和运行

数据仓库 application 从产生到运行到卸载有一个生命周期,要经过下述的步骤:

安装并建立设计和运行的环境:可以通过 DWE 安装介质来安装 SQW,其中 DB2 和 WAS 是必须的。

在 Design Studio 中设计、验证、运行和调试数据流。

产生可部署的应用包,做部署到 DWE Admin Console 的预备工作。

在 DWE Admin Console 中部署 Design Studio 生成的应用包。

在 DWE Admin Console 中运行、定时、管理和监控进程,以完成 ETL 过程。

如果应用包不再需要运行,可以卸载。

下图描述了 application 从产生到运行的整个过程。

图 3. application 从产生到运行的整个过程

使用 DWE-SQW 实现 ETL 过程 1

从上图可以清晰的看出完成一个 application 经历了设计、部署预备、部署、运行和管理五个阶段。

在 DWE Design Studio 中建立 SQW 的设计环境

DWE Design Studio 是以 eclipse 为基础平台的开发的一套数据仓库设计工具。上面集成众多插件以支持数据仓库的设计开发。DWE Design Studio 通过 xmi 作为原数据模型,保存并解析用户的设计图形。其基本结构如下所示:

图 4:DWE Design Studio 基本结构图

使用 DWE-SQW 实现 ETL 过程 1

Design Studio 同时也是一个集成的开发环境和元数据系统,它承担了下述的一些功能:

导入、建立物理模型。

建立、执行、调试数据流。

建立、执行、调试控制流。

打包控制流到可部署文件。

用户要在 Design Studio 中完成一个设计,需要遵循如下所示的基本工作流程:

图 5. 在 Design Studio 中的设计流程

使用 DWE-SQW 实现 ETL 过程 1

1、 导入数据模型

数据模型代表某种具体的数据库结构,由表、视图、函数等数据库对象组成,是数据库的映射。数据模型是 SQW 的可操作对象。通过数据模型,SQW 可以获知预操作数据库的基本结构,并且根据数据模型,生成相应的 SQL 语句。用户可以修改数据模型以适应自己的需要,SQW 可以根据修改后的数据模型同步数据库结构。下图就是导入后的数据模型

图 6. 导入后的数据模型

使用 DWE-SQW 实现 ETL 过程 1

2、 建立、执行、调试数据流

用户可以使用 DWE Design Studio,通过 GUI 的方式快速的设计出合适的数据流图,然后可以在 Design Studio 中执行修改数据流图,验证数据的逻辑走向是否符合用户的期望。同时,DWE Design Studio 为用户提供了生成代码的功能,生成后的代码是一种类 Java 的代码,由 SQL 语句、TRY/CATCH/FINALLY 语句、属性定义语句组成。SQW 执行解释器所能控制的最小控制单元叫 SQL 单元,每一个 SQL 单元也是由一组 SQL 语句、TRY/CATCH/FINALLY 语句、属性定义语句组成。SQW 执行解释器将这些 SQL 单元解释成 node,并且赋予唯一的名称。因此如果数据流在 DWE Design Studio 里执行错误或者返回了不正确的结果,用户就可以以 node 为最小单元来对该数据流进行调试,发现数据流问题所在。

清单 1. 生成的数据流代码

……
EPGTXN ( ) : type TXN : node /graph12
(db connection = [SALES])
{
( ):CODE_UNIT, node /graph12/node9;
CODE_UNIT:JDBC
( )
{
  CREATE TABLE SQWTMP_1_INPUT2_017(
    COL_1 DATE,
    COL_2 VARCHAR(15),
    COL_3 VARCHAR(15),
    COL_4 INTEGER)
}
( ):CODE_UNIT, node /graph12/node12;
……

3、建立、执行、调试控制流

如前面的定义:数据流通过对源文件或者源表的一系列转换步骤,从而加载或者更新数据到目标文件或者目标表中。控制流则是用于序列化一个或多个 dataflow,并集成了如 FTP、Command、Email、循环控制、分支控制等多种功能的流程。与数据流不同的是,控制流所生成的代码并不包含 SQL 语句,但是控制流同样是由 node 组成,用户同样可以以 node 为最小单元来对控制流进行调试,发现控制流问题所在。

清单 2. 控制流生成的代码

……
CODE_UNIT:SHELL
(OperatorTag = /flow:06/op:02
OperatorLabel = DB2_Shell_02
Activity: = DB2_Shell_02
@RESOURCE =
@FILE = ${VMODVALVAR01/var_design}${VMODVALVAR01/var_deployprep}
        ${VMODVALVAR01/var_deployment}${VMODVALVAR01/var_runtime}
        ${VMODVALVAR01/var_execute}
@ARGUMENTS =
commandType = DB2Shell
logLevel = 0
traceLevel = 0
……

4、 打包控制流到可部署文件

控制流调试无误后,用户

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 使用 DWE-SQW 实现 ETL 过程 1

相关文章

  • 2017-06-28使用 Rational Data Architect 定义和实施数据对象命名标准
  • 2017-06-28DBA必须具备跨平台管理不同RDBMS的能力
  • 2017-06-28DB2 9中怎样查询 XML 数据
  • 2017-06-28DB2中有关日期和时间的函数及应用
  • 2017-06-28按照事务类型分析DB2事物的性能
  • 2017-06-28数据架构师: 当数据不再受欢迎
  • 2017-06-28提高数据库性能 让无关处理放到外层实现
  • 2017-06-28DB中如何查询Table占用空间的大小
  • 2017-06-28使用DB2look重新创建优化器访问计划(9)
  • 2017-06-28DB2 Express-C:数据库开发者的免费利器

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • DB2 UDB简述
    • DB2中REVERSE函数的实现方法
    • POWER5+和AIX 5L多页面支持下的IBM DB2 Enterprise 9性能
    • DB2大事记
    • 利用物化查询表提高 WebSphere Information Integrator 的性能
    • 数据架构师:DB2 数据仓库性能,第 1 部分:把 OLTP 调优技能转换为对基于 DB2 的业务智能化系统的有效性能管理
    • DB2 LOAD 工具使用技巧集合
    • 使用WebSphere Information Integrator自主监控工具维护联邦数据
    • DB2 常用命令小结
    • DB2 最佳实践: 最小化计划下线最佳实践

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有