摘要: 在什么情况下更适合使用HTML IMG标签来显示一个图像,而不是一个CSS有背景图像,反之亦然?如下场景使用img标签比较合适:1、如果图像是等内容的一部分或图表或人(真正的人,而不是股票图人),使用Img标签加上alt属性。2、如果你想打印页面并且你想要的图像包括默认情况下使用IMG。3、使用IM... 阅读全文
posted @ 2014-05-15 11:02 慕容尘轩 阅读(15401) 评论(0) 推荐(0) 编辑

 1、在使用kettle时如果对表输出性能要求,可以考虑用mysql 批量加载步骤,该步骤可以实现每秒5万+的数据同步(该数据仅是基于我本人的笔记本,若是服务器则效率更高),如下图所示:

 2、原理

知其然知其所以然,之所以MySQL Bulk Loader速度如此之快是因为MySQL 批量加载器使用“LOAD DATA INFILE 'FIFO 文件' INTO TABLE ....”语句,将数据从 Kettle 内部流式传输到一个命名管道,再将其导入到数据库中。

关于所使用命令的更多信息,可在 MySQL 参考文档中查找:LOAD DATA INFILE 语法。感兴趣的小伙伴可以查看mysql官方文档进一步学习,如下图所示:

 3、上DEMO

 本次使用的步骤有生成步骤、增加序列、 字段拼接、MySQL Bulk Loader四个步骤。

生成步骤:模拟生成100万条数据。

增加序列:生成唯一键。

字段拼接:修改生成的name字段。

MySQL Bulk Loader:将数据从 Kettle 内部流式传输到一个命名管道,再将其导入到mysql数据库中。注意windows不支持命名管道,mac和linux是支持的。

前三个步骤使用比较简单,今天重点介绍下MySQL Bulk Loader步骤,配置如下图所示:

 Fifo文件:这是用作命名管道的 FIFO 文件。如果该文件不存在,将使用 `mkfifo` 命令创建它,并使用 `chmod 666` 命令设置权限(这就是它在 Windows 系统中无法使用的原因)。 

字段之间的分隔符:字段的分隔符。(若未指定,默认使用制表符。)

封闭符:用于字符串的定界符。来指定包裹字符串字段的符号,比如常见的引号 `"` 或单引号 `'` 等。

逃逸符:如果字段中包含定界符,则使用转义字符对其进行转义。

字符集:所使用的字符集(可选)。

批量提交行数:每x笔数据一起提交。

与已有键值重复时替换:如果勾选此项,“REPLACE” 将被添加到命令中。若你进行了这样的设置,输入的行将替换现有的行。换句话说,那些主键或唯一索引的值与现有行相同的行将被替换。

与已有键值重复时替换:如果勾选该选项,“IGNORE” 会被添加到命令中。若你进行了此设置,输入行中唯一键值与现有行重复的行将被跳过。 

要加载的字段:设置数据库字段和流字段的映射关系,以及字段的格式化,如下图所示:

 4、调试

1)保存&运行,果不其然出错了,如下图所示:

 2)从报错的信息来看执行LOAD DATA INFILE 命令需要对数据库进行配置。 需要设置mysql服务器的local_infile变量。

通过SHOW VARIABLES LIKE 'local_infile';命令查看发现该参数处于关闭状态,

 

找到 MySQL 的配置文件(在 Linux 系统中通常是 /etc/my.cnf 或者 /etc/mysql/my.cnf,在 Windows 系统中可能是 my.ini),使用文本编辑器打开,添加或修改如下内容,然后重启mysql服务:

[mysqld]

local-infile = 1

在此查看该变量时已经处于开启状态。 

 3)重新运行转换依然抱错,这时候仔细查看发现说的是客户端和服务器端都得开启 local_infile 功能。

在kettle中编辑数据库连接,设置allowLoadLocalInfile=true即可解决此问题,如下图所示:

 设置好allowLoadLocalInfile参数后重新运行,可以正常work,happy!!!

posted @ 2025-04-01 21:57 慕容尘轩 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 场景:群里有小伙伴向我求助如何调用web service接口,趁着周末时间,给兄弟们搞demo。 1、本次使用的web service服务接口地址是http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?op=getSupportCityDataset, 阅读全文
posted @ 2025-03-29 21:46 慕容尘轩 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 场景:群里有小伙伴反馈kettle 7.x版本不能自动连接mysql8,安排!!! 1、将mysql8的驱动包mysql-connector-java-8.0.20.jar丢到kettle的lib目录下,重启spoon。 2、配置数据库连接,提示驱动类不对,没有正确使用我们的mysql8的驱动。如下 阅读全文
posted @ 2025-03-26 21:52 慕容尘轩 阅读(17) 评论(0) 推荐(0) 编辑
摘要: Kettle(Pentaho Data Integration)作为一款功能强大的开源 ETL(Extract, Transform, Load,即数据抽取、转换和加载)工具,拥有众多版本,这让许多用户在选择时犯了难。 1、提出问题 经常有群友提出使用kettle版本的问题,如下图所示: 2、ket 阅读全文
posted @ 2025-03-23 20:39 慕容尘轩 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 在国家大力倡导原创技术、推动信息技术应用创新(信创)的政策背景下,摆脱对国外技术的依赖、构建自主可控的信息技术体系成为重要发展方向。大数据作为信息技术的重要组成部分,国产大数据技术和产品迎来了前所未有的发展机遇。 信创旨在实现核心技术自主可控,保障国家信息安全,因此国产数据库、数据处理工具等大数据相 阅读全文
posted @ 2025-03-23 11:05 慕容尘轩 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 场景:kettle本身可以直接链接rabbitmq,但是需要配置rabbitmq开启mqtt协议,本次讲解下自定义开发组件RabbitMQ consumer,无需开启mqtt协议即可使用。 1、docker 安装rabbitmq 1)下载镜像 docker pull rabbitmq 2)启动服务 阅读全文
posted @ 2025-03-23 11:02 慕容尘轩 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 今天群里来了一位台湾同胞,没想到台湾同胞用的是繁体字,群里的小伙伴不淡定了,表示有些字看不懂。看不懂没关系,今天介绍的插件帮你解决这个问题。安排!!! 1、老规矩 将插件kettle-plugin-pinyin放到kettle的plugins目录下,重启spoon客户端。 2、开始编写转换demo, 阅读全文
posted @ 2025-03-23 10:58 慕容尘轩 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 场景:假如T日需要将a表中T-1日的数据同步到b表。由于某种业务需求a表中已经同步到b表中的数据发生了变化需要重新同步,这个时候就会用到插入更新插件,也就是 说a表中数据重新同步b表,若b表中存在此数据(根据唯一id)则执行更新操作,否则执行插入操作。 1、软硬件环境 本次教程基于本机docker版 阅读全文
posted @ 2025-03-05 21:03 慕容尘轩 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 场景:大家都知道我们平时使用spoon客户端的时候时无法直接使用git的,给我们团队协作带来了一些小问题,需要我们本机单独安装git客户端进行手动上传trans或者job。 我们团队成员倪老师开发了一款kettle的git插件,帮我们解决了这个大难题,大大方便了我们团队协作,今天一起来揭开这款插件的 阅读全文
posted @ 2025-03-03 21:36 慕容尘轩 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 平常我们在使用kettle抽取数据的时候会涉及到敏感数据邀请脱敏或者进行掩码的需求,今天我们使用自定义函数插件来实现这些需求。 1、将自定义函数插件(kettle-func-plugin.zip)解压后放到kettle的plugins目录下面,然后重启服务。 2、启动spoon客户端,转换文件夹下找 阅读全文
posted @ 2025-03-01 21:52 慕容尘轩 阅读(40) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示