这种方式只是一种比较懒惰的做法,仅供参考
mysql--->kettle--->mongodb
一、kettle安装
1).到官网下载需要安装的kettle版本,目前最新版本6.1,官网地址:http://kettle.pentaho.org,我们是使用的版本是kettle6.1
2).本地安装jdk 1.4或以上版本。
3).配置Java环境变量
a).打开我的电脑--属性--高级--环境变量
b).新建系统变量JAVA_HOME和CLASSPATH
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.7.0[具体路径以自己本机安装目录为准]
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
c). 选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。
变量名:Path
变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
4). 配置kettle环境变量
在系统的环境变量中添加KETTLE_HOME变量,目录指向kettle的安装目录:D:\kettle\data-integration
5).以上步骤完成后直接启动kettle即可
Windows直接双击批处理文件 Spoon.bat具体路径为:
kettle\data-integration\Spoon.bat
Linux 则是执行spoon.sh,具体路径为:
~/kettle/data-integration/spoon.sh
注意:启动的时候有可能会出现
D:\software\kettle\data-integration>"D:\software\Java\jdk1.7.0_79\bin\java.exe" "-Xms1024m" "-Xmx1500m" "-XX:MaxPermSize=256m" "-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" "-Djava.library.path=libswt\win32" "-DKETTLE_HOME=D:\software\kettle\data-integration" "-DKETTLE_REPOSITORY=" "-DKETTLE_USER=" "-DKETTLE_PASSWORD=" "-DKETTLE_PLUGIN_PACKAGES=" "-DKETTLE_LOG_SIZE_LIMIT=" "-DKETTLE_JNDI_ROOT=" -jar launcher\pentaho-application-launcher-6.0.0.0-353.jar -lib ..\libswt\win32 level:Debug
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
解决方案:将Spoon.bat中if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m" 修改的小一些就可以启动了。
二、整合
1、从MySQL中读取数据
1.1创建“数据库连接”
点击“DB连接”,

会弹出如下页面。填写连接MySQL的信息,点击“测试”,查看是否连接上?

如能正常连上MySQL,会弹出一个页面,如下图所示:

如没有出现上图,证明没有连接成功,请重试。
1.2从MySQL中读取数据
点击“核心对象”

打开“输入”菜单栏,找到“表输入”,双击“表输入”,就可把它拖到工作空间。

打开“输出”菜单栏,找到“json输出”,按同上的方法把“json输出”拖到工作空间。
打开“Big Data”菜单栏,找到“MongoDB Output”,按同上的方法把“MongoDB Output”拖到工作空间,然后按着shift,点击鼠标左键,把各步骤连接起来。以上三步搞定之后,在spoon的右侧可看到下图:

双击“表输入”,编辑“数据库连接”

编辑完后,点击“测试”,如测试成功,那么点击“确定”,然后修改“SQL”,改成你想要的脚本。你可通过“预览”,查看你刚才写的脚本的执行结果。
2、以json的格式输出数据
点击“json输出”,点击“一般”,把“操作”改成“Output valu”,然后选择“字段”, 点击“获取字段”,然后点击“确定”,就会获取到MySQL中某张表的所有字段。如下图所示:


3、把数据写入MongoDB
点击“MongoDB Output”,弹出如下页面:

,然后对其进行配置。“Configuration connection”的配置如下:注意该处一定设置mongos集群地址:ip address: mongodb1.com,mongodb2.com,mongodb3.com
port :20000,

“Output options”的配置如下:

注意:在配置“Output options”时,一定不要忘记“Get DBs”、“Get collections”!
然后选择“Mongo document fields”,点击“Get fields”,“确定”。

配置完后,执行转换,如下图所示:

如“日志”出现如上提示,那么就证明已从MySQL中提取数据,并已把数据写入MongoDB。
以上只是很简单的例子,有很多可以扩展的内容。




