- 博客(566)
- 资源 (73)
- 收藏
- 关注
原创 作业job——kettle开发30
一个作业包含一个或多个作业项,这些作业项以某种顺序来执行。如下图所示的作业,我们从START开始,传送数据,当我们传送数据成功后我们就加载维度表,但当我们传送数据失败后,我们就会发送错误邮件并结束这个作业。最终我们的作业包括转换1和转换2及对应成功和失败后的处理操作,如成功后发送邮件,错误后发送错误邮件,并终止作业。为了方便大家理解,我们可以执行一个作业案例,从Excel读取数据,保存到Excel,再从文本文件中读取数据保存到Excel,如果产生错误就发送邮件,并且停止作业,如果成功发送成功邮件。
2024-05-28 17:12:32 310
原创 Java脚本——kettle开发29
在java脚本里面我们通过点击,左边的Main函数来自动生成框架代码,然后我们通过在框架代码,根据提示的语法规则获取到code的值,当code为空或者为空字段值,我们获取name的值给它,否则就在code后面加上123,然后我们在最下面生成新的字段newcode来保持我们的数据,最后按提示语法编写输出语句,将数据流的输出结果赋值给newcode。和昨天所学的JavaScript脚本一致,java脚本也分为三个区域,分别是左边是代码的类和片段,右边是代码区、最下面是结果输出区,输出我们的字段等信息。
2024-05-28 15:16:14 591
原创 JavaScript脚本——kettle开发28
这个组件存在两种不同的模式:不兼容模式和兼容模式,不兼容模式:是默认的,也是推荐的 兼容模式:兼容老版本的kettle。兼容模式下:根据字段类型的不同,使用不同的方法:如字段是字符串类型,此时获取字段名为myVar=FileName.getString();最终我们的转换包括生成记录,即生成1000条日期数据,通过增加序列来增加序号,然后通过计算器来进行日期的累加,最终通过字段选择和JavaScript代码提取年、月、日将我们的数据获取,并输出至Excel。最终我们通过计算器就获取到我们需要的数据了。
2024-05-28 15:12:15 1046
原创 映射——kettle开发27
映射用来定义子转换,便于封装和重用。本次我们主要来讲解映射下面的三个子功能,分别为映射(子转换)、映射输入规范、映射输出规范。最终我们的转换由,表输入、映射(子转换)、Excel输出 映射输入规范、数据库查询、映射输出规范组成。users表的操作会经常用到,因此我们将u_id做成了映射(子转换)即可。操作起来也是相当的方便,我们只需要在组件里面选择我们需要的子转换即可。映射输入规范是输入字段,由调用的转换输入。,即我们在转换里面调用转换的时候可以用到。映射(子转换)是用来配置子转换,
2024-05-28 14:27:07 310
原创 分组——kettle开发26
分组是按照某一个或某几个进行分组,同时可以将其余字段按照某种规则进行合并,从字面意思来看,分组不但是分组而且还进行了合并操作。分组我们的主要需要注意的是,我们需要首先指定分组的字段,然后指定聚合后的新字段,如下图所示count就是按照group字段分组后,聚合的新字段。这里特别注意的是,我们排序的字段是我们分组的字段,因为只有这种排序才是有价值的,因此在本次任务中,我们排序的字段是group。对应的分组需要注意的是我们首先需进行排序,并指定分组字段,然后运行转换即可看到我们需要的结果。
2024-05-28 09:56:22 404
原创 记录集连接——kettle开发25
弄清楚对应记录集连接的语法后,我们来完成这么一个任务,从Excel中读取employees和departments,进行内关联、左关联、右关联、全关联,把数据保持至Excel。记录集连接就像数据库的左连接、右连接、内连接、外连接。需要注意的是,因为我们是对数据流进行操作,因此我们在进行记录集连接操作前,需要先将数据进行排序。新版的KETTLE,名字都改了,叫Merge join。
2024-05-28 09:49:16 427
原创 记录关联(笛卡尔积)——kettle开发24
因前面多次讲到了Excel输入和输出,在这边就不再重复阐述了,重点阐述下记录关联(笛卡尔输出)。记录关联的重点需要关注的是以哪个为主步骤,根据需求来看我们随便选择一个即可,然后我们运行转换即可看到我们笛卡尔积的运算结果了。如下图所示,我们有两组数据分别为aaa和bbb,笛卡尔积后我们生成了4种结果,即2*2=4条记录。我们有这么一个需求就是从Excel读取两位和三位数,完成两位和三位数的组合(笛卡尔积),把结果保存到Excel.记录关联(笛卡尔积)需要注意的是我们需要指定一个主步骤。
2024-05-28 09:05:57 271
原创 合并记录——kettle开发23
其中根据字段数据的状态,分为四种数据状态,分别为“identical”-旧数据和新数据一样、“changed”-数据发生了变化、“new”-新数据中有而旧数据中没有的记录、“deleted”-旧数据中有而新数据中没有的记录。合并后的数据将包括旧数据来源和新数据来源的所有数据,对于变化的数据将用新数据代替旧数据,同时在结果中用一个标示字段,来指定新旧数据的比较结果。合并记录是用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配、比较、合并。
2024-05-28 09:00:00 883
原创 流查询——kettle开发22
我们接下来重点讲下流查询操作,需要注意的是因为我们要输出depname因此我们在流查询步骤选择时,我们选择departments,然后指定depid和id关联,最后输出我们的匹配dep_name。流查询的操作包括指定数据源,即我们将数据进行流查询的数据源头,如下图所示流查询的数据源是我们的Excel输入-departments,然后我们还需要指定我们进行流查询匹配的字段,即我们进行等值查询的字段,depid和id。最后我们指定我们需要返回的字段,即depname 来接收我们流查询的值。
2024-05-27 17:32:01 386
原创 数据库连接——kettle开发21
"问号作为单参数来进行我们数据库的查询,对应问号的值我们用其他数据库来传递并过滤查询数据库的值,如 select * from employess where depid=?然后新建一个数据库连接,来查询employess表数据,增加一个where条件来查询对应的数据。我们的departments表是存在test库,但是我们的employess 表示存在我们的mysql库中。因此数据库连接就帮助我们实现了跨库查询操作,在本次案例中我们都是在。数据库连接可以执行两个数据库的查询,和单参数的表输入。
2024-05-27 17:11:34 404 1
原创 数据库查询——kettle开发20
如图所示我们在进行数据库查询操作时,我们首先需建立数据库连接,输入表名和查询需要的关键字,最后就是我们需要输出的字段。类似 select * from departments left join member on departments.dep_id=member.id。数据库查询就是数据库里面的左连接,左连接就是两张表执行左关联查询,把左边的表数据全部查询出来。从employees表中读取数据,根据dep。id从departments获取dep。name,保存到Excel中。
2024-05-27 16:55:15 390
原创 HTTP client——kettle开发19
HTTP client中选择第二种方式,选择字段的方式来获取URL,然后将结果保存至result中,因返回的是XML,因此还需要一个Get data from XML,我们从返回的XML数据可知,对应需要数据存储在perproties路径下,因此我们在设置数据循环读取路径到perproties即可。最终转换包括自定义常量数据,用来保存url地址,HTTP client 用于获取xml文件,Get data from xml就是用来解析XML文件的、EXCEL输出用来输出最终的结果。
2024-05-27 16:51:52 634
原创 空操作——kettle开发18
此时做个需求肯定让你联想到switch case 组件,当switch表达式值的字段code为空的时,我们输出至Excel1,当他不为空的时候数据保持到EXCEl2中,这时候我们会得到两份结果。这是因为空操作就是啥都不干,我们也没必要在每个转换后面加上一个空操作来告诉别人,这个转换结束了,哈哈哈,这不得不提下前面我说到过的,其实组件在转换里面是没有顺序的,只有的优先级的概念。接下来我们做个转换,是从Excel读取数据,分离code为空的数据,空数据不执行任何操作,不为空的数据保持到Excel中。
2024-05-27 16:44:53 284
原创 switch-case语句——kettle开发17
switch case组件的主要三大部分包括switch判断的字段,类似于前面说到的表达式,然后选择case值的数据类型,建议使用整形,因为这样运行速度相对更高,然后就是case 值分组标志,即case值=0时输出一个结果,=1时输出另外一个结果,=2时类似。
2024-05-27 16:41:20 634
原创 行扁平化——kettle开发15
如都是张三,一行是张三的个人,如姓名是张三,年龄20,性别男。类似李四也是一行个人信息,一行学习课程信息,只有这样的数据才能分组并排序后进行扁平化,扁平化后的效果就是一行显示了张三的个人信息和学习课程信息。对应转换的包括EXCEL输入、排序记录、行扁平化、EXCEL输出,对应的EXCEL表输入和EXCEL表输出和以前操作一样就不重复展示,关键是介绍我们的行扁平化的操作,行扁平化需要找到关键字段,并指定转换的列名称。如下图所示,张三的爱好信息,分别存储了两行,扁平化后,整合成一行,效果如图所示,zhnag。
2024-05-27 15:15:45 381
原创 行转列——kettle开发14
具体EXCEL输入主要包括,要输入的EXCEL的位置,然后获取对应字段,EXCEL输出为指定EXCEL输出保存的位置,然后获取对应EXCEL输出的位置。其中行转列,我们根据上面说的语法,配置对应key字段、字段名称、Key值、Value值。我们来看下行转列组件的关键语法,行转列包括关键的Key字段即转换后的列名,然后通过字段名称周一至周日与key值匹配对应,最后将原列名周一至周日对应的数字,全部对应一个新的字段即工作小时,这样我们就完成了行转列的基本操作了。
2024-05-27 15:01:27 460
原创 列转行——kettle开发13
其中EXCEL输入和之前一样选择输入的EXCEL表格位置,并获取字段,重点阐述列转行,首先指定关键字段即我们需要转换的数据列,在我们的任务中就是星期字段,然后就是我们分组的字段即姓名,需要注意的是我们生成的新字段,根据数据来,数据中是周一至周日因此我们的列转行新字段名也分别是周一至周日。需要注意的是列转行在转换前也需要进行排序操作,具体我们可以看到列转行主要包括关键字段即我们需要转换的字段,如星期,分组字段是我们相同的主字段,如姓名,目标字段是生成的字段名,数据字段是工作小时,即是目标字段的存储值。
2024-05-27 14:58:05 522
原创 列拆分为多行——kettle开发12
实例,如我们将一个信息录入为1行,其中包括ID、name、age、sex、hobby,其中ID、name、age、sex均只有一个值,只有我了的爱好hobby是通过分号;ID、name、age、sex、hobby1(eat),ID、name、age、sex、hobby1(basketball),ID、name、age、sex、hobby1(football),ID、name、age、sex、hobby1(sing)如下图所示。最终我们的转换包括EXCEL输入、列拆分为多行、EXCEL输出。
2024-05-27 14:43:16 463
原创 拆分字段——kettle开发11
EXCEL输出还是和以前一样,选择EXCEL输出的位置,点击运行转换,查看运行结果,如图所示我们看到我们将原来的name字段拆分为了firstname和lastname这两个新字段,功能还是非常强大的,但是我们需要注意的是原来字段就不存在数据流中,因此我们输出的EXCEL中就不存在原来name字段的值。拆分字段,我们先选择要拆分的字段,然后选择拆分符为-,然后输入两个新字段的名称分别为firstname 和 lastname并指定对应字段类型为string类型。EXCEL输入还是和以前一样,选择。
2024-05-27 14:30:33 337
原创 哈希值——kettle开发10
如图所示,虽然殊途同归,但是哈希值的实现原理和去除重复记录+排序记录实现用原理还是有较大的区别的。去除重复记录和排序记录是对相邻的两行记录进行对比,这也是为啥去除重复记录必须要先排序,然后进行对比。然后我们再指定输出,指定输出结果的位置,然后运行转换,来查看对应的结果。结果如我们所示,由以前的8条,变成了4行,效率较去除重复记录和排序记录要高,因此,我们要根据我们的需求合理选择。首先我们先对EXCEL进行设置,和前面一样,我们找到input目录,指定对应EXCEL输入的位置,并获取对应EXCEL中的字段。
2024-05-27 14:26:19 295
原创 去重复记录和排序——kettle开发09
EXCEL输入:如图所示我们EXCEL表里面一共有7条记录,这里面需要注意的是,我们在去除重复记录的时候,是不是大小写敏感,如果我们大小写敏感的话,那我们如图所示,我们是没有重复记录的,因此我们在去除重复记录的时候要根据需求来选择是否大小写敏感来过滤我们的数据,从而达到我们去除重复的目的。去除重复记录,就是将数据流中的数据进行字段比较,从而去掉重复值的过程。去除重复记录的前提是需要将数据流中的数据进行排序,然后再进行去重操作。去除重复记录的逻辑是,如下图,我们将需要比较的字段作为比较值来比较是否重复。
2024-05-27 14:22:08 562
原创 大数据相关概念——kettle开发00
通常我们发现当我们使用某宝、某音后,他们会自动推荐我们想要的东西,哪怕只是今天和朋友提了一句,或者是偶尔闲聊,这些都会被大数据记住,然后推荐你需要的给你。在大数据给我们带来方便的同时,我们害怕数据安全会侵犯我的个人隐私。为了不被大数据化,我们可以搜索些我们不关注的,比如我是个男生为了不被大数据去搜索一些化妆品,衣服包包的信息,来稀释我们的用户画像信息,从而推荐就不会那么准确了。那这些大数据背后都有哪些数据处理工具和数据处理办法呢?
2024-05-24 17:24:18 233
原创 定时调度任务——kettle开发08
当我们刚接触kettle时,我们为了方便测试和演示作业的效果,常常通过Start组件来定时完成作业的调度。在我们的作业里头,我们选择通用,然后选择一个START组件,双击打开,我们就可以看到,START组件可以通过勾选重复,按照我们的要求来定时运行我们的作业。如下图所示,我们设置作业每小时运行一次,然后我们可以在日志栏详细看到我们的运行记录,包括运行时长,读取、删除、插入、更新那些记录。
2024-05-24 17:10:04 1163
原创 缓存机制以及清理——kettle开发07
缓存就是数据交换的缓冲区(又称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,找到了则直接执行,找不到的话则从内存中查找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。从上面缓存的介绍我们可以知道,缓存是个中间区类似于高速公路,因为电脑CPU是优先访问缓存,因此,缓存在性能上表现肯定是比较优秀的,因此我们该怎么用好缓存呢?
2024-05-24 17:03:40 1074
原创 使用excel模板导出数据——kettle开发06
一、导出过程本次因为要生成EXCEL报表,所以我们需要使用Microsoft Excel 输出组件,该组件与EXCEL输出的区别在于,EXCEL输出多用于导出数据,而Microsoft Excel 输出多用于导出报表。转换由表输入和Microsoft Excel 输出组成,我们从生成电量月报开始聊,然后慢慢展开。
2024-05-24 16:40:37 448
原创 批量读取EXCEL文件——kettle开发05
批量获取数据,当然这些数据的列名,基本上是长一样,这样我们才能批量将相似的数据存到对应的同一个表里面,然后用于经营分析。比如我们获取10个月的用电数据,然后这10个月的电费是分为10个EXcel存储的。EXCEL中的列名分别是用电日期、用电单位、用电度数、电价、电费。当然我们可以因为需要的改变,可以在第8 9 10个月的EXCEL表中增加抄表人、确认时间等。但他们主体都是前面说到的用电日期、用电单位、用电度数、电价、电费,只是我们的底表需要多增加两个字段来存储抄表人、确认时间。
2024-05-24 16:20:54 690
原创 插入更新——kettle开发04
插入更新的主要作用就是根据条件来检索数据,如果说相同更新记录,不相同增加记录。此时不懂的小明就会问了,里面的条件是指啥?是where条件嘛?插入更新里面的条件一般指需要更新或者插入的数据与现有表中数据的对比值,一般就是我们俗称的主键,这里面的主键分别单个主键和联合主键,但是不管是单个主键还是唯一主键,都必须满意一个原则,就是。
2024-05-24 16:13:45 765
原创 执行sql脚本——kettle开发03
1、一个作业内的转换,是顺序执行的。2、一个转换内的步骤是并行执行的。3、作业内不支持事务,转换内支持事务。1、执行SQL脚本是优先于所有步骤。2、使用“阻塞数据直到步骤都完成”,确保其他数据步骤都完成再进行下一步骤。如果我们不想让执行SQ脚本先执行,有没有办法让他听话呢?答案是一定的,此时我们需要用到阻塞对象,在执行SQ脚本前面安一个智能保安,保安保证前面的对象都执行完以后,再允许执行SQ脚本来运行。
2024-05-24 16:10:26 1021
原创 数据库迁移——kettle开发01
背景:数据库的多种多样,在搭建项目之初,并没有详细考虑到数据库的建设,当增加配置不能满足业务场景需要时,这时候考虑到使用更高性能的数据库,如将MySQL更换为。或者在搭建新项目时,需要复制原数据库的表结构和数据至其他数据库。
2024-05-24 15:33:45 480
原创 JAVA开发面试超详细
一种事物的多种表现形态就是多态,比如定义一个类为动物,那么动物可以被子类继承,从而实现具体动物的方法。死锁是指两个或两个以上的进程在竞争资源的过程中造成的不可解堵塞。两个线程都在互相等待。java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能成为java的反射机制。序列化:将java对象转换成字节流的过程。反序列化:将字节流转换成java对象的过程。
2024-05-23 17:12:54 1105
原创 Kettle新版下载安装使用-——kettle开发00
链接:https://pan.baidu.com/s/1xfjeUZKGMFZzWf2bP9ZHiQ?双击data-integration,找到spoon.bat进行双击,稍等几秒就可以显示界面啦。1.下载oracle的jar包,我这里我下载好了放在网盘里。(5)选择有“Data Integration”的下载。6.填写框起来的内容,点击测试,成功后再点击确认就好了。4.双击spoon.bat打开界面,新建转换。(1)复制链接在网页打开,点summary。(6)下载完就可以得到安装包了。
2024-05-17 11:06:12 8177 8
原创 mysql5.7.27安装图解教程和问题
1.在这里设置密码主要是为了解决:ERROR 1045 (28000): Access denied for user ‘root'@‘localhost' (using password: NO)的问题。xxxxxx是你设置的新密码,敲击回车后若出现以下信息,证明修改成功!进入MySQL成功!7. 手动停止MySQL服务,在win10搜索栏内输入。,再输入你刚刚设置的密码,出现以下信息证明设置成功!,我的电脑是64位的,因此选择这项进行下载,点击。# 设置mysql数据库的数据的存放目录。
2024-03-06 09:33:42 1022
原创 window下搭建Rocketmq服务及测试demo
cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true’,启动BROKER。1.3 配置环境变量,变量名:ROCKETMQ_HOME 变量值:MQ解压路径\MQ文件夹名;Source下载获取的是源码,需要经过编译后才可以使用,不过比较方便自行扩展,有扩展需求可以使用该版本自行编译。这里以编写时的最新版本为例,选择Binary版本下载,该版本为编译后的版本,可以直接使用。
2023-12-22 14:05:55 1361
原创 SpringBoot整合RocketMQ
1、实现SpringBoot与RocketMQ的整合2、解决在使用RocketMQ过程中可能遇到的一些问题3、介绍如何封装RocketMQ以便更好地使用。
2023-12-22 09:17:06 1691
原创 RocketMq简介
零拷贝(英语: Zero-copy) 技术是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另一个特定区域。这种技术通常用于通过网络传输文件时节省CPU周期和内存带宽。➢零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除传输数据在存储器之间不必要的中间拷贝次数,从而有效地提高数据传输效率➢零拷贝技术减少了用户进程地址空间和内核地址空间之间因为上:下文切换而带来的开销可以看出没有说不需要拷贝,只是说减少冗余[不必要]的拷贝。
2023-12-21 10:30:10 1073
struts2的单个文件上传
2014-09-11
solar1.4环境配置
2014-05-28
oracle学习笔记(从入门到精通)
2014-05-28
ExtJS4中文教程2+开发笔记+JS+JQUERY
2013-10-29
无损分区工具 Acronis Disk Director Suite v10
2015-11-03
Spring源码深度解析
2015-06-13
hibernate4+spring3+struts2搭建框架实例
2014-12-10
SSI实例(源码+mysql数据库+部署)
2014-11-25
xheditor-1.2.1(demo,js,api,doc)
2014-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人