当前位置:   article > 正文

ETL简介以及使用ETL(Kettle)进行数据接入的具体例子

etl

目录

ETL介绍

ETL简介

ETL包含的三部分

ETL基本概念

ETL资源库

ETL变量

业务表梳理以及接入规划

数据接入流程

业务表梳理

ETL任务规范

接入规划

数据接入中的方便工具

具体例子

导出生产表信息

1、ORACLE

2、MYSQL

ETL数据增量抽取任务开发

1、ORACLE通用流程

ORACLE通用流程图所需建立临时表

2、接口接入流程举例

3、文件数据从FTP获取、解压、解析与入库流程举例

任务调度


ETL介绍

ETL简介

ETLExtratctionTransformation and Loading)是构建数据仓库的基础技术,也是批量数据交换的基础技术,是将数据从源抽取、转换、整合、清洗并加载到目标的过程。

ETL包含的三部分

  1. 一.数据抽取:即确定数据源,采集原始数据,通过不同的数据接口,从不同的数据源中抽取数据。
  2. 二.数据转换:指接收来自不同系统的输入并将其转换成目标需要的格式的过程,包括数据的各种统计、合并、汇总、查询、过滤、排序、函数计算、合并拆分、转换等。数据清洗是对抽取的数据进行有效性检查,从中去除无效、重复、错误记录的过程。
  3. .   数据装载:负责将数据按照目标数据库元数据定义的表结构装入目标系统,即对经过前几步清洗和转换后的数据进行存储。

ETL基本概念

  • 步骤:ETL的基本构成块,最小的功能单位。
  • 转换:由多个步骤组成的业务处理流程。
  • 作业:由多个步骤和转换组成的业务流程。
  • 跳:步骤之间的关系,也可以看做步骤间的缓存。

ETL资源库

用来保存转换和作业的数据库。

ETL变量

命名参数:
变量的一种,作为转换或作业参数使用。
通过改变命名参数,可以实现流程的复用。

业务表梳理以及接入规划

数据接入流程

业务表梳理

ETL任务规范

接入规划

数据接入中的方便工具

1Excel

2、文本编辑器

具体例子

导出生产表信息

1、ORACLE

  1. with tmp as (
  2. SELECT
  3. A.CONSTRAINT_NAME tmp1,
  4. A.table_name tmp2,
  5. A.COLUMN_NAME tmp3
  6. FROM
  7. all_cons_columns A,
  8. all_constraints b
  9. WHERE
  10. A.CONSTRAINT_NAME = b.CONSTRAINT_NAME
  11. AND b.constraint_type = 'P'
  12. -- AND A.OWNER = 'XRAPUSER'
  13. -- AND A.TABLE_NAME = 'AGZX_HLWPJ'
  14. )SELECT
  15. '62.64.13.44' AS IP
  16. ,'xxx' AS SYS
  17. ,A.OWNER
  18. ,A.TABLE_NAME AS TABLE_NAME_EN --英文表名
  19. ,B.COMMENTS AS TABLE_NAME_CN --中文表名
  20. ,A.COLUMN_ID --字段序号
  21. ,A.COLUMN_NAME AS COLUMN_NAME_EN --字段名称
  22. ,C.COMMENTS AS COLUMN_NAME_CN --字段注释
  23. ,A.DATA_TYPE --字段类型
  24. ,A.CHAR_LENGTH --字段长度
  25. ,A.DATA_LENGTH --数据长度
  26. ,A.DATA_PRECISION --数据精度
  27. ,A.DATA_SCALE --小数位
  28. ,case when tmp.tmp1 is not null then 'Y' else null end as primary_key
  29. FROM ALL_TAB_COLUMNS A --表与字段信息
  30. LEFT JOIN ALL_TAB_COMMENTS B --表名信息
  31. ON B.OWNER = A.OWNER
  32. AND B.TABLE_NAME = A.TABLE_NAME
  33. LEFT JOIN ALL_COL_COMMENTS C --字段名信息
  34. ON C.OWNER = A.OWNER
  35. AND C.TABLE_NAME = A.TABLE_NAME
  36. AND C.COLUMN_NAME = A.COLUMN_NAME
  37. left join tmp
  38. on tmp.tmp2 = A.TABLE_NAME
  39. and tmp.tmp3 = A.COLUMN_NAME
  40. WHERE A.OWNER = 'XRAPUSER'
  41. ORDER BY A.OWNER,A.TABLE_NAME,A.COLUMN_ID

2、MYSQL

  1. SELECT
  2. "62.64.39.135" AS IP
  3. ,"sfbz" AS SYS
  4. ,TABLE_SCHEMA
  5. ,TABLE_NAME AS TABLE_NAME_EN
  6. ," " AS TABLE_NAME_CN
  7. ,ORDINAL_POSITION
  8. ,COLUMN_NAME AS COLUMN_NAME_EN
  9. ,COLUMN_COMMENT AS COLUMN_NAME_CN
  10. ,DATA_TYPE
  11. ,CHARACTER_MAXIMUM_LENGTH
  12. ,CHARACTER_OCTET_LENGTH
  13. ,NUMERIC_PRECISION
  14. ,NUMERIC_SCALE
  15. ," " as primary_key
  16. ,COLUMN_TYPE
  17. FROM information_schema.columns
  18. where table_name like "result_%" and table_schema="dzzyk" order by TABLE_NAME_EN ,ORDINAL_POSITION

ETL数据增量抽取任务开发

下列例子中的KTR流程,思路打通,其实开发还是比较顺畅,如果有需要下面流程参考的大佬可以一起交流,关于Kettle具体使用各个组件的方法,后续可以再出文章介绍。

1、ORACLE通用流程

本流程主要是使用Oracle的ORA_ROW_SCN字段来做增量的,可以参考。

当然,具体要使用这个流程的话,还有中间表需要建立:

ORACLE通用流程图所需建立临时表

2、接口接入流程举例

全量请求证件号码接口,数据入库

增量请求抓拍数据接口,数据入库:

3、文件数据从FTP获取、解压、解析与入库流程举例

任务调度

对CS端开发的任务进行周期性、一次性调度。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/789713
推荐阅读
相关标签
  

闽ICP备14008679号