Postgres列式引擎Hydra的编译安装
Hydra是一款为Postgres设计开发的列式存储引擎,以AGPL协议开源,主要针对的是OLAP分析性场景。
虽然Hydra源代码开源,但是官方只提供了两种使用方式:
- 公有云虚拟机镜像,主要用来做付费商业服务
- 容器镜像,主要做开发测试性质的任务
要想安装在自己服务器运行的PG里,还是需要手动编译的。这里我的PG是自己编译安装在本地的14.9版本。
首先拉一下Hydra的源码仓
git clone https://github.com/hydradatabase/hydra.git
cd hydra
然后在Hydra的repo根目录下执行
cd /columnar
./configure
如果有一些依赖没有安装,configure会报错。那就安装一下
# 我用的是openSUSE,使用Debian系或者RHEL系的自行参考apt/yum包管理系统的使用方法
sudo zypper in libcurl-devel liblz4-devel libzstd-devel
然后正式编译安装
cd src/backend/columnar
sudo make install
注意在最后一步,Makefile依赖于pg_config读取extension的安装目录,但是pg_config的路径被固定为/usr/bin/pg_config
。如果这个文件不存在,可以创建一个软链接。
sudo ln -s `which pg_config` /usr/bin/pg_config
安装完成后,需要修改PG的配置文件postgresql.conf
, 在shared_preload_libraries里增加columnar.so
。
接着,重启PG服务。如果是用systemd管理的服务,可以执行
sudo systemctl restart postgresql
重启完成后,进入控制台
psql -U postgres
在控制台里创建扩展
postgres=# create extension columnar;
CREATE EXTENSION
如果这一步没有任何报错,那就可以开始创建表了。例如
postgres=# create table test(id bigint, info text) using columnar;
CREATE TABLE
然后就可以愉快地玩耍了!