备注: 具体协议实现情况,可以参看test目录下的端到端用例,及时了解当前对协议实现状态。
备注:其他windows系统可能也是可以运行,只是我们没有进行验证,欢迎大家反馈其他系统的测试结果和问题,反馈请提交issue.
openLooKeng ODBC Driver的方案采用最大化复用已有组件,整体采用桥接方案(前端采用ODBC协议,后端采用JDBC协议对接),选取了mariadb ODBC driver和myCat Server二个开源软件, 在二个软件的基础上实现openLooKeng ODBC Driver的目标。
前端的主要修改点:
后端的主要修改点:
openLooKeng基于知名的开源数据库引擎Presto,并对Presto做了大量的功能增强。openLooKeng ODBC driver对Presto生态也是我们考虑的点,我们基于以下点,与Presto生态系统兼容:
我们将与server的连接和认证功能都卸载到JDBC Driver层,也是考虑到Presto生态的分支版本在这一功能点上会大量定制化的实现方案,各自使用自己的JDBC Driver来实现这些功能的对接, 在JDBC配置参数上,我们已经将其与DSN的配置参数打通,DSN可以灵活配置JDBC参数,具体参考 JDBC Driver适配 章节。
预先安装以下软件:
git clone https://gitee.com/openlookeng/hetu-odbc-driver.git
或
git clone https://github.com/openlookeng/hetu-odbc-driver
进入代码目录后,配置和编译代码:
cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCONC_WITH_UNIT_TESTS=Off -DCONC_WITH_MSI=OFF -DWITH_SSL=SCHANNEL .
cmake --build . --config RelWithDebInfo
注意: 1.构建中会下载二个依赖代码仓的代码,请确保下载通道可用,二个依赖仓的信息参看.gitmodules文件。
2.如果要指定构建的版本,可以通过-D参数传入如下四个变量:
MARIADB_ODBC_VERSION_MAJOR、MARIADB_ODBC_VERSION_MINOR、MARIADB_ODBC_VERSION_PATCH和GATEWAY_TAG。其中前三个MAJOR、MINOR、PATCH代表了版本号的三位,GATEWAY_TAG表示gateway代码的release tag
例如,构建1.0.1版本:
cmake -G "Visual Studio 16 2019" -A x64 -DMARIADB_ODBC_VERSION_MAJOR=1 -DMARIADB_ODBC_VERSION_MINOR=0 -DMARIADB_ODBC_VERSION_PATCH=1 -DGATEWAY_TAG="1.0.1" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCONC_WITH_UNIT_TESTS=Off -DCONC_WITH_MSI=OFF -DWITH_SSL=SCHANNEL .
cmake --build . --config RelWithDebInfo
3.对-G参数,如使用Visual Studio 2017请使用“Visual Studio 15 2017",更多选项请参看cmake手册。
NA
<安装目录>\odbc_gateway\mycat\mycat.bat { start | stop | restart | status }
参看: https://docs.microsoft.com/zh-cn/sql/odbc/admin/setting-tracing-options?view=sql-server-ver15 或https://docs.microsoft.com/EN-US/sql/odbc/admin/setting-tracing-options?view=sql-server-ver15
在DSN配置界面,勾选DEBUG, Driver会在%TMP%\MAODBC.LOG文件中记录debug日志
<安装目录>\odbc_gateway\mycat\logs\mycat.log 历史日志会归档到子目录下
微软开发的ODBC API测试工具,可以在不写一行代码的情况下,对ODBC API进行测试。 属于MDAC工具包的一部分,工具下载地址: https://www.microsoft.com/en-us/download/details.aspx?id=21995
simba的blog提供了一份比较详细的使用说明 https://www.simba.com/blog/testing-driver-odbc-test/
test目录下,有我们写的大量测试用例,可以参照编写自己的测试用例,来测试或调测代码。
此功能针对有特殊连接和认证实现的presto分支版本(如PrestoSQL, PrestoDB等),与server端连接和认证,已经卸载到JDBC驱动层,可以通过二次适配JDBC驱动实现层来完成server的ODBC支持。
<dependency>
<groupId>io.hetu.core</groupId>
<artifactId>hetu-jdbc</artifactId>
<version>010</version>
</dependency>
注意: version可能升级,这里仅示例。
server.xml
<!--
the jdbc url prefix, openLooKeng-> jdbc:lk://, presto-> jdbc:presto://
-->
<property name="jdbcUrlPrefix">jdbc:lk://</property>
wrapper.conf
wrapper.java.additional.XX=
在其中添加新的配置参数
注意: 修改mycat目录下的配置项,需要先停mycat服务
将自定义的连接参数配置到 DSN配置界面中的Connect URL和Connect Config二个配置项中。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。