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分钟数据都读取不到,假如你不停的读,你会一点数据都读不到。

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值