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各种踩坑之避坑指南的主要内容,如果未能解决你的问题,请参考以下文章