友情链接:
作为应用开发人员,您只需完成驱动安装,即可基于 ODBC 开发相关应用程序,连接并操作星环Inceptor或ArgoDB数据库中的数据。
为了帮助读者及用户更快熟悉开发流程,接下来将为您介绍如何在Windows、Linux平台配置ODBC 以及 如何基于ODBC 做应用开发。
ODBC(开放数据库连接)是一种广泛接受的应用程序编程接口,使用结构化查询语言(SQL)作为数据库访问语言,不仅可以避免应用程序直接操作数据库,同时增强了应用的移植性和维护性,提升开发效率,典型组件及架构如下图所示:
在正式开发应用程序前,您需要跟随下述步骤完成环境准备工作:
1)下载 ODBC 驱动
2)配置数据源
ODBC 驱动程序用于连接 Transwarp Inceptor或ArgoDB 数据库,在开发应用程序前,您需要登录 Transwarp Manager 平台下载相关驱动程序,或者访问社区驱动下载页面下载对应驱动。
Manager下载驱动步骤:
ODBC 驱动支持的平台如下:
下载 ODBC 驱动后,您还需要参考本文流程,安装驱动并添加数据源配置,完成操作后即可开始程序的开发工作。
5. 在弹出的对话框中,双击 Transwarp Inceptor ODBC Driver 进行编辑。
6. 根据下述说明,完成数据源配置。
7. 单击 Test,通过连接测试后单击 OK,然后单击确定。
8. (可选)当使用 ODBC 出错时,您可以在跟踪页签跟踪相关日志。
a. 跟踪完成后将 ODBC 的相关日志发送给 Transwarp 技术支持人员。
该日志为 ODBC Driver Manager 日志,由 Windows 系统本身提供,描述了应用层调用驱动的 API 记录及其返回值。
b. ODBC Driver 日志:由 ODBC 研发人员自己定义。
由于该操作将会较大程度影响 ODBC 性能,推荐仅在排查故障时使用。
1)问:如何获取 ODBC Driver 日志?
答:日志文件存放路径为 /tmp/odbc.log,如需调整路径,您可以打开 ODBC 驱动的安装目录中的 log4cplus.properties 文件,修改 log4cplus.appender.R.File 参数的值来调整日志存储路径。
2)问:如何调整 ODBC Driver 的日志等级?
答:默认级别为 ERROR,您可以打开 ODBC 驱动的安装目录中的 log4cplus.properties 文件,修改 log4cplus.properties 文件中 log4cplus.rootLogger 和 log4cplus.logger.ODBC.HANDLER 参数的值,例如改成 INFO 或 DEBUG。
下载 ODBC 驱动后,您还需要参考本文流程,安装驱动并添加数据源配置,完成操作后即可开始程序的开发工作。
1. 下述步骤以 CentOS 7(64位)操作系统为例演示操作流程,其他 Linux 平台操作流程类似。
登录 Linux 设备,执行下述命令安装 unixODBC,用于管理 ODBC 驱动。
yum install unixODBC unixODBC-devel
2. 执行 odbcinst -j 命令,确认 unixODBC 是否安装成功,正常输出示例如下。
[root@local]# odbcinst -j
unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
3. 安装 ODBC 驱动。
a. 下载 ODBC 驱动,然后将下载好的驱动文件放至 Linux 设备中。
b. 以 CentOS 为例,执行下述命令安装驱动。
# 需根据下载的文件名称,替换下述命令中要安装的 rpm 包名称
rpm -ivh inceptor-connector-odbc-8.31.0-1.el7.x86_64.rpm
4. 通过 vim 命令完成 ODBC 的 DSN(数据源名称)信息的修改。
关于 Inceptor/ArgoDB 的认证方式配置,见 Guardian 手册。
/usr/local/inceptor 下的 odbcinst.ini 和 odbc.ini 是配置模板,下面介绍两个文件的具体内容。
odbc.ini 是 DSN(数据源名称)配置文件,已基于认证方式分类并提供了配置示例,以 LDAP 认证连接至 Inceptor / ArgoDB 数据库为例,我们仅需配置 [transwarp-hs2-ldap] 中包含的参数,具体如下:
# 数据源名称
[transwarp-hs2-ldap]
# 连接的描述信息
Description = LDAP test
# 驱动名称,无需修改
Driver = Transwarp Inceptor ODBC Driver
# 数据库所属设备的 host 名称
Server = idc1
# Hive 版本,无需修改
Hive = Hive Server 2
# 数据库的连接地址,即 Quark 组件的服务地址,您可以登录 Transwarp Manager 平台,找到 Quark 组件并获取其服务地址。
Host = 172.16.1.212
# 数据库服务端口,默认为 10000
Port = 10000
# 要连接的数据库
Database = default
# 访问 Inceptor / ArgoDB 数据库的用户名和密码
User = hive
Password = ArgoDB@123 或者是 Password = Inceptor@123
# 认证方式为 LDAP,无需修改
Mech = LDAP
odbcinst.ini是驱动配置文件(无需修改):
# 驱动名称,和 odbc.ini 中的 Driver 对应
[Transwarp Inceptor ODBC Driver]
# 驱动的描述信息
Description=Transwarp Inceptor ODBC Driver
# 驱动的具体位置
Driver=/usr/local/lib64/libODBC4HiveServer2.so
5. 设置完成后按下 Esc 键退出编辑模式,输入 :wq 并按回车键,保存配置并退出编辑界面。
6. 执行下述命令,以覆盖当前系统配置,如需再次调整配置,可直接修改 /etc/odbc.ini 文件。
sudo cp /usr/local/inceptor/odbc.ini /etc/odbc.ini
sudo cp /usr/local/inceptor/odbcinst.ini /etc/odbcinst.ini
7. 执行 isql -v {数据源名称} {用户名} {密码} 格式的命令测试 ODBC 连通性,正常连接的输出示例如下。
root@local]# isql -v transwarp-hs2-ldap hive ArgoDB@123
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
1) 问:通过 isql -v 命令测试 ODBC 连接时,遇到了一些报错信息,如何解决?
答:可能遇到的错误信息及相关解决方案如下:
错误提示 | 解决方案 |
---|---|
“Data source name not found, and no default driver specified” | 环境变量设置不正确或未设置,请参考本文的步骤 2 设置环境变量。 |
“Connection refused” | 连接请求被拒绝,请检查服务端的防火墙设置,确保端口可正常通信。 |
“No route to host” | 服务器连接地址配置错误或防火墙引起的网络通信,需检查地址配置正确性和网络连通性。 |
“Can’t open lib '/usr/local/lib64/libODBC4HiveServer2.so' : file not found]” | 执行 ldd /usr/local/lib64/libODBC4HiveServer2.so,查看输出结果中提示 libsasl2.so.2=⇒not found,此时执行 ln -sv /usr/lib64/libsasl2.so.3.0.0 /usr/lib64/libsasl2.so.2 添加软链接即可解决 |
“SASL Other:No worthy mechd found , Segmentation faild” | 执行命令 yum install cyrus-sasl-gssapi cyrus-sasl-plain -y 安装相关工具 |
2)问:如何获取 ODBC Driver 日志?
答:日志文件存放路径为 /tmp/odbc.log,如需调整路径,您可以修改 /usr/local/inceptor/log4cplus.properties 文件中 log4cplus.appender.R.File 参数的值。
3)问:如何调整 ODBC Driver?
答:默认级别为 ERROR,修改 /usr/local/inceptor/log4cplus.properties 文件,调整 log4cplus.rootLogger 和 log4cplus.logger.ODBC.HANDLER 参数的值,例如改成 INFO 或 DEBUG。
详见:ODBC开发流程、示例代码以及ODBC API支持__ODBC开发指南(下)
下一篇将提供以下示例代码:
如果上述内容对您有提供帮助,欢迎多多点赞支持~😎
友情链接:
作为应用开发人员,您只需完成驱动安装,即可基于 ODBC 开发相关应用程序,连接并操作星环Inceptor或ArgoDB数据库中的数据。
为了帮助读者及用户更快熟悉开发流程,接下来将为您介绍如何在Windows、Linux平台配置ODBC 以及 如何基于ODBC 做应用开发。
ODBC(开放数据库连接)是一种广泛接受的应用程序编程接口,使用结构化查询语言(SQL)作为数据库访问语言,不仅可以避免应用程序直接操作数据库,同时增强了应用的移植性和维护性,提升开发效率,典型组件及架构如下图所示:
在正式开发应用程序前,您需要跟随下述步骤完成环境准备工作:
1)下载 ODBC 驱动
2)配置数据源
ODBC 驱动程序用于连接 Transwarp Inceptor或ArgoDB 数据库,在开发应用程序前,您需要登录 Transwarp Manager 平台下载相关驱动程序,或者访问社区驱动下载页面下载对应驱动。
Manager下载驱动步骤:
ODBC 驱动支持的平台如下:
下载 ODBC 驱动后,您还需要参考本文流程,安装驱动并添加数据源配置,完成操作后即可开始程序的开发工作。
5. 在弹出的对话框中,双击 Transwarp Inceptor ODBC Driver 进行编辑。
6. 根据下述说明,完成数据源配置。
7. 单击 Test,通过连接测试后单击 OK,然后单击确定。
8. (可选)当使用 ODBC 出错时,您可以在跟踪页签跟踪相关日志。
a. 跟踪完成后将 ODBC 的相关日志发送给 Transwarp 技术支持人员。
该日志为 ODBC Driver Manager 日志,由 Windows 系统本身提供,描述了应用层调用驱动的 API 记录及其返回值。
b. ODBC Driver 日志:由 ODBC 研发人员自己定义。
由于该操作将会较大程度影响 ODBC 性能,推荐仅在排查故障时使用。
1)问:如何获取 ODBC Driver 日志?
答:日志文件存放路径为 /tmp/odbc.log,如需调整路径,您可以打开 ODBC 驱动的安装目录中的 log4cplus.properties 文件,修改 log4cplus.appender.R.File 参数的值来调整日志存储路径。
2)问:如何调整 ODBC Driver 的日志等级?
答:默认级别为 ERROR,您可以打开 ODBC 驱动的安装目录中的 log4cplus.properties 文件,修改 log4cplus.properties 文件中 log4cplus.rootLogger 和 log4cplus.logger.ODBC.HANDLER 参数的值,例如改成 INFO 或 DEBUG。
下载 ODBC 驱动后,您还需要参考本文流程,安装驱动并添加数据源配置,完成操作后即可开始程序的开发工作。
1. 下述步骤以 CentOS 7(64位)操作系统为例演示操作流程,其他 Linux 平台操作流程类似。
登录 Linux 设备,执行下述命令安装 unixODBC,用于管理 ODBC 驱动。
yum install unixODBC unixODBC-devel
2. 执行 odbcinst -j 命令,确认 unixODBC 是否安装成功,正常输出示例如下。
[root@local]# odbcinst -j
unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
3. 安装 ODBC 驱动。
a. 下载 ODBC 驱动,然后将下载好的驱动文件放至 Linux 设备中。
b. 以 CentOS 为例,执行下述命令安装驱动。
# 需根据下载的文件名称,替换下述命令中要安装的 rpm 包名称
rpm -ivh inceptor-connector-odbc-8.31.0-1.el7.x86_64.rpm
4. 通过 vim 命令完成 ODBC 的 DSN(数据源名称)信息的修改。
关于 Inceptor/ArgoDB 的认证方式配置,见 Guardian 手册。
/usr/local/inceptor 下的 odbcinst.ini 和 odbc.ini 是配置模板,下面介绍两个文件的具体内容。
odbc.ini 是 DSN(数据源名称)配置文件,已基于认证方式分类并提供了配置示例,以 LDAP 认证连接至 Inceptor / ArgoDB 数据库为例,我们仅需配置 [transwarp-hs2-ldap] 中包含的参数,具体如下:
# 数据源名称
[transwarp-hs2-ldap]
# 连接的描述信息
Description = LDAP test
# 驱动名称,无需修改
Driver = Transwarp Inceptor ODBC Driver
# 数据库所属设备的 host 名称
Server = idc1
# Hive 版本,无需修改
Hive = Hive Server 2
# 数据库的连接地址,即 Quark 组件的服务地址,您可以登录 Transwarp Manager 平台,找到 Quark 组件并获取其服务地址。
Host = 172.16.1.212
# 数据库服务端口,默认为 10000
Port = 10000
# 要连接的数据库
Database = default
# 访问 Inceptor / ArgoDB 数据库的用户名和密码
User = hive
Password = ArgoDB@123 或者是 Password = Inceptor@123
# 认证方式为 LDAP,无需修改
Mech = LDAP
odbcinst.ini是驱动配置文件(无需修改):
# 驱动名称,和 odbc.ini 中的 Driver 对应
[Transwarp Inceptor ODBC Driver]
# 驱动的描述信息
Description=Transwarp Inceptor ODBC Driver
# 驱动的具体位置
Driver=/usr/local/lib64/libODBC4HiveServer2.so
5. 设置完成后按下 Esc 键退出编辑模式,输入 :wq 并按回车键,保存配置并退出编辑界面。
6. 执行下述命令,以覆盖当前系统配置,如需再次调整配置,可直接修改 /etc/odbc.ini 文件。
sudo cp /usr/local/inceptor/odbc.ini /etc/odbc.ini
sudo cp /usr/local/inceptor/odbcinst.ini /etc/odbcinst.ini
7. 执行 isql -v {数据源名称} {用户名} {密码} 格式的命令测试 ODBC 连通性,正常连接的输出示例如下。
root@local]# isql -v transwarp-hs2-ldap hive ArgoDB@123
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
1) 问:通过 isql -v 命令测试 ODBC 连接时,遇到了一些报错信息,如何解决?
答:可能遇到的错误信息及相关解决方案如下:
错误提示 | 解决方案 |
---|---|
“Data source name not found, and no default driver specified” | 环境变量设置不正确或未设置,请参考本文的步骤 2 设置环境变量。 |
“Connection refused” | 连接请求被拒绝,请检查服务端的防火墙设置,确保端口可正常通信。 |
“No route to host” | 服务器连接地址配置错误或防火墙引起的网络通信,需检查地址配置正确性和网络连通性。 |
“Can’t open lib '/usr/local/lib64/libODBC4HiveServer2.so' : file not found]” | 执行 ldd /usr/local/lib64/libODBC4HiveServer2.so,查看输出结果中提示 libsasl2.so.2=⇒not found,此时执行 ln -sv /usr/lib64/libsasl2.so.3.0.0 /usr/lib64/libsasl2.so.2 添加软链接即可解决 |
“SASL Other:No worthy mechd found , Segmentation faild” | 执行命令 yum install cyrus-sasl-gssapi cyrus-sasl-plain -y 安装相关工具 |
2)问:如何获取 ODBC Driver 日志?
答:日志文件存放路径为 /tmp/odbc.log,如需调整路径,您可以修改 /usr/local/inceptor/log4cplus.properties 文件中 log4cplus.appender.R.File 参数的值。
3)问:如何调整 ODBC Driver?
答:默认级别为 ERROR,修改 /usr/local/inceptor/log4cplus.properties 文件,调整 log4cplus.rootLogger 和 log4cplus.logger.ODBC.HANDLER 参数的值,例如改成 INFO 或 DEBUG。
详见:ODBC开发流程、示例代码以及ODBC API支持__ODBC开发指南(下)
下一篇将提供以下示例代码:
如果上述内容对您有提供帮助,欢迎多多点赞支持~😎