vertica 数据库 linux,配置访问列式数据库vertica的php环境

vertica是一个和Sybase IQ,infobright类似的列式数据库,没有用过Sybase IQ,就和infobright 3.4的社区版做了简单对比测试,在同样一个一亿条记录的表中,下面的查询:

select count(*) from c_log group by level;

vertica花了5秒,infobright花了2分20秒。

测试表c_log的结构为:

CREATE TABLE c_log (

uid varchar(20),

cash integer,

gold integer,

level integer,

rtime datetime,

tid varchar(20),

act varchar(50),

item varchar(500),

value integer,

value2 integer,

time datetime

);

同时infobright的社区版是不支持insert语句的,只能用LOAD语句来插入数据,也就是说社区版不支持同时插入和查询,不过infobright商业版是支持的。vertica没有这个问题,当然,vertica也是商业的,需要钱买,在他们的官网可以申请30天的试用license。

php访问vertica不像访问infobright,infobright是兼容mysql协议的,直接用imysql或pdo_mysql就行。而vertica不兼容mysql协议,所以也就不能用php的mysql模块来访问了。

vertica网站上的数据库驱动只有odbc和jdbc的,jdbc是java用的,对php来说,那就只能用odbc来访问了。

在centos linux 5.x上用odbc,首先要安装unixODBC:

yum install unixODBC

然后到vertica官网下载odbc的驱动,注意要根据自己的平台来下载,我这边用的是64位的:

tar -xvzf vertica_4.0.24_odbc_3.5_unixodbc_x86_64_linux.tar.gz

cp include/verticaodbc.h /usr/include

cp lib64/* /usr/lib64

配置odbc:

vi /etc/odbc.ini

[ODBC Data Sources]

VerticaDSN = "vertica"

[VerticaDSN]

Description = VerticaDSN ODBC driver

Driver = /usr/lib64/libverticaodbc_unixodbc.so

Database = dbname

Servername = 192.168.1.10

UserName =

Password =

Port = 5433

ConnSettings =

Locale = en_GB

还要更改odbcinst.ini:

vi /etc/odbcinst.ini

[VerticaDSN]

Description = ODBC for VerticaDSN

Driver = /usr/lib64/libverticaodbc_unixodbc.so

[ODBC]

Threading = 1

改完后可以用

isql -v VerticaDSN username password

不测试一下,是否可以访问数据库,能访问的话,说明在linux下的odbc配置成功了。

下一步还需要安装php的odbc模块,odbc模块是php自带的,从php官网下载源码包,解压,然后:

cd ext/odbc

/usr/local/php5/bin/phpize

./configure –with-php-config=/usr/local/php5/bin/php-config

但是我安装php的odbc模块一直不成功,提示:

checking for Adabas support… cp: cannot stat `/usr/local/lib/odbclib.a’: No such file or directory

configure: error: ODBC header file ‘/usr/local/incl/sqlext.h’ not found!

试了各种办法和参数都还是这样,正好又看到还有一个pdo_odbc模块,就准备用pdo_odbc了:

编译安装php的pdo_odbc模块

yum install unixODBC-devel

cd ext/pdo_odbc

./configure –with-php-config=/usr/local/php5/bin/php-config    –with-pdo-odbc=unixODBC,/usr

make

make install

vi php.ini

加入一行:

extension = "pdo_odbc.so"

重启web服务就可以通过phpinfo()看到pdo_odbc模块了。

至于php怎么用pdo_odbc访问vertica?参照php手册吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值