云原生数据仓库AnalyticDB PostgreSQL版支持用户使用PL/Python过程语言自定义函数。

重要 V6.3.8.9及以后版本,安装或升级插件需要提交工单联系技术支持进行处理。

如何查看实例内核版本,请参见查看内核小版本

限制

  • 不支持在PL/Python中使用触发器。
  • 不支持可更新的游标(例如UPDATE...WHERE CURRENT OFDELETE...WHERE CURRENT OF)。
  • 只支持python2,暂不支持python3。

创建或删除PL/Python插件

AnalyticDB PostgreSQL版中,执行如下命令,创建或删除PL/Python插件(每个数据库只需执行一次)。因为PL/Python是非授信语言,只支持使用数据库的高权限(初始)账号,执行该命令。以下示例中,高权限账号为admin,需要创建PL/Python所在的数据库名为testdb。

创建PL/Python插件

$ psql -U admin -d testdb -c 'CREATE EXTENSION plpythonu;'

删除PL/Python插件

$ psql -U admin -d testdb -c 'DROP EXTENSION plpythonu;'

使用PL/Python开发Python函数

重要 由于安全原因PL/Python没有直接开放,创建Python函数请提交工单,经技术人员确认无安全风险后,由技术人员创建。

示例:创建Python函数

CREATE FUNCTION return_int_array()
  RETURNS int[]
AS $$
  return [1, 2, 3, 4]
$$ LANGUAGE plpythonu;

使用函数

SELECT return_int_array();
return_int_array
---------------------
{1,11,21,31}
(1 row) 

参考文档

关于Python的更多用法,请参见Python官网

关于PL/Python的更多用法,请参见PostgreSQL文档