何建华

希望能好好记流水账

  • 主页
所有文章 关于我

何建华

希望能好好记流水账

  • 主页

10倍以上提高Kettle的数据库写入速度

2014-07-22

【整理原iteye的文章 hejianhuacn.iteye.com】

使用Kettle做了个数据抓取入库的程序,简化版的静态网页爬虫,大致这个样:

静态页面爬虫

使用文本调测的时候,速度大概7500条/秒,但是换上数据库后,速度只有150条/秒,对于20万左右的数据入库要超过20分钟,这让人没法接受。

使用批量插入好像也没什么效果,依然慢:

修改批量提交

求助Google,找到了2个参考:

参考1:http://julienhofstede.blogspot.nl/2014/02/increase-mysql-output-to-80k-rowssecond.html

参考2:http://forums.pentaho.com/showthread.php?142217-Table-Output-Performance-MySQL#9

描述的基本一致,根据参考调整了数据库连接参数:

1
2
3
`useServerPrepStmts=false  
rewriteBatchedStatements=true
useCompression=true`

数据写入速度马上提升到2300条/秒左右,开3个线程,写入速度就与文本写入差不多了。

知识点

MySQL常用的插入格式有两种:

1
2
insert into  tableName( column1,column2,……) 
value ( value1,value2,……);

另一种:

1
2
3
insert into  tableName( column1,column2,……) 
values ( value1,value2,……),
( value1,value2,……);

看到两种SQL格式就能明白 useCompression 的作用了,Kettle默认生成的SQL是第一种格式,列信息的描述大量重复肯定损耗执行性能

也算写了很长时间的代码,使用Kettle也算有一段时间,一般只是关注Tranaction如何实现功能,对连接参数可以说基本不关注,但这样的速度提升摆在面前,不熟悉这些性能参数,要想提高性能还真的不容易,写出来也是希望碰到相同问题时能有点参考,因为使用百度,完全搜索不到^_^,写点中文的,希望能被收录

  • kettle
  • mysql
  • table output
  • kettle

扫一扫,分享到微信

微信分享二维码
好心办坏事小心隐式类型转换
【转】MySQL中Grant赋权时特殊字符的转义
© 2020 何建华
Hexo Theme Yilia by Litten
  • 所有文章
  • 关于我

tag:

  • kettle
  • mysql
  • table output
  • adb
  • git
  • gitlab
  • js
  • param
  • url
  • grant
  • 转义
  • Java
  • cron
  • tomcat
  • shell
  • 启动
  • 关闭
  • ubuntu
  • 磁盘扩充
  • windows
  • 远程桌面
  • eclipse
  • folding
  • nginx
  • url rewrite
  • maven
  • jdk
  • version
  • JDK
  • 10K
  • 文件句柄
  • ulimit
  • postman
  • 源
  • aptget
  • sources.list
  • vpn
  • linux
  • webservice
  • carte
  • iptables
  • 认证
  • ip地址改写
  • SQL
  • JSqlParser
  • SQLReport
  • 编码转换
  • 中文金额
  • kong
  • OAuth2
  • 安全
  • ssh
  • 端口转发
  • 穿透
  • docker
  • docker-compose
  • ionic
  • web编程,shell
  • windows-shell
  • 类型转换
  • gradle
  • aliyun

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

何建华
2005年毕业于河海大学
计算机科学与技术

服务过运营商、校园,目前做政企项目
一直处于打杂状态