因为某些原因要用C++进行开发,期间需要连接Vertica数据库,只好先做一些探索性的研究。
首先根据Vertica的官方文档,用ODBC链接Vertica大概有安装ODBC, 安装Vertica ODBC驱动,配置DSN,这么几个步骤。
首先安装ODBC,用apt-get 装iodbc、unixodbc这两个包。后面配置odbc驱动相关的东西可以使用iodbcadm-gtk来做,不过我这里直接用的文本编辑器。unixodbc则是ODBCInstLib这个东西所在的包。安装这两个包的时候还遇到了依赖关系,依赖里面少什么包装什么就是了。
而vertica的ODBC驱动在安装vsql客户端的时候已经安装上了,所以直接从配置DSN开始好了。
由于要配置一个通用的DSN,所以编辑/etc/odbc.ini,加入如下内容:
[ODBC Data Sources] //这个section下面是一个所有section的列表
test="this is a test" //test是一个section
[test] //和ODBC Data Sources这个section下面列出的名字要一样
Description=just a test //只是一段描述
Driver=/opt/vertica/lib64/libverticaodbc.so //这个是odbc所在路径
Servername=10.100.xxx.xxx //数据库服务器的ip,或者一个hostname来解析到多个ip
Database=xxx //数据库的名称
Locale=zh_CN.UTF-8 //不写的话默认为en_US@collation=binary
其他的参数不设置暂时也没关系,比如Port一类的,数据库服务器没改过的话就用默认值了。
接下来还要配置vertica.ini。这个文件名字和路径可以任意配置,只要搞个环境变量VERTICAINI就可以了。我这里用了vertica文档上的
export VERTICAINI=/etc/vertica.ini