`

Kettle注意事项

 
阅读更多
注意事项

      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 步骤。
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    linux centos环境kettle部署与定时作业执行

    Linux Centos 环境 Kettle 部署与定时作业执行 Linux Centos 环境 Kettle 部署与定时作业执行是指在 Linux Centos 环境中部署 Kettle 工具,并配置定时...同时,需要注意一些注意事项,以确保 Kettle 的正常运行。

    kettle习题和总结吧

    #### 三、实战心得与注意事项 - **确保数据类型匹配**: 在处理过程中,确保各个步骤之间的数据类型兼容是非常重要的。例如,当使用计算器步骤进行数值运算时,确保所有的参与运算的数据都是数值类型。 - **插件的...

    Kettle8.2入门PPT.rar

    4. **最佳实践**:分享使用Kettle时的技巧和注意事项。 通过这份PPT,新手可以逐步掌握Kettle的基本操作和设计理念,为后续深入学习和实际项目应用打下坚实的基础。同时,建议结合其他在线教程、文档和社区资源,...

    kettle连接oracle所需jar包

    5. **注意事项**: - 确保你的Oracle数据库服务正在运行,并且网络连接是通畅的。 - 如果遇到权限问题,可能需要修改Oracle的tnsnames.ora文件来配置连接。 - 安全性更新:定期检查并更新JDBC驱动,以利用最新的...

    KETTLE时间戳-源数据自带时间

    在IT领域,尤其是在数据处理和集成的...通过以上描述,我们可以了解到Kettle在处理和同步带有时间戳的源数据时的方法和注意事项。理解和掌握这些知识点,对于在实际数据处理项目中高效、准确地进行数据同步至关重要。

    kettle 7.1数据库连接驱动包

    五、注意事项 1. 版本升级:当数据库系统升级时,也需要同步更新驱动包,否则可能导致连接失败。 2. 多版本兼容:如果需要连接不同版本的数据库,可能需要同时配置多个驱动包。 3. 性能优化:选择高性能的驱动包...

    kettle调用达梦数据说明文档

    四、注意事项 - 当遇到版本不兼容问题时,应确保使用的JDBC驱动与达梦数据库版本匹配。 - 记得在生产环境中设置合适的事务处理和错误处理策略,以确保数据的一致性和完整性。 - 定期检查并更新JDBC驱动,以获取最新...

    Kettle在Linux的安装使用

    8. **注意事项** - **Java配置**:确保正确卸载旧版本的Java,使用`rpm -qa | grep java`查看并使用`rpm -e --nodeps`卸载。 - **Kettle数据库配置**:所有数据库配置应在Windows GUI中完成,然后将任务和相关ktr...

    java调用Kettle5.3任务

    6. **注意事项**:在Java中调用Kettle时,需要注意线程安全性和资源管理,因为Kettle引擎可能会使用大量的内存和系统资源。此外,正确处理日志和错误输出也很重要,以便于调试和监控。 7. **最佳实践**:为了提高...

    kettle install

    以下将深入解析Kettle的安装步骤及注意事项,帮助读者更好地理解和操作。 ### Kettle安装流程详解 #### 1. 环境准备 在开始安装Kettle之前,确保系统环境满足以下要求: - 操作系统:支持Windows、Linux和Mac OS...

    Java调用Kettle代码

    5. 注意事项: - 集成前确保已将Kettle的相关jar包添加到Java项目的类路径中。 - 由于Kettle依赖于特定版本的JDBC驱动,因此在运行时需要确保所有必需的驱动都在类路径中。 - 调整代码以适应实际的文件路径和日志...

    kettle8.0编译环境文件

    在使用这个压缩包时,仔细阅读提供的文档或README文件,了解具体的步骤和注意事项。编译Kettle 8.0的过程可能需要一些时间,因为这涉及到处理大量的源代码和依赖。不过,一旦设置好环境,你就可以自由地探索Kettle的...

    kettle连接sqlserver用的jtds.jar1.3.1版本,放到kettle lib目录下重启使用

    3. **注意事项**: - **版本兼容性**:确保jtds.jar版本与你的SQL Server版本相兼容,不同版本的SQL Server可能需要不同版本的驱动。 - **安全**:在生产环境中,确保数据库连接信息的安全,避免明文存储用户名...

    kettle统计重复记录个数及明细

    4. **最佳实践与注意事项**: - 在处理大量数据时,考虑数据分区策略,以优化性能。 - 确保在处理前备份原始数据,以防不测。 - 如果数据包含敏感信息,记得在输出或存储过程中应用适当的隐私保护措施。 5. **...

    Kettle学习资料大全20191012.rar

    - **最佳实践**:分享经验丰富的Kettle使用者在数据集成过程中的最佳实践和注意事项。 - **常见问题解答**:整理了Kettle使用中常见的问题和解决方案,便于查找和解决问题。 通过对这个压缩包的学习,你可以深入...

    kettle集群配置需要

    9. **集群配置注意事项**:在Kettle集群配置中,可能需要考虑数据同步、作业调度和错误处理策略,以确保整个集群的一致性和可靠性。 总之,配置Kettle连接Oracle RAC的关键在于创建一个描述所有RAC节点的...

    Kettle增量抽取数据实例.docx

    4. **注意事项** - 确保源系统支持获取最新的更改记录,例如通过时间戳或变更日志。 - 在目标系统中正确管理“水印”,避免丢失增量数据。 - 考虑到数据一致性,使用适当的事务管理策略。 - 监控和调试是必要的...

    使用kettle实现多表数据全量抽取.rar

    同时,"维护的话请注意月度里面的readMe.md文件"提示我们,项目可能包含定期更新或维护的信息,readMe.md文件通常用于记录操作指南、注意事项和版本变更等关键信息。 在进行多表数据全量抽取时,通常会遵循以下步骤...

    kettle_4.2.0基础教程

    Kettle 使用技巧与注意事项 - **资源库操作**:删除资源库内容时,注意无确认提示,操作需谨慎。 - **Win7系统兼容性**:在Windows 7环境下,“Kettle File Repository”可能存在文件夹无法删除的问题。 - **权限...

Global site tag (gtag.js) - Google Analytics