Kettle数据同步速度调优记录

Msyql到Vertica

1、mysql中在openshop 数据库中选择其中一个300W左右数据的表

create table ip_records_tmp_01

AS

SELECT * FROM ip_records_tmp t

WHERE t.datetime<= ‘2015-05-01‘

2、vertica创建表ip_records_tmp_01,注意字段类型和mysql有点不一样。

全量抽取2478130条数据,耗时30s,速度不错!

3、在mysql中新增972948条数据,删除462151条数据,更新273427条数据

新增:

insert into ip_records_tmp_01

select  *  from ip_records_tmp t

where t.`datetime` > ‘2015-05-01‘;

删除:

delete from ip_records_tmp_01

where `datetime` <= ‘2015-05-01‘ and `datetime` >‘2015-04-01‘;

更新:

update ip_records_tmp_01

set remark1 =‘INMAN‘,remark2 =‘LEFTLIFE‘

where

`datetime` <= ‘2015-04-01‘ AND `datetime` >‘2015-03-01‘

增量抽取,耗时2h 3mn 33s,速度不能接受。

调试1,利用时间戳

利用时间戳来增量抽取数据,针对数据允许的情况优先考虑,但是不排除时间戳无法实施的情况,所以还需寻找其他方法。

调试2,建立索引

从mysql到sqlserver数据表和数据量都一致的情况下的截图:

全量抽取,耗时42S

对sqlserver的表建立索引,增量抽取数据,耗时10mn 50s,速度也还算可以。

于是在vertica中建立类似索引的projection,效果不理想,速度没见明显提高,所以不截图,这次调优也不行。

调试3,临时表+运行脚本

全量抽取,耗时32s

增量抽取,耗时1mn 48s,速度有大幅度提升。

一些错误解决方法

Kettle内存溢出 out of memory

解决方法:调整kettle调用java的JVM内存大小,修改spoon.bat文件中的

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xmx4096m" "-XX:MaxPermSize=4096m"

把内存调大,运行大数据量排序时,如果不调整内存,kettle会崩溃!

[Vertica][VJDBC](5156):READ COMMITTED

[Vertica][VJDBC](5156) ERROR: Unavailable: initiator locks for query - Locking failure: Timed out X locking Table .Your current transaction isolation level is READ COMMITTED

解决方法:由于删除和插入/更新的事务互锁,将更新控件中提交记录数量由10000减少到1000,删除控件中的提交记录数量由1000减少到100。

时间: 2024-08-01 14:28:58

Kettle数据同步速度调优记录的相关文章

老李分享:大数据性能调优案例

老李分享:大数据性能调优案例 1.“空间换时间”以及“内存中处理数据” 比如user_id.csv文件中有20万个不同的user_id,根据user_id去查其对应的用户最近发表的一篇帖子,取出post_id,post_title.post_time和user_id(post表中查,post表中有一列是user_id,表示帖子所属者),而帖子数目有大概两百万,那么如何处理呢?我的解决方案是:A. 先将post表post_id,post_title.post_time和user_id这四列导出到p

Oracle SQL调优记录

目录 一.前言 二.注意点 三.Oracle执行计划 四.调优记录 @ 一.前言 本博客只记录工作中的一次oracle sql调优记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太多表.面对复杂的业务场景,确实有些情况是需要关联很多表的.当然有些情况是可以将业务实现放在Java代码里,有些情况可以不要关联很多表. 二.注意点 对于SQL调优,不要马上就说加索引什么的,加索引不一定就能解决问题的,加错索引,反而会导致查询变慢,注意加索引的同时也会影响数据库写数据的速度. 三.O

spark性能优化:数据倾斜调优

调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能. 数据倾斜发生时的现象 1.绝大多数task执行得都非常快,但个别task执行极慢.比如,总共有1000个task,997个task都在1分钟之内执行完了,但是剩余两三个task却要一两个小时.这种情况很常见. 2.原本能够正常执行的Spark作业,某天突然报出OOM(内存溢出)异常,观察异常

[大数据性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析

本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质是什么,以及 Spark 在性能调优部份的要点,这两点让直式进入性能调优都是一个至关重要的问题,它的本质限制了我们调优到底要达到一个什么样的目标或者说我们是从什么本源上进行调优.希望这篇文章能为读者带出以下的启发: 了解大数据性能调优的本质 了解 Spark 性能调优要点分析 了解 Spark 在资

MySQL插入数据性能调优

插入数据性能调优总结: 1.SQL插入语句调优 2.如果是InnoDB引擎的话,尝试开启事务,批量提交 3.调整MySQl数据库配置 参考: 百度空间 - MySQL插入数据性能调优 CSDN - MySQL插入大量数据调优

【Spark篇】---Spark调优之代码调优,数据本地化调优,内存调优,SparkShuffle调优,Executor的堆外内存调优

一.前述 Spark中调优大致分为以下几种 ,代码调优,数据本地化,内存调优,SparkShuffle调优,调节Executor的堆外内存. 二.具体    1.代码调优 1.避免创建重复的RDD,尽量使用同一个RDD 2.对多次使用的RDD进行持久化 如何选择一种最合适的持久化策略? 默认情况下,性能最高的当然是MEMORY_ONLY,但前提是你的内存必须足够足够大,可以绰绰有余地存放下整个RDD的所有数据.因为不进行序列化与反序列化操作,就避免了这部分的性能开销:对这个RDD的后续算子操作,

Spark学习之路 (九)SparkCore的调优之数据倾斜调优

摘抄自:https://tech.meituan.com/spark-tuning-pro.html 数据倾斜调优 调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能. 数据倾斜发生时的现象 绝大多数task执行得都非常快,但个别task执行极慢.比如,总共有1000个task,997个task都在1分钟之内执行完了,但是剩余两三个task却要

一次tomcat压测调优记录

1. 前言 该tomcat web应用承担集团登录注册页面功能,对性能有一定要求,由于先前没有太多相关经验(只压测过一个dubbo服务),这次调得比较艰辛,便做个记录. 2. 调优过程 起初没有给运维任何tomcat配置要求,同时也没留意去确认tomcat配置,这个导致了后续压测过程各种诡异的问题. a.在压测初期,持续请求10分钟左右出现无请求进来,netstat查看的tomcat所在服务器存在大量CLOSE_WAIT的连接. CLOSE_WAIT的连接一般是自己程序中缺少关闭连接等引起,但是

[大数据性能调优] 第二章:彻底解密Spark的HashShuffle

本課主題 Shuffle 是分布式系统的天敌 Spark HashShuffle介绍 Spark Consolidated HashShuffle介绍 Shuffle 是如何成为 Spark 性能杀手 Shuffle 性能调优思考 Spark HashShuffle 源码鉴赏 引言 Spark HashShuffle 是它以前的版本,现在1.6x 版本默应是Sort-Based Shuffle,那为什么要讲 HashShuffle 呢,因为有分布式就一定会有 Shuffle,而且 HashShu