当前位置: 首页 > news >正文

kettle 数据迁移 (转)

  最近在公司搞一个项目重构迁移问题,旧项目一直在线上跑,重构的项目则还没上线。重构之后数据库表结构,字段,类型等都有变化,而且重构的数据库由oracl改为mysql。这样就设计到数据迁移问题,别人推荐下用了kettle。由于资料比较少,刚开始搞了半天没成功过一次。现在终于有点开窍了,记录下以备后用,同时给用到的同学一点帮助也好,现在还是刚用的第二天,所以写的太浅显,望莫耻笑。

1、数据类型转换

  由于大多数的数据结构都差不多,所以大多转换就如下图所示:

  

  如果有字段变化在在“字段选择”中做映射,如我原来库中字段为UUID,在新库中字段叫ID

  

  由于新的mysql中所有日期类型都采用时间戳来存储,所以在数据转换的时候也要考虑。这里在查询数据的时候,也就是“表输入”时候进行数据转换,首先写了一个oracle的函数:

create or replace function oracle_to_unix(in_date IN DATE) return number is  
begin  
return( (in_date -TO_DATE('19700101','yyyymmdd'))*86400 - TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))*3600)*1000;
end oracle_to_unix;

  然后在查询数据的时候调用此函数进行转换:

select oracle_to_unix(CREATE_DATE) as create_date from t_1

  这样就完成了oracle date类型到时间戳的转换了。

2、增加ID

  在老的系统上有需要表都没有ID,这样在迁移数据的时候就需要同时生成ID,这里采用的是kellten“增加序列”来自动生成ID,转换过程如下

  

  在增加序列中“值的名称”填入“表输出”中表的ID字段名称,或者随便写一个,在“字段选择”中进行映射即可,这里我直接写的ID。

  

3、性能提升

  在测试迁移过程中,一开始的数据速度竟然是20多条/s,真是让人抓狂,3000W的数据这要迁移到明年了。。。,网上搜索了下,修改如下链接参数可以提高效率:

useServerPrepStmts=false  
rewriteBatchedStatements=true  
useCompression=true  

  

  设置上试了下果然是鸟枪换炮啊,立马速度增加到2000条/S

暂时记录到此,后续有问题再更新。

http://www.cnblogs.com/lcxdever/p/4335358.html

相关文章:

  • 利用R语言进行交互数据可视化(转)
  • linq pad
  • learning python paramiko --one
  • 学习笔记之15道简单算法题
  • JS处理URL详解图
  • post插件
  • 改变从内部开始:开发者与管理者的协作
  • Struts2入门示例
  • [Java] 图说 注解
  • [一句秒懂]拦截iOS系统导航栏返回按钮事件-三种方法
  • mysql常用基础操作语法(三)~~对数据的增删改操作【命令行模式】
  • IIS性能计数器说明
  • 录音,录制视频,权限问题
  • vue中实现单选
  • [译]Python中的类属性与实例属性的区别
  • 【Amaple教程】5. 插件
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • angular组件开发
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Java Agent 学习笔记
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Spring-boot 启动时碰到的错误
  • vue-cli在webpack的配置文件探究
  • vue的全局变量和全局拦截请求器
  • Web Storage相关
  • 笨办法学C 练习34:动态数组
  • 面试总结JavaScript篇
  • 如何用vue打造一个移动端音乐播放器
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 我有几个粽子,和一个故事
  • 学习Vue.js的五个小例子
  • zabbix3.2监控linux磁盘IO
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​如何在iOS手机上查看应用日志
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (3)STL算法之搜索
  • (C++20) consteval立即函数
  • (C语言)球球大作战
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (LeetCode 49)Anagrams
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (南京观海微电子)——I3C协议介绍
  • (算法)N皇后问题
  • (转)ORM
  • (转)关于pipe()的详细解析
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .gitattributes 文件
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .net framework profiles /.net framework 配置
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 调用php,php 调用.net com组件 --