申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址
全文共计1654字,阅读大概需要3分钟
一、任务描述
本实验任务主要完成基于ubuntu环境的使用kettle采集并处理MongoDB数据库中的数据的工作。通过完成本实验任务,要求学生熟练掌握使用kettle采集并处理MongoDB数据库中的数据的方法,为后续实验的开展奠定ETL平台基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。
二、任务目标
1、掌握使用kettle采集并处理MongoDB数据库中的数据
三、任务环境
Ubuntu16.04、Java1.8、Kettle7.1、MongoDB3.6.2
四、任务分析
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
五、 任务实施
步骤1、环境准备
右击Ubuntu操作系统桌面,从弹出菜单中选择【Open Terminal Here】命令 打开终端。
启动MongoDB服务端。如图1所示。
图1 启动MongoDB服务端
启动MongoDB客户端,命令【mongo】。如图2所示。
图2 启动MongoDB客户端
查看kettleDB数据库中col集合的数据。如图3所示。
图3 查看数据
重新打开一个终端,启动kettle。如图4所示。
图4 启动kettle
步骤2、创建Transformmations
新建一个”Transformmations”(双击Transformmations即可),然后选择”Design”栏,将”Big Data”下的”MongoDB input”,将”Input”下的”JSON input”和”Flow”下的”Filter rows”以及”Output”栏下的”Text file output”图标拖进工作区。按住Shift键,产生连线。同理其他的线也连上。注意箭头方向。如图5所示
图5创建Transformmations
设置”MongoDB Input”相关内容(双击图表即可)。如图6-7所示。
图6 设置”MongoDB Input”相关内容
图7 设置”MongoDB Input”相关内容
设置”JSON Input”相关内容(双击图表即可)。如图8-9所示。
图8 设置”JSON Input”相关内容
图9 设置”JSON Input”相关内容
设置”Filter rows”相关参数(双击图表即可)。如图10所示。
图10 设置”Filter rows”
设置”Text file output”相关参数(双击图表即可)。如图11-13所示。
图11 设置”Text file output”
图12 设置”Text file output”
图13 设置”Text file output”
步骤3、运行任务
运行,清洗好的数据,批量导入到数据库。如图14-15所示。
图14 运行任务
图15 保存任务
查看运行结果。如图16所示。
图16 查看运行结果
查看记录是否写入。如图17所示。
图17 查看数据
♥ 知识链接
NoSQL 简介
NoSQL(NoSQL = Not Only SQL ),意即”不仅仅是SQL”。
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
♥ 温馨提示
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。