ETL(一):(详细步骤)使用ETL将源数据抽取到EDW层

13 篇文章 6 订阅

1、ETL中4大常用客户端

在这里插入图片描述

  • R客户端主要用于创建文件夹,不同的项目主题,应该放在不同的文件夹中;

2、ETL开发流程

在这里插入图片描述

  • ①~③在D客户端中完成;
  • ④和⑤在W客户端中完成;
  • ⑥在M客户端中完成;

3、需求

  • 需求一:将orcle作为源数据库,将scott用户下emp表中数据,抽取到edw层。

4、创建edw用户和test1文件夹;

1)创建一个edw用户,用户存放数据转换、清洗后的数据;

① 登陆系统用户system,该用户拥有数据库最高权限;
在这里插入图片描述
② 创建edw用户;

  • 注意:这里只讲述怎么在PL-SQL中创建用户,使用代码创建用户和赋予用户权限你可以自己去百度。
    在这里插入图片描述

③ 给edw用户赋予权限,权限可以给高一点;
在这里插入图片描述
在这里插入图片描述

2)使用R客户端创建一个test1的文件夹;

① 启动R客户端,会是下图这个样子;
在这里插入图片描述
② 连接informatica服务器;
在这里插入图片描述
③ 创建test1文件夹;
点击文件夹–>创建;
在这里插入图片描述
输入文件名,点击确定即可;
在这里插入图片描述
创建完成以后,就会出现如下所示的test1文件夹;
在这里插入图片描述

5、开发步骤如下

  • 一个完整的ETL开发需要依次经过如下几层:OTLP–>ODS–>EDW–>DW
  • OLTP代表的是源数据层,因为数据的来源会不同,ETL支持好多中数据库中的数据,文件数据,这一层就是我们要处理的原始数据;
  • ODS代表的是数据存储层,存放在该层的数据和源数据中的数据一摸一样。为了数据能够保持其原有状态,不损坏原始数据,我们相当于复制了一份数据放在了ODS层,该层数据才是用于我们做ETL开发的数据;
  • EDW层是数据仓库层,用于存放我们进行数据转换、清洗过后的数据;
  • DW层是数据集市层,用于存放我们对EDW层数据进行分组、聚合后的数据;
  • 注意:现实开发中,ODS层的数据是存放在某个服务器上的,该层数据和源数据是一模一样的,因此,我们在学习过程中,可以跳过该层,直接操作源数据,但是实际开发中不要这么干,源数据一般我们是不动的,数据真的很宝贵。
1) 定义源表

在这里插入图片描述

  • 上图中第7步可以看到,我们选择了EMP表导入到info中,这一步实际上是将源数据库中的EMP表,直接映射到了info中,此时在info中既有EMP表的表结构,又有该表中的数据。
2) 定义目标表(注意这里定义的只是表结构,目前还没有任何数据);

① 通过源表生成目标表;
在这里插入图片描述
② 生成目标表后,给目标表命名,注意:这个命名很有讲究的;
在这里插入图片描述
③ 在上述“编辑表中”,做一个简单的列筛选,选择我们自己想要的列;
在这里插入图片描述
④ 此时你在查看该表,可以发现表名已经被修改,同时comm字段也被删除了;
在这里插入图片描述
⑤ 最关键的一步:将创建好的目标表,生成并执行到目标用户的数据库中去(有了这一步,才会在目标表中真正创建该表,只是一个表结构,没有任何数据),因此必须点击这个“生成/执行(SQL)”;
在这里插入图片描述
⑥ 当出现如下窗口,点击连接,仍然使用这个ODBC数据源(由于edw层仍然是存在oracle数据库中,因此这里仍然选择oracle连接驱动),我们要把数据加载到edw用户中,因而这里使用edw用户登陆,点击连接;
在这里插入图片描述
⑦ 按照如下1,2,3,4步骤进行操作,生成并执行建表语句。或者你可以不点击3,4,直接点击“生成并执行”即可;
在这里插入图片描述
⑧ 此时,在edw用户中可以查看edw_emp表,但是只有表结构,没有数据;
在这里插入图片描述

3) 创建映射

① 创建一个映射,命名为m_ora_edw_emp;
在这里插入图片描述
② 将源表拖拉到右边的灰色区域,可以发现你每拉进去一个表,就会给你生成一个SQ打头的表(图中的是SQ_EMP表);

  • 注意:SQ_EMP是由于你将Oracle中的表加载到info中,由于数据类型的不同,info会自动把源表,生成符合info中数据类型的一张表。

在这里插入图片描述

③ 将目标表拖拉到右边的灰色区域;
在这里插入图片描述
④ 进行源表和目标表之间的映射连接;
在这里插入图片描述
⑤ 当出现如下界面,表示连接成功;
在这里插入图片描述
点击CTRL+S,保存一下(这一步很重要),界面左下角出现如下界面,表示映射没有问题;
在这里插入图片描述
最后补充一条:实际开发过程中,一个目标表,创建一个映射。

4) 定义任务:任务又叫"会话(session)",定义任务是为了启动映射

① 在定义任务之前,先点击连接–>再点击关系;
在这里插入图片描述
② 定义一个连接源数据库的连接对象;
在这里插入图片描述
③ 定义一个连接目标数据库的连接对象;
在这里插入图片描述
上面两步完成以后,点击关闭即可;

④ 创建任务:点击任务–>点击创建;
在这里插入图片描述
⑤ 当出现下表时,给任务(又叫会话)命名,点击创建;
在这里插入图片描述
⑥ 当出现如下界面,选中m_ora_edw_emp,再点击确定;
在这里插入图片描述
上述操作完成后,点击完成;

⑦ 修改原表的;连接对象;
在这里插入图片描述
⑧ 修改目标表的连接对象:
在这里插入图片描述
⑨ 用CTRL+S保存一下,当出现如下界面,证明任务创建成功;
在这里插入图片描述

5)创建工作流:用来调度任务去执行工作

① 创建一个工作流;
在这里插入图片描述
② 当出现如下界面后,定义一个工作流的名称,点击确定;
在这里插入图片描述
③ 将工作流与任务进行连接;
在这里插入图片描述
④ 点击CTRL+S保存,当出现如下界面,证明工作流创建成功;
在这里插入图片描述
⑤ 启动工作流:
在这里插入图片描述
⑥ 上述操作会自动帮我们打开M客户端,
在这里插入图片描述
⑦ 此时,去edw用户下查看edw_emp表中是否有数据;
在这里插入图片描述

6、开发流程中,几个需要使用Ctrl+S的地方

  • 创建映射的时候,最后将源表和目标表进行关联时,需要使用Ctrl+S保存这个关联,映射才算创建成功。
    在这里插入图片描述
  • 定义任务的时候,最后也需要使用Ctrl+S保存创建的任务,任务才算是创建成功。
    在这里插入图片描述
  • 创建工作流的时候,当工作流创建后后,就需要使用Ctrl+S保存创建的工作流,这样工作流才算是创建成功。
    在这里插入图片描述

### 7、关于ETL开发中,命名需要注意的地方。

  • 创建映射(Mapping)的时候,命名是“m_ora_edw_emp”;
  • 定义任务(Session)的时候,命名是“s_ora_edw_emp”;
  • 创建工作流(Workflow)的时候,命名是“w_ora_edw_emp”;
  • 解释:英文字母首字母作为前缀,m表示创建的是一个映射;s表示创建的是一个任务;w表示创建的是一个工作流;ora_edw_emp表示把oraacle最为源数据库,将该数据库中的emp表抽取、转换到edw层。

8、映射、任务、工作流的作用

  • 映射主要是完成源表和目标表之间的数据流向,只有通过映射,源表中的数据才可以进入目标表中。任务主要是为了执行映射,映射创建成功后,数据并没有真正流入到目标表中,只有通过定义任务后,执行了这个映射,目标表中才会有数据。但是任务启动工作,需要通过创建工作流来调度,这也就是我们为什么创建了映射后,还要定义任务,定义任务后还要创建工作流的原因。
  • 4
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据分析与统计学之美

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值