spoon(kettle)连接Access各种踩坑之避坑指南

Posted aks393482077

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spoon(kettle)连接Access各种踩坑之避坑指南相关的知识,希望对你有一定的参考价值。

记录一次spoon连接access数据库的大坑
最初计划使用spoon 8.2 +jdk1.8,发现没有办法连接到odbc,在JDK1.7版本之后都已处理对ODBC的支持
网上查资料很麻烦,需要提取jdk1.7中的文件和dll文件,尝试了,不推荐
 

可行方案
pdi-ce-6.1.0.1-196
jdk1.7.0

在pdi-ce-6.1.0.1-196目录中的Spoon.bat 
第43行添加
set JAVA_HOME=%cd%\\jdk1.7.0
set PATH=%JAVA_HOME%\\bin
set PENTAHO_JAVA_HOME=%JAVA_HOME%
添加完毕后寻找第99行
set PENTAHO_DI_JAVA_OPTIONS="-Xms2048m" "-Xmx1024m" "-XX:MaxPermSize=256m"
修改为
set PENTAHO_DI_JAVA_OPTIONS="-Xms256m" "-Xmx512m" "-XX:MaxPermSize=256m"

set PENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx1024m" "-XX:MaxPermSize=256m" 这样配置也能启动
这里有个坑假如不修改的话会提示一个弹窗,JDK1.8下不存在
至此你的spoon应该可以正常启动了

配置ODBC,网上教程大把,不赘述

C:\\Windows\\SysWOW64\\odbcad32.exe

记得用这个ODBC工具,否则没法添加access文件

连接数据库
需要使用Generic database
自定义连接URL
输入:
jdbc:odbc:testdb
自定义驱动类名称
输入:
sun.jdbc.odbc.JdbcOdbcDriver

你猜为什么要这么做!

这里有个大坑,假如你用MS access连一开始会提示成功,但是在预览数据的时候会报错“DatabaseMeta is not JNDI, it is ODBC”

你以为到这就结束了吗?NONONO

抽取数据正起劲的时候会提示,超出系统资源

咱一共就5万数据,不至于吧,压缩、修复一套下来;没用!超出系统资源虽迟但到,就算今天不出现明天还是会出现

更换方案

这玩意是神器,下面才是重点

UCanAccess-4.0.4-bin 支持JDK1.8以下

UCanAccess-5.0.1.bin 支持JDK1.8以上

跟下面玩意相比好多了,就这个jar包 CSDN一大群人居然还要这么多分!

Access_JDBC30(已破解).jar

下面介绍具体用法

数据库类型
Generic database
自定义URL链接
jdbc:ucanaccess://D:/temp/Manage.mdb 
自定义驱动类名称
net.ucanaccess.jdbc.UcanaccessDriver
有密码就写密码

UCanAccess-4.0.4-bin

--ucanaccess-4.0.4.jar

--lib

   -commons-lang-2.6.jar

   -commons-logging-1.1.3.jar

   -hsqldb.jar

   -jackcess-2.1.11.jar

--loader

   -ucanload.jar

以上是下载下来驱动的整体结构

将里面所有jar包,逐个复制到

d:\\spoon6.1\\pdi-ce-6.1.0.1-196\\data-integration\\lib

如果有重复,则替换,一般情况下都是替换即可

至此spoon连接access数据库的问题基本告一段落

注意,任何驱动都不能解决的一个问题问题,两边同时调用一个access数据库,一边存数据一边取数据,可以!但是最新的数据无法被取到;

我尝试了N次,无解。只能设置延迟取数据,一般设置5分钟,我试了3分钟数据都读取不到,假如你不停的读,你会一点数据都读不到。

还有一个办法就是每次将程序完全退出再读取就可以读取到了 

另外,需要驱动可以私信我 

以上是关于spoon(kettle)连接Access各种踩坑之避坑指南的主要内容,如果未能解决你的问题,请参考以下文章

Kettle_Spoon如何将MySQL数据抽取到ES

Kettle Spoon 的使用

kettle怎样连接数据库连接

Kettle spoon 下的ftp功能报错,大家给看看这该怎么配置啊

kettle连接mysql数据库并进行数据分析

Kettle-Spoon入门示例