- 浏览: 600054 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
注意事项
1)进入到Kettle部署的路径
2)执行 chmod *.sh,将所有shell文件添加可执行权限
3)在Kettle路径下,如果要执行transformation,就运行./pan.sh -file=?.ktr -debug=debug -log=log.log
其中。-file说明你要运行的transformation文件所在的路径;-debug说明日志输出的级别;-log说明日志输出的路径
4)同理,对于job的执行,请将./pan.sh更换成./kitchen.sh,其他部分说明不变。
2,Kettle环境变量使用。
在transformation中,Core Objects->Job->Set Variables,可疑设置环境变量,对于绝对路径和相对路径的转换很
有帮助,Kettle的跨平台很大程度依靠他的
3,其它功能的使用。
其它功能包括DB存储过程调用,流查询,值映射,聚合记录等。
4,Kettle定时功能。
在Job下的'start模块',有一个定时功能,可以每日,每周等方式进行定时,对于周期性的ETL,很有帮助。
5,Kettle经验之日志。
Kettle对于日志的处理,存在一个BUG,看过上一篇的人或许已经看到了我的留言,Kettle对于日志处理有一个BUG,
当日志多于49M(不是50M,也不是49M),Kettle就会自动停止,这一点我在源码里面也没有找到对应的设置和约束,
原因还找不到,因为是日志没有写,所以原因也不好跟踪还不知道具体原因。
6,Kettle之效率提升。
Kettle作为一款'ETL工具',肯定无法避免遇到效率问题,当很大的数据源输入的时候,就会遇到效率的问题。对此有几个解决办法:
1)数据库端创建索引。对需要进行查询的数据库端字段,创建索引,可以在很大程度上提升查询的效率,最多的时候,我不创建索引,
一秒钟平均查询4条记录,创建索引之后,一秒钟查询1300条记录。
2)数据库查询和流查询注意使用环境。因为数据库查询为数据输入端输入一条记录,就对目标表进行一次查询,而流查询则是将目标
表读取到内存中,数据输入端输入数据时,对内存进行查询,所以,当输入端为大数据量,而被查询表数据量较小(几百条记录),
则可以使用流查询,毕竟将目标表读到内存中,查询的速度会有非常大的提升(内存的读写速度是硬盘的几百倍,再加上数据库自
身条件的制约,速度影响会更大)。同理,对于目标表是大数据量,还是建议使用数据库查询,不然的话,一下子几百M的内存被干
进去了,还是很恐怖的。
3)谨慎使用javascript脚本,因为javascript本身效率就不高,当你使用js的时候,就要考虑你每一条记录,就要执行一次js所
需要的时间了。
4)数据库commit次数,一条记录和一百条记录commit对效率的影响肯定是不一样的。
5)表输入的sql语句的写法。有些人喜欢在表输入的时候,将所有关联都写进去,要么from N多个表,要么in来in去,这样,
就要面对我在2)里面说道的问题,需要注意。
6)注意日志输出,例如选择数据库更新方式,而且日志级别是debug,那么后台就会拼命的输出日志,会在很大程度上影响速度,
此处一定要注意。
7,Kettle最佳实践
一、当输入对象为CSV文件时,将NIO Buffer Size从默认的50000改到最佳的200000。
二、当输出对象为表输出时,将提交记录数量从默认的1000改到最佳的4000。
三、尽可能关闭转换过程中一切与数据库相关的日志,如表日志、索引日志等。
四、在数据库去重时,使用普通索引而不是唯一性索引。
五、在插入数据之前,先使索引unusable,数据导完之后再rebuild索引。需要注意的是,像数据库去重这种需要索引来优化查询速度的情况可以排除在外。
六、索引和表数据使用不同的表空间,尽可能的减少IO争用。
七、Kettle所在操作系统优先选择Windows,在有些情况下Linux的插入速度明显偏低。
八、尽量使用数据库连接池
九、尽量提高批处理的'commit size'
十、尽量使用缓存,缓存尽量大一些
十一、Kettle 是Java 做的,尽量用大一点的内存参数启动Kettle.
十二、可以使用sql 来做的一些操作尽量用sql
'Group , merge , stream lookup ,split field' 这些操作都是比较慢的,想办法避免他们。
插入大量数据的时候尽量把索引删掉
尽量避免使用update , delete 操作,尤其是update , 如果可以把update 变成先delete ,后insert。
能使用truncate table 的时候,就不要使用delete all row 这种类似sql
如果删除操作是基于某一个分区的,就不要使用delete row 这种方式(不管是delete sql 还是delete 步骤),直接把分区drop 掉,再重新创建
尽量缩小输入的数据集的大小(增量更新也是为了这个目的)
尽量使用数据库原生的方式装载文本文件(Oracle 的sqlloader , mysql 的bulk loader 步骤)
尽量不要用kettle 的calculate 计算步骤,能用数据库本身的sql 就用sql ,不能用sql 就尽量想办法用procedure , 实在不行才是calculate 步骤。
1)进入到Kettle部署的路径
2)执行 chmod *.sh,将所有shell文件添加可执行权限
3)在Kettle路径下,如果要执行transformation,就运行./pan.sh -file=?.ktr -debug=debug -log=log.log
其中。-file说明你要运行的transformation文件所在的路径;-debug说明日志输出的级别;-log说明日志输出的路径
4)同理,对于job的执行,请将./pan.sh更换成./kitchen.sh,其他部分说明不变。
2,Kettle环境变量使用。
在transformation中,Core Objects->Job->Set Variables,可疑设置环境变量,对于绝对路径和相对路径的转换很
有帮助,Kettle的跨平台很大程度依靠他的
3,其它功能的使用。
其它功能包括DB存储过程调用,流查询,值映射,聚合记录等。
4,Kettle定时功能。
在Job下的'start模块',有一个定时功能,可以每日,每周等方式进行定时,对于周期性的ETL,很有帮助。
5,Kettle经验之日志。
Kettle对于日志的处理,存在一个BUG,看过上一篇的人或许已经看到了我的留言,Kettle对于日志处理有一个BUG,
当日志多于49M(不是50M,也不是49M),Kettle就会自动停止,这一点我在源码里面也没有找到对应的设置和约束,
原因还找不到,因为是日志没有写,所以原因也不好跟踪还不知道具体原因。
6,Kettle之效率提升。
Kettle作为一款'ETL工具',肯定无法避免遇到效率问题,当很大的数据源输入的时候,就会遇到效率的问题。对此有几个解决办法:
1)数据库端创建索引。对需要进行查询的数据库端字段,创建索引,可以在很大程度上提升查询的效率,最多的时候,我不创建索引,
一秒钟平均查询4条记录,创建索引之后,一秒钟查询1300条记录。
2)数据库查询和流查询注意使用环境。因为数据库查询为数据输入端输入一条记录,就对目标表进行一次查询,而流查询则是将目标
表读取到内存中,数据输入端输入数据时,对内存进行查询,所以,当输入端为大数据量,而被查询表数据量较小(几百条记录),
则可以使用流查询,毕竟将目标表读到内存中,查询的速度会有非常大的提升(内存的读写速度是硬盘的几百倍,再加上数据库自
身条件的制约,速度影响会更大)。同理,对于目标表是大数据量,还是建议使用数据库查询,不然的话,一下子几百M的内存被干
进去了,还是很恐怖的。
3)谨慎使用javascript脚本,因为javascript本身效率就不高,当你使用js的时候,就要考虑你每一条记录,就要执行一次js所
需要的时间了。
4)数据库commit次数,一条记录和一百条记录commit对效率的影响肯定是不一样的。
5)表输入的sql语句的写法。有些人喜欢在表输入的时候,将所有关联都写进去,要么from N多个表,要么in来in去,这样,
就要面对我在2)里面说道的问题,需要注意。
6)注意日志输出,例如选择数据库更新方式,而且日志级别是debug,那么后台就会拼命的输出日志,会在很大程度上影响速度,
此处一定要注意。
7,Kettle最佳实践
一、当输入对象为CSV文件时,将NIO Buffer Size从默认的50000改到最佳的200000。
二、当输出对象为表输出时,将提交记录数量从默认的1000改到最佳的4000。
三、尽可能关闭转换过程中一切与数据库相关的日志,如表日志、索引日志等。
四、在数据库去重时,使用普通索引而不是唯一性索引。
五、在插入数据之前,先使索引unusable,数据导完之后再rebuild索引。需要注意的是,像数据库去重这种需要索引来优化查询速度的情况可以排除在外。
六、索引和表数据使用不同的表空间,尽可能的减少IO争用。
七、Kettle所在操作系统优先选择Windows,在有些情况下Linux的插入速度明显偏低。
八、尽量使用数据库连接池
九、尽量提高批处理的'commit size'
十、尽量使用缓存,缓存尽量大一些
十一、Kettle 是Java 做的,尽量用大一点的内存参数启动Kettle.
十二、可以使用sql 来做的一些操作尽量用sql
'Group , merge , stream lookup ,split field' 这些操作都是比较慢的,想办法避免他们。
插入大量数据的时候尽量把索引删掉
尽量避免使用update , delete 操作,尤其是update , 如果可以把update 变成先delete ,后insert。
能使用truncate table 的时候,就不要使用delete all row 这种类似sql
如果删除操作是基于某一个分区的,就不要使用delete row 这种方式(不管是delete sql 还是delete 步骤),直接把分区drop 掉,再重新创建
尽量缩小输入的数据集的大小(增量更新也是为了这个目的)
尽量使用数据库原生的方式装载文本文件(Oracle 的sqlloader , mysql 的bulk loader 步骤)
尽量不要用kettle 的calculate 计算步骤,能用数据库本身的sql 就用sql ,不能用sql 就尽量想办法用procedure , 实在不行才是calculate 步骤。
发表评论
文章已被作者锁定,不允许评论。
-
Kettle 数据库连接采用文本文件进行配置
2016-01-29 10:29 1405kettle.properties文件中定义,文件的路径默认如 ... -
kettle 命令行运行作业(kitchen)和转换(pan)以及一路下来编写的例子
2015-11-17 10:34 6338Kettle好的论坛:http://www.flybi.net ... -
Kettle 合并记录和Merge Join组件实现数据增量迁移(数据同步比插入更新快
2015-09-24 14:40 2847该步骤用于将两个不同 ... -
Kettle 流查询,数据库查询和Merge Join的区别
2015-07-17 15:04 1661他们的主要区别: •流查询步骤只能进行等值查询,数据库查 ... -
Kettle 调用存储过程
2015-07-17 10:53 3955不带参数的存储过程可以直接使用“调用DB存储过程”控件,将存储 ... -
Kettle 参数、变量和全局变量(kettle.properties)使用
2015-07-16 15:52 7122有没有能统一管理一个参数,然后让所有的transformati ... -
Kettle初步学习
2015-07-16 15:29 530kettle是一个ETL(Extract, Transform ... -
Java kettle程序执行 kettle文件
2015-07-16 15:04 2746Java执行本地ktr文件和kjb ...
相关推荐
Linux Centos 环境 Kettle 部署与定时作业执行 Linux Centos 环境 Kettle 部署与定时作业执行是指在 Linux Centos 环境中部署 Kettle 工具,并配置定时...同时,需要注意一些注意事项,以确保 Kettle 的正常运行。
4. **最佳实践**:分享使用Kettle时的技巧和注意事项。 通过这份PPT,新手可以逐步掌握Kettle的基本操作和设计理念,为后续深入学习和实际项目应用打下坚实的基础。同时,建议结合其他在线教程、文档和社区资源,...
5. **注意事项**: - 确保你的Oracle数据库服务正在运行,并且网络连接是通畅的。 - 如果遇到权限问题,可能需要修改Oracle的tnsnames.ora文件来配置连接。 - 安全性更新:定期检查并更新JDBC驱动,以利用最新的...
#### 三、实战心得与注意事项 - **确保数据类型匹配**: 在处理过程中,确保各个步骤之间的数据类型兼容是非常重要的。例如,当使用计算器步骤进行数值运算时,确保所有的参与运算的数据都是数值类型。 - **插件的...
在IT领域,尤其是在数据处理和集成的...通过以上描述,我们可以了解到Kettle在处理和同步带有时间戳的源数据时的方法和注意事项。理解和掌握这些知识点,对于在实际数据处理项目中高效、准确地进行数据同步至关重要。
四、注意事项 - 当遇到版本不兼容问题时,应确保使用的JDBC驱动与达梦数据库版本匹配。 - 记得在生产环境中设置合适的事务处理和错误处理策略,以确保数据的一致性和完整性。 - 定期检查并更新JDBC驱动,以获取最新...
8. **注意事项** - **Java配置**:确保正确卸载旧版本的Java,使用`rpm -qa | grep java`查看并使用`rpm -e --nodeps`卸载。 - **Kettle数据库配置**:所有数据库配置应在Windows GUI中完成,然后将任务和相关ktr...
五、注意事项 1. 版本升级:当数据库系统升级时,也需要同步更新驱动包,否则可能导致连接失败。 2. 多版本兼容:如果需要连接不同版本的数据库,可能需要同时配置多个驱动包。 3. 性能优化:选择高性能的驱动包...
6. **注意事项**:在Java中调用Kettle时,需要注意线程安全性和资源管理,因为Kettle引擎可能会使用大量的内存和系统资源。此外,正确处理日志和错误输出也很重要,以便于调试和监控。 7. **最佳实践**:为了提高...
在使用这个压缩包时,仔细阅读提供的文档或README文件,了解具体的步骤和注意事项。编译Kettle 8.0的过程可能需要一些时间,因为这涉及到处理大量的源代码和依赖。不过,一旦设置好环境,你就可以自由地探索Kettle的...
以下将深入解析Kettle的安装步骤及注意事项,帮助读者更好地理解和操作。 ### Kettle安装流程详解 #### 1. 环境准备 在开始安装Kettle之前,确保系统环境满足以下要求: - 操作系统:支持Windows、Linux和Mac OS...
5. 注意事项: - 集成前确保已将Kettle的相关jar包添加到Java项目的类路径中。 - 由于Kettle依赖于特定版本的JDBC驱动,因此在运行时需要确保所有必需的驱动都在类路径中。 - 调整代码以适应实际的文件路径和日志...
3. **注意事项**: - **版本兼容性**:确保jtds.jar版本与你的SQL Server版本相兼容,不同版本的SQL Server可能需要不同版本的驱动。 - **安全**:在生产环境中,确保数据库连接信息的安全,避免明文存储用户名...
4. **最佳实践与注意事项**: - 在处理大量数据时,考虑数据分区策略,以优化性能。 - 确保在处理前备份原始数据,以防不测。 - 如果数据包含敏感信息,记得在输出或存储过程中应用适当的隐私保护措施。 5. **...
4. **注意事项** - 确保源系统支持获取最新的更改记录,例如通过时间戳或变更日志。 - 在目标系统中正确管理“水印”,避免丢失增量数据。 - 考虑到数据一致性,使用适当的事务管理策略。 - 监控和调试是必要的...
- **最佳实践**:分享经验丰富的Kettle使用者在数据集成过程中的最佳实践和注意事项。 - **常见问题解答**:整理了Kettle使用中常见的问题和解决方案,便于查找和解决问题。 通过对这个压缩包的学习,你可以深入...
9. **集群配置注意事项**:在Kettle集群配置中,可能需要考虑数据同步、作业调度和错误处理策略,以确保整个集群的一致性和可靠性。 总之,配置Kettle连接Oracle RAC的关键在于创建一个描述所有RAC节点的...
同时,"维护的话请注意月度里面的readMe.md文件"提示我们,项目可能包含定期更新或维护的信息,readMe.md文件通常用于记录操作指南、注意事项和版本变更等关键信息。 在进行多表数据全量抽取时,通常会遵循以下步骤...
Kettle 使用技巧与注意事项 - **资源库操作**:删除资源库内容时,注意无确认提示,操作需谨慎。 - **Win7系统兼容性**:在Windows 7环境下,“Kettle File Repository”可能存在文件夹无法删除的问题。 - **权限...