学习目标:
数据抽取的方式和实现方法
学习内容:
- 数据的抽取方式:全量抽取和增量抽取
2.数据加载的方法:全表删除插入方式,触发器方式
学习时间:
有sql 基础的话 ,6个小时
学习产出:
1.技术笔记一篇
2.练习题一套,包括答案 源代码
一 概念
(1)全量抽取
全量抽取类似于数据迁移或数据复制,它将数据源中的表的数据原封不动的从数据库中抽取出来,并转换成自己的ETL工具可以识别的格式。全量抽取比较简单。
(2)增量抽取
增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据。在ETL使用过程中。增量抽取较全量抽取应用更广。如何捕获变化的数据是增量抽取的关键。对捕获方法一般有两点要求:准确性,能够将业务系统中的变化数据按一定的频率准确地捕获到;不能对业务系统造成太大的压力,影响现有业务。
二 数据加载的方法
1.全表删除插入方式是指每次抽取前先删除目标表数据,抽取时全新加载数据。该方式实际上将增量抽取等同于全量抽取。对于数据量不大,全量抽取的时间代价小于执行增量抽取的算法和条件代价时,可以采用该方式
2.触发器方式
触发器方式是普遍采取的一种增量抽取机制。该方式是根据抽取要求,在要被抽取的源表上建立插入、修改、删除3个触发器,每当源表中的数据发生变化,就被相 应的触发器将变化的数据写入一个增量日志表,ETL的增量抽取则是从增量日志表中而不是直接在源表中抽取数据,同时增量日志表中抽取过的数据要及时被标记 或删除。
3.对于分区表 只抽取一个分区的内容。
例子从数据下载平台,另外的数据库中提取数据到自己的数据库。
把用户testkz表PK_FBK_OPEN数据导入到目标库用户sys中PK_FBK_OPEN
1.在用户testkz,sys建立表格
create table PK_FBK_OPEN
(
obk_no VARCHAR2(14),
op_date NUMBER(6),
op_inst VARCHAR2(8),
paper_no VARCHAR2(18),
paper_type VARCHAR2(2)
)
插入数据
insert into PK_FBK_OPEN
select ‘130001’,‘201906’,‘121205’,‘13010519820605’,‘01’ from dual
insert into PK_FBK_OPEN
select ‘130002’,‘201908’,‘121206’,‘130105198207605’,‘02’ from dual;
Commit;
2.建立数据库链
CREATE DATABASE LINK db_testkz
CONNECT TO testkz IDENTIFIED BY haien
USING ‘orcl’;
3建立配置表
create table LOAD_