Kettle从入门到抛弃
文章平均质量分 62
我们不生产数据,我们只是大数据的搬运工~
他们叫我技术总监
大数据、BI、帆软、NC、云原生的深耕者!欢迎关注我的专栏,一起学习。
展开
-
kettle开发-Day43-加密环境下运行作业
开年王炸,解决kettle文件被加密的破局之法~原创 2024-03-01 16:25:34 · 1180 阅读 · 0 评论 -
kettle开发-Day42-远程执行作业
从kettle的远程执行,来深度解析kettle背后集群的原理原创 2023-08-25 11:40:27 · 2007 阅读 · 0 评论 -
kettle开发-Day41-数据清洗之字符串替换
将复杂的字符串替换场景都撸了一遍,你用下就知道~原创 2023-07-14 11:24:33 · 2733 阅读 · 0 评论 -
kettle开发-Day40-AI分流之case/switch
人生充满选择,我们也为数据流一个选择的机会吧~原创 2023-07-13 18:06:58 · 26299 阅读 · 4 评论 -
kettle开发-Day39-超好用AI+算力组合-算力提升器
kettle无主键数据处理的最佳解决方案。原创 2023-06-21 13:47:53 · 1055 阅读 · 1 评论 -
kettle开发-Day38-超好用自定义数据处理组件
人生不如意十之八九,靠自己必然能赢。原创 2023-06-21 11:20:34 · 2168 阅读 · 0 评论 -
kettle作业发送QQ邮箱提醒
我不敢下苦功琢磨自己,怕终于知道自己并非珠玉;然而心中又存在一丝希冀,便又不肯甘心与瓦砾为伍。需求总览:随着kettle作业的不断深入和业务的不断运用,对于kettle作业是否正确执行保证底层数仓数据的及时准确是至关重要的。话不多说,上主菜。一、开通SMTP邮箱服务1、登录QQ邮箱,点击设置→账户→POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务→IMAP/SMTP服务2、开通IMAP/SMTP服务具体可参考:如何使用IMAP服务?_QQ邮箱帮..原创 2022-02-08 14:36:30 · 5283 阅读 · 35 评论 -
kettle在转换中指定执行顺序
关于Kettle的事务和转换内步骤的顺序执行kettle中转换和作业的执行顺序:1、一个作业内的转换,是顺序执行的。2、一个转换内的步骤是并行执行的。3、作业内不支持事务,转换内支持事务。根据业务需要,通常需要在转换内顺序执行,小技巧如下:1、执行SQL是优先于所有步骤。2、使用“阻塞数据直到步骤都完成”,确保其他数据步骤都完成再进行下一步骤。事务:1、设置转换只使用一个事务。转换设置-->夹项-->使用唯一连接。 2、设置转换内的表插入等数据库的操..原创 2022-02-16 13:40:59 · 10099 阅读 · 64 评论 -
kettle处理远程电脑或者服务器的CSV文件
文章目录前言 一、csv文件是什么? 二、使用步骤 1.创建共享盘 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:日常使用过程中不可避免要对CSV文件进行数据分析,比如很多没有数据库的实验室设备存储文件很多是以csv文件格式存储的。本主主要介绍远程服务器或者设备上CSV文件的清洗和处理。提示:以下是本篇文章正文内容,下面案例可供参考一、csv文件是什么?逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因原创 2022-03-30 16:57:54 · 3323 阅读 · 19 评论 -
Unable to create the database cache 一次说清楚kettle缓存问题
目录前言一、问题现象二、原因分析三、解决方法论前言博主介绍: 他们叫我技术总监,拥有5年BI、数据库、用友NC、帆软report、python工作经验,毕业一年被迫当上某集团部门开发经理,成立开发部,次年任命为总监。因个人执着于技术,所以被总经理戏称为技术总监。拥有帆软认证、项目管理工程师等认证。目前主要专研大数据方向,希望和您一起学习一起进步。一、问题现象1、kettle不能重启,每次重启都会闪退2、kettle的定时任务可以运行,但...原创 2022-04-26 17:29:24 · 5222 阅读 · 28 评论 -
kettle开发篇-批量迁移不同数据库数据-Day1
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情前言:随着企业的发展,和数据库的多种多样,在搭建项目之初,并没有详细考虑到数据库的建设,当增加配置不能满足业务场景需要时,这时候考虑到使用更高性能的数据库,如将sqlserver更换为oracle数据库。或者在搭建新项目时,需要复制原数据库的表结构和数据至其他数据库。怎么快速响应业务要求呢?第一...原创 2022-11-29 23:08:48 · 1682 阅读 · 0 评论 -
kettle开发篇-读取CSV文件-Day2
前言:现在很多系统没有存储到数据库中,比如实验室的检测设备、近红外、粒度分析仪等,但是这些数据对企业产品质量的评估有不可或缺的影响。通常这些数据只能通过导出为CSV格式的文件存储起来,由于CSV文件本身的行数限制和性能达不到数据分析的要求,因此需要我们将CSV文件的数据存储至数据库里面。本文介绍通过kettle来存储CSV的文件的数据,并在入库前将异常数据进行清洗。 一、什么是CSV文...原创 2022-11-30 13:09:44 · 1030 阅读 · 0 评论 -
kettle开发篇-执行SQ脚本避坑-Day3
前言:今天我们主要来捋一捋kettle中转换对象的执行顺序,按我们正常思维来说,对象总是从左至右执行,比如如下所示的,我们将表输入即读取数据,至表输入即写入数据。就是我们最常见的裁剪表。批量读取一定时间段的数据,进行全量更新,比如更新一天的数据、一个星期、一个月、一年等等。一、转换效率对比从前言中,我们得知,我们日常用的最多的就是使用裁剪表,但是裁剪表有个缺点就是会将输出表中的...原创 2022-12-01 23:16:36 · 1751 阅读 · 0 评论 -
kettle开发篇-插入更新-Day4
前言:时间真快,转眼一年又从我们身边溜走了,从今天开始决定每天只讲一个知识点,将对应知识仔细解剖了,这样形成小颗粒的蛋白质,便于消费吸收,也便于自己的提高,一个东西你以为他懂,也只有你写出来,别人看懂了才是真的懂了。好了,废话不多说,上课。一、什么是插入更新插入更新的主要作用就是根据条件来检索数据,如果说相同更新记录,不相同增加记录。此时不懂的小明就会问了,里面的条件是指啥?是wher...原创 2022-12-02 23:48:20 · 1896 阅读 · 0 评论 -
kettle开发篇-批量读取EXCEL文件-Day5
前言:虽然目前我们大多数数据从数据库取数或者爬虫获取了,但是有些情况下我们需要对经营数据进行加工,这些数据只能给部分管理者查看,因此需要单独建立经营分析的库来存储手工的数据,而能大批量处理手工数据的地方,避免不了要去接触EXCEL。EXCEL作为办公软件的三剑客,在日常工作中出场率也太高了吧。下面来介绍怎么批量获取我们需要的数据。一、批量获取数据的前提条件1、公共的字段名竟然是批量...原创 2022-12-03 22:39:36 · 2133 阅读 · 1 评论 -
kettle开发篇-自动生成报表-Day6
前言:在信息化和数字化建设的阶段,很多企业免不了还是采用EXCEL给高级决策,如果我们通过线下的EXECEL模板生成需要人工将EXCEL表的明细数据存到多个sheet里面,然后通过复杂的公式组合来调整生成管理者需要查看的决策报表。在前面的文章中提到,我们可以批量的将线下EXCEL数据存储到我们的决策数仓里面,这样我们就可以将各个系统的数据、外部爬虫和本地EXCEL数据都存储至数仓里面用于决策分...原创 2022-12-04 23:36:32 · 883 阅读 · 2 评论 -
kettle开发篇-缓存机制-Day7
前言:kettle 虽然作为较成熟稳定的数据处理工具,但也存在一些需要优化地方,如果没有深入了解kettle当出现类似产品问题的时候,可能会就束手无策了。今天就和大家聊聊kettle中缓存机制,和我们需要注意的点,缓存机制,虽然能提供kettle的效率,但就像基因编码,也会出现编码错误的情况,怎么才能在kettle编码错误的时候及时自动纠正它,做到心中有数,不然作为一款开源软件,不去深入了解的...原创 2022-12-05 23:42:08 · 1270 阅读 · 0 评论 -
kettle开发篇-作业调度-Day8
前言:前面我们介绍了kettle的一些常用组件,同步方法,缓存机制及怎么去处理kettle出现的小问题。今天我们讲两种kettle中常用的作业调度方法,kettle作为一款ETL工具负责将数据从ODS层处理至DWD层,主要负责数据的清洗、转换工作。kettle其实只有2个功能组合即转换和作业,转换负责组件间的协调配合,作业负责任务的执行,但是我们怎么能让kettle自动将任务跑起来,自己完成数...原创 2022-12-06 22:29:44 · 2515 阅读 · 0 评论 -
kettle开发篇-大数据开发思想-Day9
前言:目前属于信息爆炸的时代,每天生成的用户数据在500T左右,不管是起床选择开车、打车还是公交都是一种算法,为了能准时到达公司楼下,还顺便可以嗦粉吃个早餐,我们通常都会选择一种最适合我们的方式。这就是算法给我们生活带来的改变,每种选择后都会生成相应的数据,这些数据堆积到一定程度后就会对我们生活产生变化,从而养成习惯。大数据不仅在生活中给我们带来着改变,同事也为公司经营提供了决策基础,辅助决策...原创 2022-12-07 23:43:59 · 217 阅读 · 0 评论 -
kettle开发篇-计算器-Day10
前言:我们知道我们通常可以通过函数或者SQL来完成简单的数学运算。但是我们针对手工的EXCEL文件需要进行运算时,这时候该怎么去处理呢?如果你精通EXCEL或者喜欢研究EXCEL,我相信一般的EXCEL公式也可以找到答案,但是这些都是手工操作并且不能批量处理EXCEL表的数据,在前面我们学会了怎么批量读取EXCEL表数据,当然我们可以通过将EXCEL数据读取至数据库的表中,然后通过程序或者SQ...原创 2022-12-08 23:37:18 · 1404 阅读 · 0 评论 -
kettle开发篇-去除重复记录+排序记录-Day11
前言:今天刚好第十一天,从今天开始我们讲5节关于EXCEL的操作,昨天讲了EXCEL表的计算,今天将在计算之前,需要EXCEL表去重再去计算,避免重复数据影响我们的决策。在这就需要用到两个组件,分别是去除重复记录+排序记录。这两个组件的语法也特别简单就不详细介绍了,就在下文案例中穿插讲述。一、去除重复记录去除重复记录,就是将数据流中的数据进行字段比较,从而去掉重复值的过程。去除重复记录...原创 2022-12-09 23:41:00 · 1523 阅读 · 0 评论 -
kettle开发篇-哈希值(唯一行)-Day12
前言:kettle开发Day11讲到了,去除重复记录+排序记录,可以处理指定字段重复的记录。今天要讲的哈希值,和去除重复记录和排序记录时,达到的效果是一样的,但是他们之间的实现原理却是不同的。去除重复记录需要配合排序记录一起使用,今天来看看哈希值这个组件怎么去使用和其中实现的原理吧。一、哈希值(唯一行)如图所示,虽然殊途同归,但是哈希值的实现原理和去除重复记录+排序记录实现用原理还是有...原创 2022-12-10 23:38:22 · 946 阅读 · 0 评论 -
kettle开发篇-拆分字段-Day13
前言:前面我们有讲到合并字段,将firstname和lastname合并为姓名,今天我们来讲解怎么将一个字段拆分为多个字段,怎么将一列数据转换为多行。拆分字段的用处比如前面提到的获取firstname 和 lastname,也可用于从批次号中获取型号等。如约翰-詹姆斯,我们按照“-”进行拆分就得到我们想要的约翰、詹姆斯了。同样的在批次号WZ20221211HZN502我们通过“”拆分后就获得了...原创 2022-12-11 21:52:27 · 1450 阅读 · 0 评论 -
kettle开发篇-列拆分为多行-Day14
前言:在前一节,我们学习了拆分字段,即将一个字段的值拆分为多个字段值进行存储,相当于我们从一列字段拆分为多列了,如本来是一个数据列的name通过我们的拆分,拆分为firstname和lastname两列,但原来的name列不在数据流之中了。今天我们来学习一个相对应的操作怎么将一行数据拆分为多行。一、列拆分为多行列拆分为多行就是把指定分隔符的字段进行拆分为多行。实例,如我们将一个信...原创 2022-12-12 23:39:14 · 1187 阅读 · 6 评论 -
kettle开发篇-列转行-Day15
前言:前面我们讲到了将一个字段拆分为多个字段,知道我们字段的横向分裂,从一个字段分为两个字段。学习了列拆分为多行,知道了怎么将一行的值拆分为多行,今天我们来学习一个列的高级操作,列传行,对于初学者来说,列传行也是一个比较高级的操作了,下面我们来看看列转行的语法和使用场景吧。一、列转行列转行就是如果数据一列有相同的值,按照指定的止损,把多行数据转换为一行数据。列转行以后会增加许多新的列,...原创 2022-12-13 22:19:30 · 3492 阅读 · 0 评论 -
kettle开发篇-行转列-Day16
前言:在前面我们讲到了拆分字段、去除重复记录、获取哈希值、列转行等,都是针对EXCEL的数据的操作,在昨天写完列转行时,有人提问到,能不能两级反转,来说说行转列。好的,今天我们就来详细说明下行转列的操作,我们还是应用昨天的数据,但是将EXCEL输出变成今天的输入,通过行转列完成两级反转。一、行转列如图所示,行转列就是把数据字段的字段名转换为一列,把数据行变成数据列。即我们将昨天输出的张...原创 2022-12-14 23:35:19 · 1855 阅读 · 0 评论 -
kettle开发篇-行扁平化-Day17
前言:前面我们学习了字段的转换,去除重复行,行转列、列转行之类的,今天我们来学习一个行扁平化的操作,看起来有点高级,行扁平化就是把同一组的多行数据合并为一行。需要注意的是,只有数据流的同类数据数据行记录一致的情况才可使用!数据流必须进行排序,否则结果会不正确。一、行扁平化这个组件看起来定义有点高级,但是需要特别注意的是,同类数据的记录行数必须一致,如学生信息,包括学生个人信息和学习...原创 2022-12-15 23:28:34 · 588 阅读 · 0 评论 -
kettle开发篇-替换空值-Day18
前言:前面我们讲了字符串、列、行的去空、排序、行转列、列转行等操作,今天我们来讲针对字符串专题的最后一个操作,替换空值类似oracle 中的nvl函数,nvl(字段,'赋新值')和sqlserver中isnull(字段,'赋新值')是相同的意思。但是本次我们讲解的是针对EXCEL的操作,怎么通过kettle快速将空值转换为新值,然后输出至EXCEL。一、替换空值因为是个新分类,这边介绍...原创 2022-12-16 22:17:44 · 1676 阅读 · 0 评论 -
kettle开发篇-写日志-Day19
前言:在前面我们讲了很多关于字段和行列的操作,今天我们来讲讲应用方面的操作,比如写日志、发送邮件等。因为我们知道我们将kettle 转换开发完成,我们都是通过定时任务来调度作业运行。从而实现自动化同步数据,但是在数据运行过程中总有偶尔突发情况,如因网络、字段长度不够导致数据异常等。此时最好追溯问题的办法就是查看日志,今天我们就重点来讨论写日志这个组件。一、写日志写日志主要是在调试的时候...原创 2022-12-17 22:47:48 · 1450 阅读 · 0 评论 -
kettle开发篇-switch case-Day20
前言:前面我们学习了一系列的字符串的操作,然后最近两天学习了应用方面的操作,今天我们来学习的新的一个方面,流程-switch case来控制数据流程和数据的流向。本次类型相对会比较复杂一些,但是我们有了前面的学习基础,这个学起来也会比较轻松的,好的,下面我们来看下,switch case 是怎么来控制数据流的。一、switch case流程是转换里面的第六个分类,流程主要是用来控制数据...原创 2022-12-18 23:22:14 · 603 阅读 · 0 评论 -
kettle开发篇-空操作-Day21
前言:前面我们讲到了switch case组件,通过不同的表达式的值将多个符合条件的值,输出至指定的位置,这就实现了复杂的数据分流操作,kettle其实就是把那些看似复杂的数据流,通过组件包裹起来,然后我们只需关心组件的核心部分即可,今天我们来学习一个有意识的组件叫空操作,这个组件也可以叫做“休息一下”没有任何语法,但是它的使用还是比较巧妙的,接下来让我们一起来看看吧。一、空操作空操作...原创 2022-12-19 23:34:15 · 695 阅读 · 0 评论 -
kettle开发篇-Http client-Day22
前言:昨天我们讲了一个有趣的控件,叫空操作,其实如果记不住就可以理解为,什么都不做(摆烂),今天我们来学习一个有趣的操作,叫做HTTP client。因为其属于新的一个分类-查询。查询是用来查询数据源里的数据并合并至主数据流中。一、HTTP clientHTTP client是使用GET的方式提交请求,获取返回的页面内容。HTTP client 其实就是通过HTTP 网络协议...原创 2022-12-20 23:22:45 · 827 阅读 · 0 评论 -
kettle开发篇-数据库查询-Day23
前言:昨天我们讲了怎么通过HTTP client读取接口数据,然后通过将返回数据解析,然后再将结果输出至EXCEL中,这种方式,让我们很方便的获取到接口的数据。今天我们来讲下和数据库相关的查询操作,数据库查询,其实就是数据库里面的左连接。一、数据库查询数据库查询就是数据库里面的左连接,左连接就是两张表执行左关联查询,把左边的表数据全部查询出来。如图所示我们在进行数据库查询操作时,我...原创 2022-12-21 23:32:11 · 800 阅读 · 0 评论 -
kettle开发篇-数据库连接-Day24
前言: 昨天我们讲了数据库相关操作,数据库查询来获取两个表之间的关联数据,实现了类似数据库查询左连接查询的效果,今天我们来讲下数据库连接,数据库连接,乍一看是讲怎么连接数据库的,其实真不是那么回事。数据连接是指执行两个数据库的查询,和单参数的表输入。一、数据库连接数据库连接可以执行两个数据库的查询,和单参数的表输入。具体用法是这样的,我们通过"?"问号作为单参数来进行我们数据库的查...原创 2022-12-22 23:37:04 · 966 阅读 · 0 评论 -
kettle开发篇-流查询-Day25
前言: 昨天我们讲了数据库相关操作,数据库连接来实现两个库的跨库查询,对应复杂的跨库查询通过数据库连接整合到一块后,就像是在一个数据库里面操作,今天我们来学习流查询,流查询主要用于在查询前把数据加载到内存中,并且只能进行等值查询。一、流查询流查询在查询前把数据加载到内存中,并且只能进行等值查询。流查询的操作包括指定数据源,即我们将数据进行流查询的数据源头,如下图所示流查询的数据源是...原创 2022-12-23 23:07:28 · 1181 阅读 · 0 评论 -
kettle开发篇-合并记录-Day26
前言: 昨天我们讲了数据库相关操作,流查询,通过流查询我们进行等值查询,从而实现类似数据库内连接的效果,今天我们来讲一个类似的组件,叫合并记录,合并记录顾名思义就是将数据进行合并,具体来讲就是将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配、比较、合并。一、合并记录今天我们讲的连接是转换里面的第八个分类。连接是结果集通过关键字进行连...原创 2022-12-24 23:03:46 · 4196 阅读 · 0 评论 -
kettle开发篇-记录关联(笛卡尔积)-Day27
前言: 昨天我们讲了数据流相关操作,合并记录,通过合并记录,我们就可以用来比对两份新旧数据的变化情,并标记出记录是“identical”-旧数据和新数据一样、“changed”-数据发生了变化、“new”-新数据中有而旧数据中没有的记录、“deleted”-旧数据中有而新数据中没有的记录。四种状态,这个组件帮助了我们有效的去处理新旧数据被修改了但因数据量大很难一下找到数据修改变化的场景。一、记...原创 2022-12-25 23:34:01 · 1294 阅读 · 0 评论 -
kettle开发篇-记录集连接-Day28
前言: 昨天我们讲了记录关联(笛卡尔积),也学习了类似内连接的流查询,类似数据库左连接的操作,数据库查询,今天我们来学习,记录集连接,来综合讲讲实现类似,数据库的内连接、左连接、右连接的操作,记录集连接。一、记录集连接记录集连接就像数据库的左连接、右连接、内连接、外连接。需要注意的是,因为我们是对数据流进行操作,因此我们在进行记录集连接操作前,需要先将数据进行排序。从记录集连接的...原创 2022-12-26 23:29:53 · 1984 阅读 · 0 评论 -
kettle开发篇-分组-Day29
前言: 昨天我们讲了记录集连接,我们可以通过记录集连接实现了多个输入的连接。实现类似数据库的全连接、左连接、右连接的操作。今天我们来学习一个新的分类,统计中的分组。分组首先想到了就是类似数据库中的group by那实际上的分组又是怎么个操作呢?一、分组分组是按照某一个或某几个进行分组,同时可以将其余字段按照某种规则进行合并,从字面意思来看,分组不但是分组而且还进行了合并操作。同样需要注意...原创 2022-12-27 23:21:21 · 1131 阅读 · 0 评论 -
kettle开发篇-映射-Day30
前言: 昨天我们讲了分组,可以帮助我们处理分组的数据,并且可以将数据进行组合,进行我们来看一个新的组件,映射。映射是用于定义子转换,方便封装和重用。一、映射映射用来定义子转换,便于封装和重用。本次我们主要来讲解映射下面的三个子功能,分别为映射(子转换)、映射输入规范、映射输出规范。1、映射(子转换)映射(子转换)是用来配置子转换,对子转换进行调用的一个步骤,即我们在转换里面调用转换...原创 2022-12-28 23:41:13 · 887 阅读 · 0 评论