官网:http://teiid.jboss.org
具体的搭建步骤可以参考官网的文档:http://teiid.jboss.org/docs/
以下为参照文档走的步骤:
注:1.以下需要jdk环境(1.8+),
2.本文档是在windows7系统搭建
3.为了能使用TeiidDesigner(eclipse图形插件),我们使用了Teiid9.0.0
4.eclipse选择的是neno
Teiid所有版本下载地址
打开网址,如下:
下面为查找9.0.0版本的步骤(官网只提供了部分版本下载,通过这个方法可以查找到自己想要的版本),如下:
在页面上,ctrl+f,输入9.0.0:
然后回车,找到9.0.0的final版,如下:
9.0.0final版下载地址:
打开如下:
找到集成了wildfly和console的版本:
下载下来
安装方法一(建议用方法二,但是请看完安装WildFly的步奏):
1.安装WildFly(JBoss AS的新项目名称)
1)下载WildFly
下载地址: http://wildfly.org/downloads/
当前最新版:12.0.0,按照Teiid文档下载9.0.0的,如下图:
下载后解压,如下:
2)配置环境变量
一.添加JBOSS_HOME
JBOSS_HOME=D:\jboss\wildfly-11.0.0.Final
二.添加path
在path路径结尾添加:;%JBOSS_HOME%\bin;
3)添加管理端用户
找到bin路径下的add-user.bat
双击添加一个用户:
输入a,然后回车,然后按照提示输入用户名和密码:
我创建了一个admin账号,密码admin1234,上面的提示不用管,大意是用户名已存在,我们更新一下密码,我们测试可以不理会,用户组也不用理会,一顿yes即可。
4)启动并登录测试
找到bin路径下的standalone.bat
双击启动,如下图:
不要关闭改窗口
如果报相关端口被占用,如下图:
请修改配置文件:
找到standalone.xml,打开找到如下位置进行相应修改:
浏览器访问:http://localhost:9990/
输入刚才添加的账号和密码进行登录,登录成功如下:
至此,jboss安装完毕
2.安装Teiid
1)下载TeiidRuntime
下载地址: http://teiid.jboss.org/downloads/
下载10.1.2版本的Teiid Runtime,如下图:
也可以直接下载10.1.2 With WildFly/Console,这个集成了WildFly与TeiidWebConsole(方法二采用了该方法,这样就不用单独下载jboss与teiidl了,但是配置jboss的步奏都一样),我们下载未集成,然后手动再往里集成console.
下载完TeiidRuntime后,直接解压到刚才WildFly的安装目录,因为TeiidRuntime的目录结构与WildFly一样,直接解压TeiidRuntime目录会被归并解压到相应的目录中。
Teiid Runtime解压后的目录结构为:
复制该内容到WildFly安装目录或者直接解压该内容到WildFly安装目录,如下:
2)下载Teiid Web Console
如下:
下载完成后,同TeiidRuntime一样,解压到WildFly安装目录
安装方法二(建议用此方法,但是要看下上面的一些配置):
1.下载集成WildFly与Console版本的Teiid Runtime
下载地址: http://teiid.jboss.org/downloads/
直接下载带有WildFly与Console的安装包,如下图:
下载完成后,解压如下:
里面的目录结构同WildFly一样,如下:
2.修改JBOSS环境变量,指向该目录
JBOSS_HOME= D:\jboss\teiid-10.1.2
3.创建用户,同上
账号还是admin,密码还是admin1234
CLI启动Teiid方法:
下面执行的前提是:配置了Jboss的环境变量(或者直接进入到teiid runtime安装目录下bin文件夹)
Windows:执行standalone.bat -c=standalone-teiid.xml
Linux: standalone.sh -c=standalone-teiid.xml
其中standalone-teiid.xml为teiid版配置文件
我们这里目前只研究单机版,集群版暂不研究
创建application user
创建步奏和创建管理端用户一样,只不过是选择b,如下:
连接teiid server的时候,需要这个账号,如果不添加,则不能连接服务,例如:连接teiid jdbc的时候,需要输入我们创建的账号和密码,下面讲到eclipse插件teiid designer教程的时候会有体现.
Eclipse安装Teiid Designer
官网教程地址: http://teiiddesigner.jboss.org/designer_summary/downloads
下面为节选官网的安装方法:
Install into Eclipse4.6 (Neon)
- Launch the Help > Install New Software action
- Add... the following update site URLs but DO NOT install them. Various dependent plugins required for Teiid Designer will be installed as needed. Make sure “Contact all update sites during install to find required software” is checked.
- Install Teiid Designer 11.0 via update site:
- http://download.jboss.org/jbosstools/updates/release/neon/integration-stack/teiiddesigner/11.0.0.Final/
- Click Install button and continue through restarting Eclipse
在安装TeiidDesigner插件之前,需要先安装JBoss插件,在安装TeiidDesigner的时候,可以选择下载离线的安装包,进行离线安装,这样能快一些:
请选择11.0版本,我们下面的所有搭配都是基于Eclipse Neon+teiid9.0+teiid disigner11.0的,或者干脆选择上面的在线安装方法(根据自己的网络而定,本人用的是在线),不管离线还是在线都要先安装eclipse的jboss插件
注意1
官网介绍TeiidDesigner最新只支持到Teiid9.0,所以我们也选择TeiidRuntime9.0的版本,网上说Teiid本身并不够鲁棒,所以我们也最好按照官网介绍的来。
注意2
注意,经测试eclipse、jbossTools、teiid designer、teiid runtime版本需要严格匹配,如不匹配就会有莫名奇妙的错误,启动不了,经测试,下面的版本搭配可以
Eclipse: Neon.3 Release (4.6.3),如下图:
jbossTools:按照上面给的两个连接进行安装
teiid designer:按照上面给的连接进行安装
teiid版本:9.0.0 final版,下载地址如下:
Teiid Designer使用教程
先创建一个Teiid Server实例(创建一个jboss服务)
两个入口:
第一个,点击下面画框的:
第二个,如下图选择teiid:
然后点击画框的:
如果有多个teiid服务,需要设一下默认的,上图中的set the default…
以下为创建teiid服务实例步骤:
点击上面的入口,选择9.x(本例适用),如下图:
然后next,
继续next,然后选择你的teiid实例的jboss安装目录:
然后选择你安装的jdk:
选择配置文件:
然后next,
然后finish
按照文档做一个示例
文档下载地址: http://teiiddesigner.jboss.org/designer_summary/docs
示例位置在第二章:
此处就不多久翻译介绍了,下面说说做示例遇到的问题
遇到的问题
问题1
当进行到第四步的时候,出现如下问题:
该问题为需要给teiid instance 的jdbc添加用户名和密码,处理步奏如下:
双击后,弹出如下页面:
然后点击Teiid Instance,如下:
上面的用户名和密码,就是我们上面创建的application user,测试成功如下:
注意:填完用户名、密码、端口号后记得保存
问题2
Preview data的时候,如果报下面的错误:
处理步奏,如下:
刷新后,会多出你创建的datasource,如下:
然后再preview就可以正常了,成功预览如下:
针对teiid 的客户端编程
1. 通过java代码创建
使用方法如下图所示:
测试方法:
2. 集成到spring mybatis等主流框架中
配置文件如下(只贴出关于数据源的配置文件截图):
jdbc.properties配置文件截图:
可以选择用teiid自带的数据源,但是该数据源不能配置数据库连接池数量等一些配置,也可以用c3p0的数据源(alibaba的durid用不了,不支持teiid driver)。但是目前测试,上面两种配置方法,效率上面没有区别,目前瓶颈出在teiid server上,正在调试中.
部分测试截图:
Mapper:
Dao:
Service:
ServiceImpl:
Controller:
单元测试类:
压测结果:
待优化的问题
1. 并发不高
经过压测发现,并发不高,并且问题不是出在我们编写的程序,应该是在teiid server上,目前正在进行进一步研究优化中
2.teiid driver并不支持所有的jdbc的方法
具体详细看文档,如下:
但是可以自定义一些jdbc扩展,不知道有什么用,有待研究
命令行优化性能介绍
进入到jboss安装目录下bin目录下:
命令行连接teiid服务:
jboss-cli.bat --connect 或jboss-cli.sh--connect
如下图:
上面连接成功后(teiid server需启动),在命令行可以输入如下命令:
下面是翻译自文档,文档位置如下:
1.查看所有可配置信息描述:
/subsystem=teiid:read-resource-description
2.查询的jdbc|odbc|embedded中的某一个的配置信息的命令
/subsystem=teiid/transport={jdbc|odbc|embedded}:read-resource-description
例如查询jdbc的配置:/subsystem=teiid/transport=jdbc:read-resource-description
3.查询所有BufferManager可设置命令
/subsystem=teiid:read-resource
4.BufferManager修改属性命令,都是以buffer-server开头
例如(具体属性的意义,请查看官方文档):
/subsystem=teiid:write-attribute(name=buffer-service-use-disk,value=true)
/subsystem=teiid:write-attribute(name=buffer-service-encrypt-files,value=false)
/subsystem=teiid:write-attribute(name=buffer-service-processor-batch-size,value=256)
/subsystem=teiid:write-attribute(name=buffer-service-max-open-files,value=64)
/subsystem=teiid:write-attribute(name=buffer-service-max-file-size,value=2048)
/subsystem=teiid:write-attribute(name=buffer-service-max-processing-kb,value=-1)
/subsystem=teiid:write-attribute(name=buffer-service-max-reserve-kb,value=-1)
/subsystem=teiid:write-attribute(name=buffer-service-max-buffer-space,value=51200)
/subsystem=teiid:write-attribute(name=buffer-service-max-inline-lobs,value=true)
/subsystem=teiid:write-attribute(name=buffer-service-memory-buffer-space,value=-1)
/subsystem=teiid:write-attribute(name=buffer-service-max-storage-object-size,value=8388608)
5.设置max-threads
/subsystem=teiid:write-attribute(name=max-threads,value=128)
本文档只翻译了部分命令,详细更多请参考官方文档