人大金仓数据库KingbaseES 产品使用-plpython3u的安装

本文详细介绍了在Python3.10环境下安装和配置PL/Python3u版本以在KingbaseESV8中使用的步骤,包括Python安装、环境变量设置、第三方库安装以及创建和测试plpython3u扩展。

关键字:

KingbaseES、plpython3u安装

一、plpython3u介绍

PL/Python为Python的过程语言,允许用Python语言编写PSQL函数。PL/Python 只是一种“不可信”语言,这意味着它没有提供任何方法来限制用户在其中的所作所为,并且因此被命名为plpythonu。如果未来开发出在 Python 中的安全执行机制,可能会出现一种可信的变体plpython。

PL/Python 同时支持 Python 2 和 Python 3 两种语言变体。因为 Python 2 和 Python 3 语言变体在某些重要的方面并不兼容,PL/Python 使用了下列命名和转换模式以避免混淆它们:

  • 名为plpython2u的 PostgreSQL 语言实现了基于 Python 2 语言变体的 PL/Python。
  • 名为plpython3u的 PostgreSQL 语言实现了基于 Python 3 语言变体的 PL/Python。
  • 名为plpythonu的语言实现了基于默认 Python语言变体(当前是 Python 2)的 PL/Python(这种默认与任何本地 Python 安装所认为的“默认”无关,例如/usr/bin/python)。

二、plpython3u安装

本实例的安装环境为Python3.10、KingbaseES V8。并根据Python函数的具体要求安装对应的第三方依赖包,如numpy、scipy、pandas等。

2.1.安装Python

  • 从本地将Python3.10.0.tgz安装包上传到Linux服务器。
  • 使用tar -zxvf Python-3.10.0.tgz命令解压Python3.10.0.tgz安装包。
  • 使用cd Python-3.10.0/命令进入解压后的目录。
  • sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
  • ./configure --prefix=/home/liyan/Python-3.10.0/ --enable-shared,其中,--prefix为python安装目录。通过该链接生成Makefile文件。
  • 使用make&&make install命令进行编译并安装。

2.2.设置python的环境变量

  • 使用vi ~/.bashrc打开环境变量的配置界面。
  • 在环境配置界面添加以下路径:

file

2.3.安装Python函数依赖的第三方包

  • pip3 install numpy-1.21.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl --prefix /home/liyan/Python-3.10.0/
  • pip3 install scipy-1.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl --prefix /home/liyan/Python-3.10.0/
  • pip3 install scikit_learn-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl --prefix /home/liyan/Python-3.10.0/
  • pip3 install pandas-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl --prefix /home/liyan/Python-3.10.0/

2.4.将修改的.py文件更新到依赖包文件中

2.5.重新编译KingbaseES V8

  • 使用./configure --prefix=/home/liyan/postgresql --with-zlib --enable-nls --enable-integer-datetimes --with-openssl --enable-cassert --with-libxml --with-uuid=e2fs --enable-debug CFLAGS=-O0 --with-icu –with-python命令重新编译KingbaseES V8。
  • 使用make world –j4命令进行编译。
  • 使用make install-world进行安装,值得注意的是:一定要加-world,因为这样做会同时安装插件。

2.6.创建plpython3u扩展

启动并进入数据库,执行create extension plpython3u;

2.7.将plpython代码放入一个现有插件的sql执行文件中,返回终端,进入现有插件目录,使用make install 命令进行代码编译。

2.8.创建现有插件扩展

create extension kdb_oracle_aggex;

2.9.在KingbaseES V8中直接输入测试用例,就可以正常使用plpython3u扩展了。

三、总结

KingbaseES V8使用PL/Python过程语言创建扩展,实现了Oracle的新特性,兼容了Oracle。

更多信息,参见https://help.kingbase.com.cn/v8/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值