环境部署
DeepSQL环境包括编译数据库和安装算法库两个部分。
前提条件
- 环境中安装python2.7.12以上版本Python。
- 数据库需要开启对PL/Python存储过程的支持。
- 安装算法库需要拥有管理员权限的用户。
操作步骤
检查部署Python环境。
安装前,请查看系统安装的python版本,当前DeepSQL需要python2.7.12以上版本的环境。
- 如果当前系统python2版本高于2.7.12,可以直接安装python-devel包。
- 如果版本过低,或者无法安装python-devel包,可以下载最新python2源码,手动配置编译python2,并配置环境变量。
算法库中,部分算法调用了python包,如numpy,pandas等。用户可以安装以下python库:
pip install numpy
pip install pandas
pip install scipy
须知:
如果自行编译python,需要在configure脚本执行时加入—enable-shared参数。
如果系统中的python2使用的是UCS4编码,自行编译python2时,还需要加入—enable-unicode=ucs4参数。
可以在系统中自带的python2下执行:“import sys;print sys.maxunicode”并查看结果,如果结果是65535,说明系统默认的是ucs2;如果结果是1114111,说明用的ucs4编码。
如果系统中内置的python2使用的ucs4,说明系统中的gdb,gstack等也会依赖ucs4。因此自行编译的python2在configure时,需要添加—enable-unicode=ucs4,否则后续使用gdb,gstack时,会遇到报错。
编译部署数据库。
数据库需要开启对PL/Python存储过程的支持。默认编译数据库,不包含此模块。因此需要编译数据库时,在configure阶段,加入--with-python参数;
其他编译保持步骤不变;
编译完成后,需要重新gs_initdb;
默认PL/Python存储过程模块不被加载,请执行“CREATE EXTENSION plpythonu”来加载模块。
算法库编译和安装。
算法库使用开源的MADlib机器学习框架。源码包和相应patch可以从第三方库的代码仓库里获取。安装命令如下:
tar -zxf apache-madlib-1.17.0-src.tar.gz
cp madlib.patch apache-madlib-1.17.0-src
cd apache-madlib-1.17.0-src/
patch -p1 < madlib.patch
编译命令如下:
./configure -DCMAKE_INSTALL_PREFIX={YOUR_MADLIB_INSTALL_FOLDER}
-DPOSTGRESQL_EXECUTABLE=$GAUSSHOME/bin/
-DPOSTGRESQL_9_2_EXECUTABLE=$GAUSSHOME/bin/
-DPOSTGRESQL_9_2_CLIENT_INCLUDE_DIR=$GAUSSHOME/bin/
-DPOSTGRESQL_9_2_SERVER_INCLUDE_DIR=$GAUSSHOME/bin/
# 以上均为configure命令。
make
make install
其中, {YOUR_MADLIB_INSTALL_FOLDER}需要改为用户的实际安装路径。
须知: 编译MADlib时,会联网下载依赖软件。无法联网时,需要手动下载依赖包“PyXB-1.2.6.tar.gz”,“eigen-branches-3.2.tar.gz”和“boost_1_61_0.tar.gz”放在本地。使用的configure命令如下:
./configure -DCMAKE_INSTALL_PREFIX={YOUR_MADLIB_INSTALL_FOLDER} # your install folder
-DPYXB_TAR_SOURCE={YOUR_DEPENDENCY_FOLDER}/PyXB-1.2.6.tar.gz # change to your local folder
-DEIGEN_TAR_SOURCE={YOUR_DEPENDENCY_FOLDER}/eigen-branches-3.2.tar.gz # change to your local folder
-DBOOST_TAR_SOURCE={YOUR_DEPENDENCY_FOLDER}/boost_1_61_0.tar.gz # change to your local folder
-DPOSTGRESQL_EXECUTABLE=$GAUSSHOME/bin/
-DPOSTGRESQL_9_2_EXECUTABLE=$GAUSSHOME/bin/
-DPOSTGRESQL_9_2_CLIENT_INCLUDE_DIR=$GAUSSHOME/bin/
-DPOSTGRESQL_9_2_SERVER_INCLUDE_DIR=$GAUSSHOME/bin/
将算法库安装到数据库中。
a.进入{YOUR_MADLIB_INSTALL_FOLDER}路径。
b.进入bin文件夹。
c.执行如下命令。
./madpack -s <SCHEMA_NAME> -p opengauss -c <USER_NAME>@127.0.0.1:<PORT>/<DATABASE_NAME> install
命令中参数说明如下:
- -s:schema的名称。
- -p:数据库平台,使用opengauss即可。
- -c:连接数据库的参数。包括用户名、‘@’、IP地址、端口号和目标数据库名称。
install为安装的命令,除此之外,还有reinstall(重新安装),uninstall(卸载)等命令可用。
说明:
- 目标数据库必须存在。
- IP请使用127.0.0.1,不要使用localhost。
- 涉及到大量PL/Python存储过程的安装、卸载等操作,需要数据库管理员权限用户来进行,普通用户没有权限创建和修改PL/Python存储过程,只能调用。
- 数据库兼容性,推荐兼容性为B。不同的数据库兼容性下,对空值,NULL等处理有较大差异。建议使用B兼容性。例如,CREATE DATABASE
dbcompatibility=’B’。