人大金仓 KingbaseES中plpython的介绍

关键字:

KingbaseES、plpython、python

1.Plpython简介

PL/Python过程语言允许用Python 语言编写函数。 PL/Python 只是一种“不可信”语言,这意味着它没有提供任何方法来限制用户在其中的所作所为,并且因此被命名为plpythonu。如果未来开发出在 Python 中的安全执行机制,可能会出现一种可信的变体plpython。不可信 PL/Python 中函数的编写者必须注意该函数不能被用来做任何它不应该做的事情,因为它将能做以数据库管理员用户登录能做的事情。只有超级用户能够创建plpythonu等不可信语言中的函数。 PL/Python 中的函数通过标准的CREATE FUNCTION语法声明:

CREATE FUNCTION funcname (argument-list)
  RETURNS return-type
AS $$

  # PL/Python 函数体
$$ LANGUAGE plpythonu;

函数体就是一个 Python 脚本。当函数被调用时,它的参数被当做列表args的元素传递,命名参数也被作为普通变量传递给 Python 脚本。使用命名参数通常可读性更好。Python 代码会以通常的方式返回结果,即使用return或者yield(在结果集合语句的情况中)。如果没有提供一个返回值,Python 会返回默认的None。PL/Python会把 Python 的None翻译成 SQL 空值。在一个过程中,Python代码的结果必须是None(通常实现为结束过程时不写return语句或者使用不带参数的return),否则将会发生错误。

2.Plpython配置简介

2.1安装python

下载并解压Python安装包。

tar -zxvf Python-3.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参数中添加项 –enable-shared。

./configure --prefix=/home/zhaoyiwei/python/Python-3.10.0/ --enable-shared
make
make install

2.2安装python函数库

配置Python环境变量。

export PYTHON=/home/zhaoyiwei/python/Python-3.10.0/python
exportLD_LIBRARY_PATH=/home/zhaoyiwei/python/Python-3.10.0:$LD_LIBRARY_PATH
export PATH=/home/zhaoyiwei/python/Python-3.10.0//bin:$PATH

使用pip3安装函数库,如果有依赖库请先安装所依赖的库,报错检查环境变量是否正确。 pip3 install scipy-1.6.3-cp38-cp38-manylinux1_x86_64.whl --prefix /home/zhaoyiwei/python/Python-3.10.0

2.3配置KES环境

步骤同配置安装,但注意添加 ./configure --with-python。

./configure --prefix=/home/zhaoyiwei/postgresql --with-zlib --enable-nls --enable-integer-datetimes --with-openssl --enable-cassert --with-libxml --with-uuid=e2fs --enable-debug CFLAGS=-O0 --with-icu --with-includes=/opt/openssl-1.1.1q/include --with-libs=/opt/openssl-1.1.1q/lib --with-python
make world –j4
make install-world

2.4创建plpython3插件

create extension plpython3;

2.5其他

查看当前python支持的库版本。

import pip_internal 

print(pip._internal.pep425tags.get_supported())

参考资料

《 KingbaseES客户端编程接口指南-Python》

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值