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

news2024/10/7 6:41:16

目录

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
FROM
	all_cons_columns A,
	all_constraints b 
WHERE
	A.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_key
 FROM ALL_TAB_COLUMNS A          --表与字段信息
 
 LEFT JOIN ALL_TAB_COMMENTS B   --表名信息
   ON B.OWNER = A.OWNER
  AND B.TABLE_NAME = A.TABLE_NAME

 LEFT JOIN ALL_COL_COMMENTS C   --字段名信息
   ON C.OWNER = A.OWNER
  AND C.TABLE_NAME = A.TABLE_NAME 
  AND C.COLUMN_NAME = A.COLUMN_NAME
  
 left join tmp 
   on tmp.tmp2 = A.TABLE_NAME 
  and tmp.tmp3 = A.COLUMN_NAME
 
WHERE 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_TYPE
 FROM 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.coloradmin.cn/o/1618945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 IPAM 解决方案简化分布式网络管理

随着组织在数字领域的全球扩张,分布式网络是不可避免的,这意味着,随着 IT 基础设施的发展,组织需要适应,这包括在不断增长的系统需求、应用程序堆栈、各种协议和安全防御中监控、现代化和简化流程和资源。在有效管理现…

场景 - 分库分表

分什么 数据量大分表,并发大分库 分表字段如何选择 如果对交易订单进行分表,可以选择的东西很多,比如说商户id,用户id,地区等等 分表的时候要考虑到数据倾斜问题 数据倾斜 比如说按商户号进行分表,一共…

React-editor-js not showing up in a function component

React-editor-js not showing up in a function component react-editor-js 在react 函数组件中显示不出来 真的,我马上就想放弃它了。但是看它周下载量还挺多,我不信别人没遇到过。于是我继续在网络上挖呀挖。只是我一开始的方向错了。我一直以为我的写…

vite和webpacke的常规配置

文章目录 1、vite和webpacke的区分2、vite的常规配置介绍主要部分介绍vite基本配置示例 3、webpacke的常规配置介绍主要部分介绍Webpack 基本配置示例 1、vite和webpacke的区分 相同点: 都是构建工具,用于资源打包 ; 都有应用到摇树原理 tre…

大模型的实践应用22-谷歌Gemma AI大模型的架构原理,以及Gemma模型的部署安装本地教程

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用22-谷歌Gemma AI大模型的架构原理,以及Gemma模型的部署安装本地教程。谷歌Gemma AI大模型是由Google AI团队开发并开源。Gemma模型采用Transformer编码器-解码器架构,并加入了一些改进,例如使用稀疏注意力机制来提高推…

【八股】计算机网络篇

网络模型 应用层【HTTP👉报文/消息】 传输层【TCP或UDP👉段👉MSS】网络层【IP、寻址和路由👉MTU】 ①IP(Internet Protocol,网际协议)主要作用是定义数据包的格式、对数据包进行路由和寻址&…

一个java项目中,如何使用sse协议,构造一个chatgpt的流式对话接口

前言 如何注册chatGPT,怎么和它交互,本文就不讲了;因为网上教程一大堆,而且你要使用的话,通常会再包一个算法服务,用来做一些数据训练和过滤处理之类的,业务服务基本不会直接与原生chatGPT交互。…

刷代码随想录有感(44):对称二叉树

题干: 代码: class Solution { public:bool compare(TreeNode* left, TreeNode* right){//传入左右子树if(left NULL && right ! NULL) return false;//子else if(left ! NULL && right NULL) return false;//子else if(left NULL &…

8.4.3 使用3:配置单臂路由实现VLAN间路由

1、实验目的 通过本实验可以掌握: 路由器以太网接口上的子接口配置和调试方法。单臂路由实现 VLAN间路由的配置和调试方法。 2、实验拓扑 实验拓扑如下图所示。 3、实验步骤 (1)配置交换机S1 S1(config)#vlan 2 S1(config-vlan)#exit S…

用户请求经过哪些处理(公网)

DNS服务器之间协作: 递归DNS查询:用户的请求首先发送到递归DNS服务器。 查询根DNS服务器:递归DNS服务器查询根DNS服务器,以找到管理.com顶级域的TLD DNS服务器。 查询TLD DNS服务器:根DNS服务器响应带有TLD DNS服务器…

40. UE5 RPG给火球术增加特效和音效

前面,我们将火球的转向和人物的转向问题解决了,火球术可以按照我们的想法朝向目标发射。现在,我们解决接下来的问题,在角色释放火球术时,会产生释放音效,火球也会产生对应的音效,在火球击中目标…

Prompt Engineering,提示工程

什么是提示工程? 提示工程也叫【指令工程】。 Prompt发送给大模型的指令。比如[讲个笑话]、[用Python编个贪吃蛇游戏]、[给男/女朋友写情书]等看起来简单,但上手简单精通难 [Propmpt]是AGI时代的[编程语言][Propmpt]是AGI时代的[软件工程][提示工程]是…

ROS 话题订阅模型之自定义消息类型 C++实现

ROS 话题订阅模型之自定义消息类型 1.自定义消息类型好处 ROS提供了许多标准的消息类型,如 std_msgs/String、sensor_msgs/Image 等,涵盖了很多常见的数据类型和传感器数据。但是,在实际的开发中,我们经常会遇到需要传输的数据类…

云计算中的过度授权:安全隐患与应对策略

云计算凭借其弹性、可扩展等优势,已经成为诸多企业组织拓展业务的重要基础设施之一。然而,与传统IT架构相比,云计算环境的安全管理也面临着新的挑战。过度授权 (Overprivileging) 便是云安全领域亟待解决的主要问题之一,本文将带领…

CPPTest实例分析(C++ Test)

1 概述 CppTest是一个可移植、功能强大但简单的单元测试框架,用于处理C中的自动化测试。重点在于可用性和可扩展性。支持多种输出格式,并且可以轻松添加新的输出格式。 CppTest下载地址:下载地址1  下载地址2 下面结合实例分析下CppTest如…

【Linux】解决ubuntu20.04版本插入无线网卡没有wifi显示【无线网卡Realtek 8811cu】

ubuntu为Realtek 8811cu安装驱动,解决wifi连接问题 1、确认无线网卡的型号-Realtek 8810cu2、下载并配置驱动 一句话总结:先确定网卡的型号,然后根据网卡的型号区寻找对应的驱动下载,下载完成之后在ubuntu系统中进行编译&#xff…

【STM32+HAL+Proteus】系列学习教程4---GPIO输入模式(独立按键)

实现目标 1、掌握GPIO 输入模式控制 2、学会STM32CubeMX配置GPIO的输入模式 3、具体目标:1、按键K1按下,LED1点亮;2、按键K2按下,LED1熄灭;2、按键K3按下,LED2状态取反; 一、STM32 GPIO 输入…

C语言 字符类型

下面 我们来说字符类型 我们来看这个 保险单 金额 和 总额 都可以用数字类型 而性别则需要字符型 字符数据的存储 – ASCI码 字符类型 char 就是专为存储字符(如字母,标点和数字)而设计的类型。 使用单引号包含单个字符或转义字符去表示一个 char 类型的常量。 …

mac电脑搭建vue环境(上篇)

第一步:mac电脑要有homebrew,如何安装homebrew 点击下方 MAC安装homebrew-CSDN博客 第二步:homebrew安装node.js 第三步:安装npm 第四步:安装webpack 第五步:安装vue脚手架 第六步:可以在…

解决双击PDF文件出现打印的问题【Adobe DC】

问题描述 电脑安装Adobe Acrobat DC之后,双击PDF文件就会出现打印,而无法直接打开。 右键PDF文件就会发现,第一栏出现的不是用Adobe打开,而是打印。 重装软件多次仍然无法解决。 原因 右键菜单被改写了。双击其实是执行右键菜…