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

news/2024/9/23 6:29:42/

目录

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

with tmp as (
SELECT A.CONSTRAINT_NAME tmp1,A.table_name tmp2,A.COLUMN_NAME tmp3
FROMall_cons_columns A,all_constraints b 
WHEREA.CONSTRAINT_NAME = b.CONSTRAINT_NAME AND b.constraint_type = 'P'-- AND A.OWNER = 'XRAPUSER'-- AND A.TABLE_NAME = 'AGZX_HLWPJ'
)SELECT '62.64.13.44'       AS IP,'xxx'               AS SYS,A.OWNER,A.TABLE_NAME        AS TABLE_NAME_EN      --英文表名,B.COMMENTS          AS TABLE_NAME_CN      --中文表名,A.COLUMN_ID                               --字段序号,A.COLUMN_NAME       AS COLUMN_NAME_EN     --字段名称,C.COMMENTS          AS COLUMN_NAME_CN     --字段注释,A.DATA_TYPE               --字段类型,A.CHAR_LENGTH             --字段长度,A.DATA_LENGTH             --数据长度,A.DATA_PRECISION          --数据精度,A.DATA_SCALE              --小数位,case when tmp.tmp1 is not null then 'Y' else null end as primary_keyFROM ALL_TAB_COLUMNS A          --表与字段信息LEFT JOIN ALL_TAB_COMMENTS B   --表名信息ON B.OWNER = A.OWNERAND B.TABLE_NAME = A.TABLE_NAMELEFT JOIN ALL_COL_COMMENTS C   --字段名信息ON C.OWNER = A.OWNERAND C.TABLE_NAME = A.TABLE_NAME AND C.COLUMN_NAME = A.COLUMN_NAMEleft join tmp on tmp.tmp2 = A.TABLE_NAME and tmp.tmp3 = A.COLUMN_NAMEWHERE A.OWNER = 'XRAPUSER' 
ORDER BY A.OWNER,A.TABLE_NAME,A.COLUMN_ID 

2、MYSQL

SELECT "62.64.39.135"      AS IP,"sfbz"               AS SYS,TABLE_SCHEMA,TABLE_NAME        AS TABLE_NAME_EN      		," "          AS TABLE_NAME_CN     						,ORDINAL_POSITION                           		,COLUMN_NAME       AS COLUMN_NAME_EN   				,COLUMN_COMMENT          AS COLUMN_NAME_CN  ,DATA_TYPE               											,CHARACTER_MAXIMUM_LENGTH            					,CHARACTER_OCTET_LENGTH            						,NUMERIC_PRECISION        											,NUMERIC_SCALE            									," " as primary_key,COLUMN_TYPEFROM information_schema.columns  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端开发的任务进行周期性、一次性调度。


http://www.ppmy.cn/news/1446110.html

相关文章

智慧农场系统 搭建重点,会用到哪些三方服务?

智慧农场小游戏的搭建重点主要集中在游戏设计、用户体验、数据安全和稳定性等方面。为了实现这些目标,可能会用到以下第三方服务: 游戏引擎和开发工具:使用成熟的游戏引擎和开发工具可以极大地简化开发流程,提高开发效率。例如&a…

【ARMv9 DSU-120 系列 4 -- Utility bus 详细介绍 1】

请阅读【Arm DynamIQ™ Shared Unit-120 专栏 】 文章目录 DSU-120 Utility bus事务类型访问大小事务长度安全状态总结缓存控制(ARCACHEU 或 AWCACHEU)突发类型(ARBURSTU 或 AWBURSTU)锁定信号(ARLOCKU 或 AWLOCKU)Utility bus acceptance capabilities

重磅!!!监控分布式NVIDIA-GPU状态

简介:Uptime Kuma是一个易于使用的自托管监控工具,它的界面干净简洁,部署和使用都非常方便,用来监控GPU是否在占用,非常美观。 历史攻略: docker应用:搭建uptime-kuma监控站点 win下持续观察…

【Kotlin】Channel简介

1 前言 Channel 是一个并发安全的阻塞队列,可以通过 send 函数往队列中塞入数据,通过 receive 函数从队列中取出数据。 当队列被塞满时,send 函数将被挂起,直到队列有空闲缓存;当队列空闲时,receive 函数将…

Windows Server 2019/2022 开启

我的环境是Windows Serve 2022 Datacenter, 21H2, 需要使用Hyper-V 与 VMWare Workstation共存,但是在服务器管理器中找不到Windows Hypervisor Platform安装选项。在Win10中是启动关闭Windows功能中,而server中找不到。 解决方法: 以管理员…

机器学习理论基础—集成学习(1)

机器学习理论基础—集成学习 个体与集成 集成学习通过构建并结合多个学习器来完成学习任务,有时也称为多分类系统等。 分类: 根据集成学习中的个体学习器的不同可以分为同质集成(集成的学习器相同例如全部是决策树)&#xff0c…

基于SSM的“航空机票预订系统”的设计与实现(源码+数据库+文档+PPT)

基于SSM的“航空机票预订系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页 公告管理 用户注册 留言评论 会员管理 航班管理 订…

界面组件DevExpress Blazor UI v23.2 - 网格、工具栏功能全新升级

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 DevExpress Blazor控件目前已经升级…