ETL DataStage实现V11

ETL DataStage实现

前言

自开始知道数据库,就知道有数据仓库这个东西,数据仓库中一关键环节就是ETL。可是三四年过去了,由于没有接触数据仓库这个东西,对ETL自然是一知半解,更别提实现了。从20079月份开始,要做数据仓库项目了,接触了ETLETL中要用DS实现,项目中没有人会,组长要我一个月内,边工作边自学DS,然后给大家讲怎么用DS实现ETL。想起初学时的困难和迷惑,和现在一些同学的疑问,本人从开发的角度,简单介绍一下用DS实现ETL。由于本人的知识和经验的局限,自然有很多错误和不足,希望大家指正,共同进步,给初进入者一个参考。

适合人群是对DS实现ETL不了解,想有一个大概印象的人。其他人就帮忙补充或者修正一下这个东东吧!

有很多地方都是从网上或者其他文章上摘抄的,如有不妥,请指出,将会删掉。

本文都用DS代替DataStage

1.1    什么是ETL

既然是ETL DS实现,那就首先得介绍一下ETL了,呵呵。ETL即数据的抽取(Extract)、转换(Transform)、装载(Load),简单来讲,就是一个倒数的过程。原数据很难满足目标系统(就是数据仓库或者别的系统)的需要,就得对数据进行各种各样的处理了。

1.2    自编程实现与ETL工具

既然是一个导数的过程,应该不难实现了,而且工具还得学习,又那么贵,可为什么还要用工具呢?

试想以下场景:

一、项目中的源就是csv文件,目标库就只有一个oracle库,而且接口数量不大,数据基本没有什么转换,以后也没有多少接口增加;

二、项目中的源有多种文件,好多种数据库,接口的数量很多,数据的转换也比较复杂,以后还有很多接口,很多种源。

当然第一种情况,编程就很容易实现,而且如果程序做的不是太烂,性能,可维护性和可扩展性应该都不错。那项目上非得要用ETL工具呢,你就用吧,艺多不压身,呵呵。

第二种情况,编程也可以实现,问题是得有多少人,花多长时间,能实现个什么程度,它的性能,可维护性和可扩展性如何?如果这些问题都可以确定,OK,那就项目组编程实现好了。相信,大多数项目组,特别是给别人做项目的,会选择用ETL工具。

现代社会之所以发展的这么快,我认为主要的就是专业化分工(扯远了)。虽然ETL工具有这样那样的缺点,但它的技术门槛比较低,开发人员可以很容易的上手,做出的东西性能上也不会差很多,开发,调试,维护都可以很容易的在图形界面上实现。各种各样的源和转换工作,都可以用它的组件实现。相比较之下,这些方面要远好于自编程实现。

1.3    DS可实现功能

做为专业的ETL工具,DS可实现的功能自然是ETL中需要完成的功能,它基本上都可以做到。

DS的基础组件被称为Stage,它所实现的功能,大多是通过在图形界面上拖拉实现的。DS的基础Stage分为两类:Active Stage就是完成数据的转换加载等动作,Passive Stage就是与数据库或者文件进行连接,然后让Active Stage完成其他操作。

Passive Stage可以与文本文件,XML文件,几乎所有的数据库,Web Services, WebSphere MQ和主要的企业级应用如SAPSiebelOracle 以及PeopleSoft进行联接。

Active Stage几乎可以完成SQL所能完成的所有工作,如关联,过滤,去重。

Job Sequence可以将基础JOB联接起来,实现JOB间的依赖,互斥等操作。

再加上DS自带的Basic语言,可以实现各种定制Function,也可以在DS Job Job Crontrol中,除可以对JOB进行灵活多样的控制外,也可以完成大多数语言实现的功能。

DS也可以调用其他语言,如Shell(DOS)TCL,可以完成DS本身难以完成的任务。

当然,调度自然不可少,它支持相对不复杂的以时间为主的调度。

以及相关的源数据的管理,备份恢复,调试等功能。

第2章    DS入门

2.1    DS结构

DSC/S结构,由服务器端和客户端组成。服务器端可以装在WindowsUnix等平台上,客户端只能装在Windows上。客户端包含:DS Administrator; DS Manager; DS Designer; DS Director。服务端包含:DS Engine; MetaData Repository; Package Installer。总体架构见下图:


2.2    客户端组件介绍

我们开发,自然用得最多的是客户端,就重点介绍一下客户端。

2.2.1    DS Administrator

主要功能有:

1、添加和删除项目(Project),一个项目就相当于Oracle数据库的一个Schema,各个对象都必须属于特定的项目;

2License的管理;

3、设置全局参数和修改项目中的参数。项目中用到的通用参数可以在这里设置,调优需要修改的参数也都在这里。

既然功能这么重要,操作时要慎重哟!

2.2.2    DS Manager

主要功能有:

1、察看和修改DS元数据;

2、导入表定义,不止从数据库哟;

3exportimport DS Components,其实也就是DS的备份恢复功能;

4、创建Routine: Transformer Routine(Parallel RoutineServer Routine),就是在Transformer Stage中调用的function; Befor-after Job subroutine; Job Control Routine。除了Parallel JobTransformer Routine需要用C/C++写外,其他Routine都可以用DS Basic写,而且大多也是通用的。

5、批量编译JOB,不用一个个的编译(废话),记住这一点,就不会像我曾经那样上千个JOB一个个点了。

2.2.3    DS Designer

当然这个就是我们开发DS最主要的工作环境了。

1、与JOB相关的开发,编译,执行;

2Container,包括Local containersShared containersContainer就是将具有相同功能和输入输出参数的用几个Stage封装成一个模块;

3、新Parallel Stage的创建,就是自定义Stage

2.2.4    DS Director

1、执行JOB

2、察看JOB执行情况及状态,JOB调度,JOB执行日志

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注