当前位置:文档之家› ETL层次结构

ETL层次结构

ETL层次结构
ETL层次结构

1.ETL简介

整个商务智能/数据仓库系统可以说是由下面三大部分组成:数据集成(ETL)、数据仓库和数据集市、多维数据分析和即时报表分析。作为一个完整的数据仓库(包含数据挖掘)开发过程基本上为下面所示:

数据库1

ETL部分

数据库2

数据仓库

多维分析/即时报表

数据挖掘

专家系统

我们可以看到ETL部分处在整个BI产品开发的最底层;如果把整个开发过程比喻成为一个“做饭的工作”,那么ETL部分有点像出去买菜。我们可以从多个菜市场,挑选我们做需要的蔬菜,肉类等。当然,我们处在一个选择的过程。如果菜不新鲜,我们完全可以不要它!而多维分析/即时报表便好像是整个的做饭过程(菜应该买完了)。而现在很多人更关心,明天我们吃什么?这便是预测分析。但是从整个开发过程来看,ETL是最基本的一项工作。如果没有菜,我们啥也吃不了!

2.ETL的具体应用

数据抽取:抽取主要是针对各个不同的数据库,将我们做需要的那部分数据抽取到我们的数据仓库中去。也便是我们从不同的菜市场买菜的过程

数据传输:菜买完了,我们的把菜拿回家中的厨房(数据仓库),这个过程我们称之为数据传输。

数据转化/清洗:到家了,我们要拿菜做饭,不能直接就吃,因此需要把菜洗一下,或者把烂掉的菜叶拔掉(在实际中,我们抽取来的数据很多需要清洗)。有时,我们会

发现有的家人十分讨厌圆的土豆,没关系,我们在把它放进厨房(数据仓库)前,

切成正方形,这样便没有问题了(虽然有点自欺欺人,只举个例子)。

数据加载:一切OK了,将我们准备好的菜放进厨房里,等着厨师们来做饭了。

3.具体应用

在整个开发中,我们选用的是cognos的DS进行ETL部分的工作。首先,要对几个名词有比较清楚地认识。

1 fact table:事实表。里面主要存放的是我们抽取完后的数据,存放在数据仓库中。例

如我们的A_ELCOUNT_ELFEE便是一个FACT TABLE(事实表)

2.DIMENSION TABLE:维度表。主要是存放一些维度数据。例如,我们在做多维分析时,需要用到他。例如我们的D_DATE便是一个日期的维度表。有一个概念需要明白,我们用维度表并不是来过滤数据的。过滤数据的是维度结构中的一个维度层次结构。

3.FACT BUILD:在DS中,用FACT BUILD进行一次抽取,把数据放到FACT TABLE 中。

4.DIMENSION BUILD:作为一次抽取,将数据存放到维度表里面去。

下面是COGNOS的DS进行ETL工作的一个整体结构图:

让我们先看一个图:

然后通过对应,便比较清楚了

一个完整的过程:

简介流程:

例如:我们需要进行一次数据的抽取,并且需要一个维度的层次结构对它进行控制。

首先,我们要建一个Catalog;我们所有的工作都将在此完成,从图中比较明显的看出。然后我们需要建立连接,即我们从那个数据库中取数据,然后放到那个数据库中。接着我们便要进行一个比较重要的步骤,建立Dimension framework。通过建立dimension framework我们可以用里面的某一个层次结构对我们的抽取做一个控制。然后我们需要在这个层次结构下,建立级别。当层次结构建完后,它会自动生成一个template,我们可以通过template来建立维度build,从而完成对维度数据的抽取。然后,建立一个fact build,用你所建好的维度来控制它。

具体流程:

1 建立framework

在dimension处单击右键,单击insert a dimension 命名为product_seraph 如下图:

这时,我们建立了一个framework

2 建立一个层次结构

使用DS的工具中的hierarchy wizard 来建立层次结构,选择tools中的hierarchy wizard

在这里面有三个选项。因为我们要建立一个层次结构,因此我们需要各个层里面的数据。一共有三种形式

1.当我们需要的层次数据只是从一个表里的每一行里面取,即所有的层次数据都在一行里面(星型结构)

2.当我们需要的层次数据从一个表中的个个行中取,即在一个表中,一行是一个层次数据3.我们所取得层次数据从不同的表中取(雪花型)

在这里面我们选择“雪花型”

下一步:

选择层次结构的名字,以及选择这个层次结构,在哪个framework里面下一步:

可以整个层次结构加一个最上层(因为我们表中原来的最顶层有可能有好几个)。在这里面,我们选择上;下一步:

在这里面,我们可以加入级别,选择allproduct_seraph,点击add

在这里面,我们选择着一层的名字,层内数据所在的数据库,以及所在的表,将productlinecode,productline选上,分别作为id,caption由于它不存在最顶层(我们只是人为的加入一个最顶层),因此它没有parent。点击OK完成一级。

同理,我们在加入第二层。

在这里面我们可以看到,在producttype表中有productlinecode字段,我们将它作为这一层的parent。

同理

点击OK

这样我们建完了一个层次结构

点击OK

这样我们建完了一个层次结构

然后,我们右键单击刚才建立的product_seraph,选择explore

这样一个层次结构便比较容易看的清楚

我们还可以看到

DS生成了4个Template 。我们可以通过Template去生成Dimension build。

相关主题
文本预览
相关文档 最新文档