自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kettle实战

Kettle工具推广、宣传与教学

  • 博客(42)
  • 收藏
  • 关注

原创 Kettle实战-目录(在此导航)

前言第1章 kettle概览 1.1 ETL介绍 1.2 适用场景-数据处理 1.3 适用场景-业务处理 1.4 怎样学好KETTLE第2章 kettle基本知识 2.1 转换 2.2 作业 2.3 kettle各个工具 2.4 变量 2.5数据库连接 2.6虚拟文件系统 2.7技巧与原则第3章 kettle数据处理 3.1 数据输入  3.1.1 SAP输...

2019-04-24 15:01:56 2590 1

原创 Debezium实战-第4章 连接器-PostgreSQL

Debezium PostgreSQL 连接器捕获 PostgreSQL 数据库模式中的行级更改。有关与连接器兼容的 PostgreSQL 版本的信息,请参阅Debezium 版本概述。第一次连接到 PostgreSQL 服务器或集群时,连接器会拍摄所有模式的一致快照。在该快照完成后,连接器会持续捕获插入、更新和删除数据库内容以及提交到 PostgreSQL 数据库的行级更改。连接器生成数据更改事件记录并将它们流式传输到 Kafka 主题。对于每个表,默认行为是连接器将所有生成的事件流式传输到该表的单独

2022-05-05 17:50:37 711 2

原创 Debezium实战-第4章 连接器-MongoDB

Debezium 的 MongoDB 连接器跟踪 MongoDB 副本集或 MongoDB 分片集群以查找数据库和集合中的文档变化,并将这些变化记录为 Kafka 主题中的事件。连接器会自动处理分片集群中片的添加或删除、每个副本集成员的变化、每个副本集合中的成员选举,以及等待通信问题解决。有关与此连接器兼容的 MongoDB 版本的信息,请参阅Debezium 版本概述。概述MongoDB 的复制机制提供了冗余和高可用性,是在生产环境中运行 MongoDB 的最佳方式。MongoDB 连接器可以捕获副

2022-05-05 17:49:34 474

原创 Debezium实战-第7章 其它-Debezium UI

7 其它7.1 Debezium UI注意此功能目前处于孵化状态,即确切的语义和行为等可能会根据我们收到的反馈在未来的修订中发生变化。如果您在使用 Debezium UI 时遇到任何问题,请告诉我们您的功能请求。Debezium UI 允许用户更轻松地设置和操作连接器。例如,可以查看所有连接器的列表以及它们的状态等。创建连接器向导允许用户配置连接器,并在此过程中指导和验证属性条目。设计注意事项UI 实现为基于Quarkus的 Web 应用程序。后端配置有一个或多个 Kafka

2022-04-29 13:32:58 1797

原创 Debezium实战-第6章 API与SPI

6 API与SPI6.1 Debezium引擎Debezium 连接器通常通过将它们部署到 Kafka Connect 服务并配置一个或多个连接器来监控上游数据库并为它们在上游数据库中看到的所有更改生成数据更改事件来操作。这些数据更改事件被写入 Kafka,在那里它们可以被许多不同的应用程序独立使用。Kafka Connect 提供出色的容错性和可扩展性,因为它作为分布式服务运行,并确保所有已注册和配置的连接器始终运行。例如,即使集群中的一个 Kafka Connect 端点出现故障,其余的 Kafka

2022-04-29 13:29:03 2965

原创 Debezium实战-第5章 转换

5 转换5.1 概览可以使用转换配置连接器,以使每个消息修改轻量级。Debezium 提供了几个单消息转换(SMT),您可以使用它们在将记录发送到 Apache Kafka(通过将它们应用到 Debezium 连接器)之前修改记录,或者在接收器连接器从 Kafka 读取它们时修改它们。Debezium Server也支持使用 SMT。Debezium 提供以下 SMT:转换描述主题路由根据应用于原始主题名称的正则表达式将记录重新路由到不同的主题。基于内容的路由根据活动内

2022-04-29 13:27:45 2107

原创 Debezium实战-第4章 连接器-Oracle

4.6 Oracle适用于 Oracle 的 Debezium 连接器概述Debezium 的 Oracle 连接器捕获并记录发生在 Oracle 服务器上的数据库中的行级更改,包括在连接器运行时添加的表。您可以将连接器配置为针对特定的schemas和表的子集发出更改事件,或者忽略、屏蔽或截断特定列中的值。有关与此连接器兼容的 Oracle 数据库版本的信息,请参阅Debezium 版本概述。Debezium 通过使用本机 LogMiner 数据库包或XStream API从 Oracle 获取更

2022-04-29 13:25:09 659

原创 Debezium实战-第4章 连接器-SQL Server

4.5 SQL ServerDebezium SQL Server 连接器捕获 SQL Server 数据库schemas中发生的行级更改。有关与此连接器兼容的 SQL Server 版本的信息,请参阅Debezium 版本概述。Debezium SQL Server 连接器第一次连接到 SQL Server 数据库或集群时,它会获取数据库中schemas的一致快照。初始快照完成后,连接器会持续捕获行级更改,为提交到启用 CDC 的 SQL Server 数据库的INSERT、UPDATE或DELET

2022-04-29 13:23:55 438

原创 Debezium实战-第4章 连接器-Mysql

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-04-29 13:20:40 997

原创 Debezium实战-第3章 配置

3 配置2.1 Avro序列化Debezium 连接器在 Kafka Connect 框架中工作,通过生成更改事件记录来捕获数据库中的每个行级更改。对于每个更改事件记录,Debezium 连接器完成以下操作:应用配置的转换。使用配置的Kafka Connect 转换器将记录键和值序列化为二进制形式。将记录写入正确的 Kafka 主题。您可以为每个单独的 Debezium 连接器实例指定转换器。Kafka Connect 提供了一个 JSON 转换器,可将记录键和值序列化为 JSON 文档。默

2021-11-19 17:28:22 1762

原创 Debezium实战-前言

我们今天的应用程序很多都依赖于数据库,用于持久保存数据。如:商品数据,订单数据等等。在许多场景中我们都需要把数据库实时产生的数据捕捉出来,传送到其它地方。比如:读写分离(将数据发送到搜索引擎中,象ES来做后期的查询),异地灾备(相当于把本地数据库在其它地方再备份一个,当出现意外情况时可以使用备库),数据迁移(数据库需要转移到另一个相同或不同的数据库中)等等。在面对这些需求的时候,通常做为系统架构者都非常头疼,如何才能及时、稳定、高效的捕捉到这些变化的数据呢?比较简单的方案就是通过表的时间戳,定时去抽取变化

2021-11-19 11:23:29 928

原创 Debezium实战-第2章 实例教程(监控数据库Mysql)

本教程演示了如何使用 Debezium 监控 MySQL 数据库。随着数据库中的数据发生变化,您将看到生成的事件流。在本教程中,您将启动 Debezium 服务,使用一个简单的示例数据库运行 MySQL 数据库服务器,并使用 Debezium 监视数据库的更改。前提条件Docker 已安装并正在运行。本教程使用 Docker 和 Debezium 容器镜像来运行所需的服务。您应该使用最新版本的 Docker。有关更多信息,请参阅Docker 引擎安装文档。注意本教程演示了

2021-11-17 17:33:55 2845 2

原创 Debezium实战-第1章 开始

1 开始1.1 Debezium简介Debezium 是一个开源项目,为捕获变更数据(CDC) 提供低延迟的数据流平台。您设置并配置 Debezium 以监控您的数据库,然后您的应用程序就可以使用这些对数据库进行的每个行级更改的事件。只有已提交的更改是可见的,因此您的应用程序不必担心回滚的事务或更改。Debezium 提供所有更改事件的单一模型,因此您的应用程序不必担心每种数据库管理系统的复杂性。此外,由于 Debezium 在持久、复制的日志中记录数据更改的历史记录,因此您的应用程序可以随时停止和重新

2021-11-15 17:14:27 2040

原创 tomcat8.5+ windows中html页面及控制台中文乱码问题解决办法

前几天有OMI的用户反映,安装OMI时有中文乱码现象,我还说不可能。我们的程序在windows,linux都布署过无数次了,开发时都是UTF8编码的,咋还会乱码呢。结果看了半天也没看出个啥,还是没解决。最近新安装程序时,新下载了一个tomcat8.5的版本,一跑程序还真乱码了。因为之前我们的程序都是跑在tomcat7,最高是tomcat8.0,没试过更高的,高版本确实有问题,且控制台中文也是乱码。一、尝试了一些网友给的办法,下面说一下解决方案:1、tomcat\bin\catalina.bat

2020-05-19 15:38:10 2101

原创 kettle实战-3Kettle数据处理-3.2数据转换-3.2.1 万能的javascript脚本节点

  JavaScript脚本节点非常的灵活,可以代替多个步骤,比如,定义常量,获取变量,类型转换,合并,拆分等常用功能。但对于新上手的同学在不熟练此节点的情况下还是尽量少写代码,减少出错。什么时候用它呢,系统资源有限、现有步骤不能满足要求且你能写JavaScript脚本,这时你可以选择此节点,本人就非常愿意使用这个节点,承担了大部分转换工作,比如:需求要查找前一天的数据,这时用SQL,或其它节点都...

2019-07-08 20:35:06 1223 1

原创 kettle实战-3Kettle数据处理-3.1数据输入-3.1.1SAP输入

  一些大型企业内的系统集成中,经常遇到需要与SAP ERP系统进行集成,有些企业购买了SAP的PI集成中间件产品,那对于接入SAP系统就会轻松一些,PI作为一款ESB产品,对于服务的支持是非常好的,但对于一些企业没有上PI,或者传输数据比较大时,走WEB服务显然就不适合了,通常我们会想到直接走数据库底层,但SAP这类大型ERP系统都是不开放底层数据库表的,就算给你看,你也很难能看懂,己经完全被编...

2019-07-08 11:43:55 4080 7

原创 kettle实战-4 OMI介绍-4.6 服务应用

为己发布服务设计交互界面,如:参数条件,显示字段等,满足简单应用需求。

2019-07-05 09:51:09 1206

原创 kettle实战-4 OMI介绍-4.5 MQ监听

  多种MQ队列监听设置,支持阿里ons,JMS,rabbitMQ,kafka。监听器需要配置一个监听处理的服务组件,即发布服务中创建的服务。

2019-07-05 09:44:55 2470

原创 kettle实战-4 OMI介绍-4.4 服务网关

将发布出的服务进行管理控制,权限、流量、访问频度、跨域等配置。

2019-07-05 09:37:13 876

原创 kettle实战-4 OMI介绍-4.3 调度任务

  创建定时任务,进行调度相关服务组件(“发布服务”中创建的相关服务),或其它远程接口hession,http,RMI。也可以上传JAR包,调用实现指定接口的java方法。  调度支持集群环境,同一时点任务只会在某一台服务器中运行,不会重复执行。...

2019-07-05 09:29:53 1306

原创 kettle实战-4 OMI介绍-4.2 服务开发

  创建服务(SOAP、REST)并将服务与数据处理相关联,也可以理解为将数据处理发布成服务,供外部调用。通过向导配置服务相关信息,基本、访问控制、入参(如果有)、选择数据处理组件(数据开发中配置的“数据处理”)、出参(如果有)。菜单“发布数据”->“创建服务”。  创建的服务可能被外部调用,从而驱动数据处理组件运行,即kettle的转换或任务。运行结果日志可供查看。...

2019-07-05 09:29:11 1358

原创 kettle实战-4 OMI介绍-4.1 数据开发

  数据开发使用kettle的spoon 工具做线下开发数据处理流程,然后将转换或任务上传至OMI平台。菜单“数据开发”->“资源上传”。  创建数据处理,选择上传资源,配置相关运行参数,在线执行kettle组件,转换或任务,并找看相关运行日志。菜单“数据开发”->“数据处理”。...

2019-07-05 09:27:29 3304

原创 kettle实战-5kettle+OMI实战场景-5.1大数据场景POC

  本场景是为某大数据项目做的一个产品POC,现在分享给大家。此项目主要从几个业务系统中同步数据进行加工处理分析,最后生成API供前端展示。POC分两大场景,一个非实时场景及准实时场景。  非实时场景流程如上图,OMI(onemysoft.com开发的一个以kettle为引擎的数据处理平台)通过调度定时从若干业务系统中抽取数据,按照相应逻辑生成文本文件,传至FTP或阿里云的OSS分布式文...

2019-07-01 16:47:53 3536

原创 kettle实战-4 OMI介绍

  我们使用Kettle在实际项目应用中,会遇到一些kettle不方便处理的问题,比如想要定时调度执行某个任务时,kettle自带的定时功能肯定是不能满足要求了,它需要界面一直处在打开状态,会占用大量的资源,并且界面有崩溃的风险。当然也有替代方案,就是使用操作系统的计划任务,不管是windows还是linux系统都提供了这样稳定的调度系统。如果你是专业人员和运维,当然是没有问题,写一个bat或sh...

2019-06-24 18:02:21 5982 1

原创 kettle实战-2基本知识-2.7技巧与原则

  开发kettle流程时由于kettle本身的灵活性,致使完成一件事情可能每人都有不同的设计,这些不同的设计虽然都能完成工作,但效率或可维护性都变得不同了。下面谈谈我开发kettle的一些技巧与原则:  1、 多写注释,步骤尽量改成有意义的名称(后期好维护)  2、 步骤尽可能的少,能二步解决的,决不三步(耗费线程)  3、 充分发挥数据库能力,一些数据间关联尽量在SQL...

2019-06-24 17:59:53 675

原创 kettle实战-2基本知识-2.6虚拟文件系统

  Kettle使用apache VFS实现统一的文件访问,这样做是非常方便的,举个例子,正常操作一个文件,这是/xxx/xxx/xxx.doc磁盘上的文件,如果想要操作一个FTP上的文件,有了虚拟文件系统就可以直接使用ftp://xxx/xxx/xxx.doc访问了。如果有密码使用ftp://user:pwd@xxx/xxx/xxx.doc访问。也可以是HTTP,ZIP等一些协议。...

2019-04-23 11:44:50 494

原创 kettle实战-2基本知识-2.5数据库连接

  数据库连接这个大家应该都常用,这里说几个注意的点吧,有时在数据库表变更,如增加或减少字段时,转换里可能不会立刻出现或消失变更的字段,这时需要右键数据库连接,点击清除缓存就可以了。想要让一个转换内的数据库操作在一个事务中时,要设置转换属性中,杂项中的“使用唯一连接”。不是必须尽量别用,性能下降严重。需要复用的连接可以设置成共享,每次在转换中不用重新建立,出现更新时可以更改一次即可。  数据库...

2019-04-22 11:30:02 828

原创 kettle实战-2基本知识-2.4变量

  作业和转换中都可以使用变量,变量分全局和运行时两种,全局定义在kettle.properties文件中,在spoon中就可以改,运行时变量可以作为参数传入,也可以在运行定义赋值,变量的作用域分JVM,和作业级,转换内的变量相当于常量,值是不能动态改的。因为转换是各步骤并行,不是按顺序执行,机制决定了如此,想要达到这效果要作业+转换组合实现。  变量可以在任意带有<$>这样图标的...

2019-04-19 09:06:14 732

原创 kettle实战-2基本知识-2.3kettle各个工具

  Kettle有几个工具介绍一下,matt这个哥们挺有意思的,所有kettle相关的这些名字都跟厨房有关系,据说kettle这个名字就是想让各种数据汇聚在这个水壶中,再统一口径的输出。其它都介绍一下:  Spoon:主要是转换和作业的设计工具,kettle是一种图形化的程序开发。  Kitchen:命令行方式执行运行作业,用于编写SHELL脚本,设置操作系统调度。  Pan:命令行方...

2019-04-18 14:37:23 893

原创 kettle实战-2基本知识-2.2作业

  作业是Kettle的另一个组件,作业也包括步骤和连线,主要作用是将转换有顺序的连接起来,还可以定时执行。转换中不容易控制各步骤的顺序,结合作业就可以更精确的控制处理流程。作业是串行执行的(当然也可以选择并行),现行版本的kettle中,转换中可以调用作业,作业中又包含转换,这些组合可以设计出很复杂的处理流程。  作业的串行执行路径和转换是不同的,按作者的解释是用回溯算法执行所有的作业步骤,...

2019-04-18 11:48:13 893 1

原创 kettle实战-2基本知识-2.1转换

转换是kettle最主要也是最常用的部分,它由步骤和连线组成,划重点了:1、每一个步骤是一个独立线程,转换初始化时,每一个步骤都要初始化(不管有没有数据经过),比如连接数据库之类的工作,转换各步骤并行多线程执行。2、转换从“输入”(kettle输入下面的步骤)开始(有几个特殊的),不是什么步骤都能放在第一步的,可以同时有多个输入步骤,多个数据流程。如图:3、转换步骤间传递的数据,是...

2019-04-17 15:36:46 1013

原创 kettle实战-1概览-1.4怎样学好KETTLE

  Kettle虽然非常容易上手,但要运用好也需要费点心思,一般经常遇到的问题是步骤不会用,虽然kettle有帮助说明,但并不直观。这里我推荐kettle自带的例子,可能有人也知道,位置就在\data-integration\samples\这个路径文夹下有转换,任务的很多例子,一些常见的例子都有,大家可以运行查看,基本就可以掌握。  如果例子里找不到,需求也比较复杂,与例子对应不上,那就得求...

2019-04-16 11:49:49 940 1

原创 kettle实战-1概览-1.3适用场景-业务处理

  再说一些项目中与业务相关的处理操作,像我们会在每晚定时执行一些业务处理,可能是统计、汇总、备份、计算等等,在银行业务中管这种操作叫跑批,不管叫什么,我们的项目中或多或少都会有些这样的定时作业。这种场景如果不用其它工具,基本都是使用存储过程、程序或两者组合来完成。而我们现在是基于kettle来处理的,又涉及比较了,这里再强调一下,这种比较是一种综合考量,不是绝对的哪个好哪个坏,只要你喜欢,你可以...

2019-04-16 10:27:52 2459

原创 kettle实战-1概览-1.2适用场景-数据处理2

  最后想说另一个项目中常见的场景,就是文件的导入导出。我们经常在项目中会遇到用户要求增加上传excel数据,并读取写入到数据库中的功能,这样的功能几乎废掉了我们的界面写入功能,开发人员会因为精心设计的界面被弃之不用,而非常恼火。可恼火也没用,用户是上帝,每次的抵抗最后都是妥协,上网搜索excel读取,出现了一大堆被折磨的好心前人写下的解决方案,多半还附送上了代码,于是开始一通拷贝、粘贴、调试。至...

2019-04-15 11:33:29 626

原创 kettle实战-1概览-1.2适用场景-数据处理1

  上一节讲了ETL,ETL就是在数据处理,强调的是批量、高效的处理数据。这节要讲一下数据处理的场景,让人更直观的了解kettle的作用,什么地方可以用它,比其它方式有什么优势。  数据处理在我们日常项目中,主要包括数据初始化、迁移、同步、清洗、导入导出等。首先数据初始化一般在项目上线前,会有一些基础类主数据要预先导入系统中,这时的数据源可能有多种,可能是文本类文件,如excel或txt文件。...

2019-04-15 11:33:01 1266

原创 kettle实战-1概览-1.1ETL介绍

  都说kettle是一个ETL工具,那就必须先介绍一下ETL是个啥,ETL是三个英文的首字母,分别代表抽取、转换、加载,这个词很久之前就有了,想知道细节的可以自行查找,我们这里讲一些其它教程未做重点突出的部分。ETL表述的是一个过程,我们用一个图和换一个描述来表示一下。  从图上可以看出,其实就是一个输入数据,相应处理,再输出的过程,这个过程对一个程序开发人员来说,可以说再平常不过。我们...

2019-04-14 18:48:31 919

原创 Kettle实战-前言

  使用kettle工作很多年了,受益于它的开源,不但让我免费得到一个强大的工具,还在学习和运用kettle过程中学到了很多设计、编程等知识。我发现突然到了要大肆夸讲它时,才发现对于使用它像喝水一样平常的事情时,那些溢美之词都显得很无力了。多年的“耳鬓厮磨”使kettle对于我产生了深厚的感情,一直想对kettle的推广做点什么,可是害怕自己经验不够,理解不深误人子弟,其实最主要的是懒惰让这件事只...

2019-04-12 18:01:06 775

原创 kettle 通过vfs上传FTP问题

KETTLE在转换中输出地址使用VFS上传LINUX的FTP,VFS与FTP交互默认的是主动模式,由于网络环境的原因,有时需要改为被动模式,但在KETTLE中如何配置呢?如下:在参数中增加:vfs.ftp.PassiveMode=truekettle6.0版本己经使用vfs2.0解决了这个问题,以下版本需要设置文本输出步骤需要修改源码,其它步骤如excel到ftp,json到ftp不...

2016-04-14 17:08:39 3908 1

原创 xfire web service导致cpu100%问题分析

最近遇到一个遗留系统出现CPU经常出现100%的情况,且必须重启应用服务器才能解决,线程的dump为:"http-9099-Processor167" daemon prio=10 tid=0x00007f7fbc07e000 nid=0x9506 runnable [0x00007f7f248c1000]   java.lang.Thread.State: RUNNABLE

2016-03-23 13:21:32 1498 3

原创 mysql中聚合函数条件

有个需求,某张表,有个状态字段(1:成功,2:失败,类似这样的),现要用日期分组统计不同状态下的数量先写了个子查询:select aa.logDate,aa.totalLogs,(select count(1) from dxp.dxp_handlermodel where aa.logDate=DATE_FORMAT( startTime, '%Y-%m-%d') and exec...

2016-02-01 11:16:30 2617

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除