MongoDB数据迁移之迁移工具Kettle

ETL:简介

  ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少的,Kettle就是强大的ETL工具。

Kettle:概念

  Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

  Kettle中有两种脚本文件,transformation(.ktr)和job(.kjb),transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Kettle:四大家族(核心组件)

  Chef(中文:厨师)、Kitchen(中文:厨房)、Spoon(中文:勺子)、Pan(中文:平底锅)
  
  Chef—工作(job)设计工具 (GUI方式)。
  Kitchen—工作(job)执行器 (命令行方式)。
  Spoon—转换(transform)设计工具 (GUI方式)。
  pan—转换(transform)执行器 (命令行方式)。

Job和Transformation的差别:Transformation专注于数据的ETL,而Job的范围比较广,可以是Transformation,也可以是Mail、SQL、Shell、FTP等,甚至可以是另外一个Job。

MongoDb简介

  MongoDB是一个基于分布式文件存储 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

  MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

Kettle之实现MongoDb数据库数据迁移

1、创建转换

  新建一个”Transformmations”(双击Transformmations即可),然后选择”Design”栏,将”Big Data”下的”MongoDB input”,图标拖进工作区。


  设置”MongoDB Input”相关内容(双击图表即可)。


  还可以提前预览数据,点击预览,选择限制预览行数。


  成功预览10行数据。


  字段筛选


  JSON(JavaScript Object Notation, JS对象简谱)是- - 种轻量级的数据交换格式。JSON对象本质上就是一一个JS对象,但是这个对象比较特殊,它可以直接转换为字符串,在不同语言中进行传递,通过工具又可以转换为其他语言中的对象。。
  JSON核心概念:数组、对象、属性。
    数组: []
    对象: {}
    属性: key:value
  JSON Path
  JSONPath类似于XPath在xml文档中的定位,JsonPath 表达式通常是用来路径检索或设置Json的。其表达式可以接受“dot - notation" (点记法)和“bracket - notation" (括号记法)格式
点记法: $.store.book[]title
括号记法: $[ ‘store’ ][ 'book’ ][0][ ‘title’ ]

  选择”输出”栏,将”输出”下的”JSON output”,图标拖进工作区。按住Shift键,产生连线。


  即可生成data字段大json


  在对数据进行操作是可以记录时间,既可借助输入下的获取系统信息设置记录生成时间字段。


  将”脚本”下的”JavaScript代码”,图标拖进工作区。通过JavaScript代码实现字段的插入生成。

  将”转换”下的”字段选择”,图标拖进工作区。可实现选择和修改字段移除字段功能。


  将”Big Data”下的”MongoDB output”,图标拖进工作区。依旧将数据输出保存到MongoDB数据库中。

  点击运行即可,运行结束后,我们可以在下方看到运行结果,其中有日志,数据浏览等。

  即完成一次转换

MongoDB数据迁移之迁移工具Kettle相关推荐

  1. mongodb数据迁移2种方式比较

    环境说明:bbs数据采集的数据越来越多,目前是50G,每天大概以200W的数据量增长.而当前服务器1.2上面的空间不足,需要把数据迁移到空间足够大的1.3上面去 尝试了2种方式对数据进行迁移,一种是r ...

  2. mongodb数据迁移设置方法

    由于担心新产生的数据不够用,就进行了数据的迁移,或者将数据保存在其他位置. (1)首先是停止mongodb的服务或者关闭数据库 这里面有好几种介绍停止服务的方法https://blog.csdn.ne ...

  3. MongoDB 数据迁移 备份 导入(自用)

    MongoDB bin文件夹下 备份:mongodump -h IP:PORT -d 库名 -c 集合名 -o 存储路径 恢复:mongorestore -h IP:PORT -d 库名 -c 集合名 ...

  4. MongoDB数据迁移(mongodump方式)

    登录原集群环境lx-mgodb映射的机器  此示例以ZJJQ项目为例,其他环境操作流程与之相同,注意参数的替换 1,数据导出 检查一下要导出的db的列表 /opt/lxxn/services/mong ...

  5. DATAX 数据迁移 oracle-oracle

    DATAX 数据迁移 oracle-oracle 数据库 项目背景,公司需要把老系统的数据迁移到新系统上,老系统使用了很多年了,历史数据比较多,又不能丢掉.新系统和老系统数据库结构和系统架构不一致,因 ...

  6. 完美数据迁移-MongoDB Stream的应用

    目录 一.背景介绍 二.常见方案 1. 停机迁移 2. 业务双写 3. 增量迁移 三.Change Stream 介绍 监听的目标 变更事件 四.实现增量迁移 五.后续优化 小结 附参考文档 一.背景 ...

  7. 导入数据中文乱码_基于Navicat和Kettle的数据迁移完全解读(多图)

    需求描述 对于数据分析人员来说,工作的基础是数据,没有数据分析就无从谈起,即巧妇难为无米之炊. #数据库# #数据迁移# #Oracle# 然而,数据分析往往在实验环境或者准生产环境中开展,而数据分布 ...

  8. 不同数据库之间的数据迁移方案设计及迁移工具选择

    以前的工作迁移过oracle到Informix.oracle和SQLSERVER.oracle到mysql. 在目前的公司又因为去o的关系,做了大量的迁移工作,栽了不少坑,所以和大家交流一下在迁移的过 ...

  9. 获取mongodb数据变更_MongoDB Stream是如何实现完美数据增量迁移的?

    原标题:MongoDB Stream是如何实现完美数据增量迁移的? 作者介绍唐卓章(zale),华为技术专家,多年互联网研发/架设经验,关注NoSQL中间件高可用及弹性扩展,在分布式系统架构性能优化方 ...

最新文章

  1. 用asp.net实现的把本文推荐给好友功能
  2. @Accessors
  3. Java 程序代码优化方法
  4. 小型蜂鸣器内部驱动电路
  5. HttpClient 如何设置超时时间
  6. Gym-100889B Backward and Forward
  7. 一文解析激光雷达中时序融合的研究现状和发展方向
  8. linux下载b站的视频+ffmpeg抽取出mp3
  9. 解决由于sz rz导致抓包时文件容量增加
  10. python 函数写商城管理系统
  11. poj 2157 Maze(bfs)
  12. 计算机操作系统-第二章复习题
  13. 线性混合模型(Linear Mixed Models)与R语言 lmer() 函数
  14. java cropper_layui剪裁插件cropper一个页面调用多次问题解决
  15. centos安装stress安装失败_Linux压力测试工具stress
  16. Qt涂鸦板及其放大简例
  17. 勒让德函数C语言编程设计,用递归方法求n阶勒让德多项式的值
  18. Android编程权威指南[pdf]
  19. THUCNews新闻文本分类-tfidf+sklearn
  20. 【BZOJ3837】[Pa2013]Filary 随机化神题

热门文章

  1. MD5加密为什么不可逆?
  2. CRC循环冗余校验(计算机网络)
  3. cannot be resolved to a type 错误解决
  4. MacOS任意降级(完美教程)
  5. TMC4671基于硬件FOC伺服电机控制芯片适应BLDC/PMSM、两相步进、直流有刷、音圈电机
  6. Ubuntu操作系统如何搭建可视化界面?
  7. 高等数学笔记-乐经良老师-第四章-微分中值定理和导数的应用-第二节-洛必达法则
  8. matlab语句xlim,matlab中设置坐标轴时xlim和axis有什么区别?
  9. SpringMVC的 transferTo使用
  10. 疾病研究:重症肌无力