Menu

文档

环境部署

DeepSQL环境包括编译数据库和安装算法库两个部分。

前提条件

  • 环境中安装python2.7.12以上版本Python。
  • 数据库需要开启对PL/Python存储过程的支持。
  • 安装算法库需要拥有管理员权限的用户。

操作步骤

  1. 检查部署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时,会遇到报错。

  2. 编译部署数据库。

    数据库需要开启对PL/Python存储过程的支持。默认编译数据库,不包含此模块。因此需要编译数据库时,在configure阶段,加入--with-python参数;

    其他编译保持步骤不变;

    编译完成后,需要重新gs_initdb;

    默认PL/Python存储过程模块不被加载,请执行“CREATE EXTENSION plpythonu”来加载模块。

  3. 算法库编译和安装。

    算法库使用开源的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/
    
  4. 将算法库安装到数据库中。

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'。

本文档遵循知识共享许可协议CC 4.0 (http://creativecommons.org/Licenses/by/4.0/)。