如何使用etl自动进行数据更新处理

如何使用etl自动进行数据更新处理,第1张

需要一整套的ETL作业流程:数据连接——抽取转换——流程调度——任务监控。你说的自动进行数据更新处理,至少需要前三步。这里有一个简单好用的ETL工具:昊合数据整合平台HaoheDI,你可以体验体验,他们官网上有部署,直接在云服务器上,可以去实际 *** 作体验,你说的这个借助这个工具很好实现。

1、下载最新的kettle版本
2、把达梦对应JDK版本的jdbc驱动放在D:\kettle\pdi-ce-440-stable\data-integration\libext\JDBC安装目录下面
3、在connection type中选择generic database右侧填好url和Driver

ETL是数据仓库中的非常重要的一环,是承前启后的必要的一步。ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
下面给大家介绍一下什么是ETL以及ETL常用的三种工具——Datastage,Informatica,Kettle。
一、什么是ETL?
ETL,Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
数据仓库结构
通俗的说法就是从数据源抽取数据出来,进行清洗加工转换,然后加载到定义好的数据仓库模型中去。目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
ETL是BI项目重要的一个环节,其设计的好坏影响生成数据的质量,直接关系到BI项目的成败。
二、为什么要用ETL工具?
数据处理的时候,我们有时会遇到这些问题:
▶ 当数据来自不同的物理主机,这时候如使用SQL语句去处理的话,就显得比较吃力且开销也更大。
▶ 数据来源可以是各种不同的数据库或者文件,这时候需要先把他们整理成统一的格式后才可以进行数据的处理,这一过程用代码实现显然有些麻烦。
▶ 在数据库中我们当然可以使用存储过程去处理数据,但是处理海量数据的时候存储过程显然比较吃力,而且会占用较多数据库的资源,这可能会导致数据资源不足,进而影响数据库的性能。
而上述遇到的问题,我们用ETL工具就可以解决。ETL工具具有以下几点优势:
1、支持多种异构数据源的连接。(部分)
2、图形化的界面 *** 作十分方便。
3、处理海量数据速度快、流程更清晰等。
三、ETL工具介绍
1、Datastage
IBM公司的商业软件,最专业的ETL工具,但同时价格不菲,适合大规模的ETL应用。
使用难度:★★★★
2、Informatica
商业软件,相当专业的ETL工具。价格上比Datastage便宜一点,也适合大规模的ETL应用。
使用难度:★★
3、Kettle
免费,最著名的开源产品,是用纯java编写的ETL工具,只需要JVM环境即可部署,可跨平台,扩展性好。
使用难度:★★
四、三种ETL工具的对比
Datastage、Informatica、Kettle三个ETL工具的特点和差异介绍:
1、 *** 作
这三种ETL工具都是属于比较简单易用的,主要看开发人员对于工具的熟练程度。
Informatica有四个开发管理组件,开发的时候我们需要打开其中三个进行开发,Informatica没有ctrl+z的功能,如果对job作了改变之后,想要撤销,返回到改变前是不可能的。相比Kettle跟Datastage在测试调试的时候不太方便。Datastage全部的 *** 作在同一个界面中,不用切换界面,能够看到数据的来源,整个job的情况,在找bug的时候会比Informatica方便。
Kettle介于两者之间。
2、部署
Kettle只需要JVM环境,Informatica需要服务器和客户端安装,而Datastage的部署比较耗费时间,有一点难度。
3、数据处理的速度
大数据量下Informatica与Datastage的处理速度是比较快的,比较稳定。Kettle的处理速度相比之下稍慢。
4、服务
Informatica与Datastage有很好的商业化的技术支持,而Kettle则没有。商业软件的售后服务上会比免费的开源软件好很多。
5、风险
风险与成本成反比,也与技术能力成正比。
6、扩展
Kettle的扩展性无疑是最好,因为是开源代码,可以自己开发拓展它的功能,而Informatica和Datastage由于是商业软件,基本上没有。
7、Job的监控
三者都有监控和日志工具。
在数据的监控上,个人觉得Datastage的实时监控做的更加好,可以直观看到数据抽取的情况,运行到哪一个控件上。这对于调优来说,我们可以更快的定位到处理速度太慢的控件并进行处理,而informatica也有相应的功能,但是并不直观,需要通过两个界面的对比才可以定位到处理速度缓慢的控件。有时候还需要通过一些方法去查找。
8、网上的技术文档
Datastage < Informatica < kettle,相对来说,Datastage跟Informatica在遇到问题去网上找到解决方法的概率比较低,kettle则比较多。
五、项目经验分享
在项目中,很多时候我们都需要同步生产库的表到数据仓库中。一百多张表同步、重复的 *** 作,对开发人员来说是细心和耐心的考验。在这种情况下,开发人员最喜欢的工具无疑是kettle,多个表的同步都可以用同一个程序运行,不必每一张表的同步都建一个程序,而informatica虽然有提供工具去批量设计,但还是需要生成多个程序进行一一配置,而datastage在这方面就显得比较笨拙。
在做增量表的时候,每次运行后都需要把将最新的一条数据 *** 作时间存到数据库中,下次运行我们就取大于这个时间的数据。Kettle有控件可以直接读取数据库中的这个时间置为变量;对于没有类似功能控件的informatica,我们的做法是先读取的数据库中的这个时间存到文件,然后主程序运行的时候指定这个文件为参数文件,也可以得到同样的效果

经常 我们在处理小数据集是 不想用大刀,逮住了excel 就想 一直拖拖拉拉就把数据先处理一下,实在处理费力,再从 python numpy pandas 处理一通。

常见的 在处理五要素的时候,姓名基本没啥要处理的,
1身份z号 手机号 yhk号 经常是 显示为 E+17 或者 前面带有 ``` 字符
2申请日期经常是各种格式,有时候一不小心就变成乱码的数字 后者####。
3如果 excel 有外部链接存在,即使忽略,但是 在修改的时候还是非常糟心,要等很久,而且经常无法保存,excel就崩溃了
4还有就是 本身就是文本,但是使用 TEXT LEFT RIGHT MID IF 没有任何效果
5excel 读取 含有中文的数据显示乱码
6多条件的替换问题,if嵌套。
7批量 替换 匹配
8空值问题
9筛选问题
10脚本读取文件

其实就是以上的这些小情况,经常浪费大量时间,急需一招狠制敌

接着说 1
因为很多时候 excel会把一些类数值的身份z号和手机号当做数字,这个其实是数据源在使用python处理的时候没有来得及保存 对应列的 数据类型。
在出现 E+17,我们首先想到的是修改 单元格格式,比如保存为文本,假如正常那简直是万幸,如果不可以,可能会发现 修改后的数据末尾都变成了3个零。
另外一个终极方法
这里,有一个简单的 *** 作方法:选择数据源——右键设置单元格格式——自定义——选择0,按确定——结果出来了。结果很明显,是我们需要的效果,而且快捷,方便。

另外就是使用python pandas读取 ,设置 dtype=npstr

对于 身份z或者手机号 yhk号 数据首位出现 `字符的,可以使用 RIGHT MID 函数做数据的截取

对于数据出现 ###,一般修改单元格格式 ,或者 拉长单元格,或者 python读取一下就可以处理

最后就是说2了。日期
其实这个日期,就是格式太特么的多和复杂不固定。我们现在 使用的是 类似 2018-4-17 这种格式,所以只要不符合这种格式的,我们都会需要做一些转化,
最简单的 就是使用 TEXT 函数 ,一般这样用 =TEXT(E2,"yyyy-mm-dd")
基本就可以转化过来。
如果以上不起作用 参考 处理 4 的方法 不断尝试 ,最后确认函数真的不会起作用为止。
之后如果 不小心 变成一段数字了,修改单元格格式,转回日期一般是有效的。
如果日期 函数不起效果,我们使用截取 拼接的方式 使用 RIGHT LEFT MID
CONCATENATE() 这些函数 一般也可以胜任

如果 还是不行也可以 使用 YEAR() DATE() EXCEL 本身的日期处理函数
另外就是修改单元格格式 ,尝试一下各种日期格式是否可以满足要求
另外的杀手锏就是 python pandas 和numpy都有 时间处理的函数
可以参考
推荐阅读
>

ETL工具的典型代表有:Informatica、Datastage、OWB、微软DTS、Beeload、Kettle、久其ETL……
开源的工具有eclipse的etl插件:cloveretl
数据集成:快速实现ETL
ETL的质量问题具体表现为正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性。而影响质量问题的原因有很多,由系统集成和历史数据造成的原因主要包括:业务系统不同时期系统之间数据模型不一致;业务系统不同时期业务过程有变化;旧系统模块在运营、人事、财务、办公系统等相关信息的不一致;遗留系统和新业务、管理系统数据集成不完备带来的不一致性。
实现ETL,首先要实现ETL转换的过程。体现为以下几个方面:
1、空值处理:可捕获字段空值,进行加载或替换为其他含义数据,并可根据字段空值实现分流加载到不同目标库。
2、规范化数据格式:可实现字段格式约束定义,对于数据源中时间、数值、字符等数据,可自定义加载格式。
3、拆分数据:依据业务需求对字段可进行分解。例,主叫号 861082585313-8148,可进行区域码和电话号码分解。
4、验证数据正确性:可利用Lookup及拆分功能进行数据验证。例如,主叫号861082585313-8148,进行区域码和电话号码分解后,可利用Lookup返回主叫网关或交换机记载的主叫地区,进行数据验证。
5、数据替换:对于因业务因素,可实现无效数据、缺失数据的替换。
6、Lookup:查获丢失数据 Lookup实现子查询,并返回用其他手段获取的缺失字段,保证字段完整性。
7、建立ETL过程的主外键约束:对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。

1 数据质量分析的概念数据质量分析主要是由域分析和过滤器分析两部分组成。以下将分别给以详细的说明。11 域分析数据质量分析中的域分析就是用来按列分析数据库表,来得出数据的概况信息。其中,域分析主要包括如下内容:一是数据类别分析,所谓的数据类别分析就是用来判断相关数据是否属于标识量、开关量、枚举量、时间、数量、文本等;二是针对数值类型数据的统计分析,主要有频率分析、方差分析以及百分比分析等;三是针对字符类型数据格式的分析,主要是进行模式匹配。数据质量分析中的域分析可以很好的帮助用对数据环境进行充分的了解,以便对数据流进行有效的质量评估和管理。
12 过滤器分析
数据质量分析中的过滤器由若干基本规则的逻辑所组成,目前数据质量分析中的过滤器定义的主要规则包括:一是包含规则(CONTAINS);二是等于规则(EQUALS);三是存在规则(EXISTS)。除此之外,过滤器定义的规则还有范围规则、正则表达式规则、频率规则、类型规则以及唯一规则等。通过这些基本规则的组合可以生成复杂的业务规则,进而通过这些复杂的业务规则来对数据进行评价,常见的评价结果包括:符合规则的记录数、规则明细、总记录数以及正确率等。
2 认识ETL
21 ETL概述
1)ETL的概念。ETL是英文Extraction-Transformation-Loading三个首字母的缩写,中文即为数据的提取、转换和加载。ETL在做数据仓库系统时发挥着至关重要的作用。相对于传统数据库技术,ETL并不是面向数学理论基础的,它主要是面向实际工程的应用。从工程应用的角度来看,ETL就是将要加载处理的数据按照一定的物理数据模型的要求来进行相应的处理 *** 作的,ETL的数据处理过程与工程人员的数据处理经验直接相关,由于ETL处理数据部分的工作在很大程度上决定数据仓库中数据的质量,而且对联机分析处理和数据挖掘结果的质量具有一定的决定作用。
2)ETL的数据处理特点。笔者总结认为,ETL的数据处理主要有如下两个方面的特点:① ETL的数据处理是同步的,而且是按照固定周期运行的。② 一般在ETL数据处理过程中所处理的数据量比较大,为了提高数据的处理效率,都会将数据流动的过程拆分成E、T和L即数据的提取、转换和加载三个过程来进行处理。
22 ETL体系结构及其本质
1)ETL的体系结构。一般而言,主流ETL产品框架的体系结构主要有目标数据库、源数据、抽取服务器、Web服务器以及配置工具等组成部分。ETL从源系统中提取数据,转换数据为一个标准的格式,并加载数据到目标数据存储区。ETL系统一般不会单独作为一个项目来做,大多与数据仓库、决策支持等系统一起作为支持系统完成。
2)ETL的本质。如上所述,ETL的过程实际上就是数据流动的过程,其中,数据的清洗、抽取、转换和装载一般是根据用户的实际需要,可以以串行或并行的方式进行 *** 作。而T过程即数据的转换过程作为ETL的核心,一般都是以数据的抽取和装载过程为输入和输出的,也就是说,ETL的其他数据处理过程是以数据的转换过程为前提的。另外,ETL的数据处理过程一般都是以批量为单位进行 *** 作的,因此,ETL的数据处理多采用的是批量数据处理工具,比如常见的Oracle、SQL Loader
以及DB2的autoloader等都是基于ETL的批量数据处理工具。
23 ETL的主要功能和特点
1)ETL的主要功能。① 数据集成配置。ETL的数据集成配置功能模块能够为用户提供一个图形用户界面,可以让用户能够通过界面的交互 *** 作,比较容易地实现数据集成的流程、规则的定义;同时ETL的数据集成配置功能提供相应的解析功能,进而可以将配置规则进行解析,在完成规则解析的基础上完成对数据的集成处理 *** 作。② 数据集成服务。ETL的数据集成服务可以为用户提供相应的解析功能,也就是说,用户可以根据数据集成服务模块实现对集成规则的解析服务,然后由相关配置设备来读取这些被解析的规则后生成集成任务,最后在后台由相关设备完成数据的集成。
2)ETL的特点。① 易用性。现在有很多成熟的数据处理工具都提供ETL功能,譬如,常用的powermart以及datastage等数据处理工具。从应用角度来看,ETL的数据处理过程非常简洁,这些支持ETL技术的相关数据处理工具的应用,给数据仓库工程带来了很大的方便,进而大大的提高了工程人员的工作效率。② 高效性。ETL在执行任务时,可以有效保证抽取任务的正常进行。而且基于ETL的工具为用户提供了图形化界面,用户使用这些数据处理工具能够非常快速地构建一个job来处理某个数据,进而可以提高开发效率。③ 可靠性。ETL在进行数据的抽取时,可以保证源数据到目标数据的抽取精度达999%,能确保数据抽取 *** 作的可靠稳定运行。与此同时,ETL还可以对那些因特殊情况无法进行抽取的,或数据抽取中途停止而无法完成抽取 *** 作的信息进行详细的记录,确保以后数据抽取 *** 作的顺利进行。
3 基于数据质量分析ETL框架的设计与实现
31 配置工具的设计与实现
配置工具的开发工具一般选择支持C++的集成开发环境。可以根据以下流程进行主要的设计工作:① 数据集成。用户可以根据相关配置工具所提供的图形用户界面(GUI)进行元数据源、目的数据源和抽取规则的录入 *** 作等。并可以实现对这些录入数据信息的定义和数据集成结果的测试。② 资源共享。基于数据质量分析ETL框架克服了传统的抽取-转换-装载(ETL)架构在数据质量控制方面的缺陷,有效解决异地抽取的问题,并且可以对某些表的结构进行共享。
32 抽取服务的设计与实现
1)系统参数定义。系统参数一般都是在系统配置参数表中进行定义,其中,系统参数的定义主要包括参数名、参数值及参数说明等。基于数据质量分析ETL框架的系统参数定义如下表所示。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/10220348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存