首页 > 编程语言 >openGauss plpython-fenced模式

openGauss plpython-fenced模式

时间:2024-04-17 20:44:49浏览次数:22  
标签:python 数据库 fenced UDF openGauss plpython

PLPython Fenced模式

在fenced模式中添加plpython非安全语言。在数据库编译时需要将python集成进数据库中,在configure阶段加入--with-python选项。同时也可指定安装plpython的python路径,添加选项--with-includes='/python-dir=path'。

在启动数据库之前配置GUC参数unix_socket_directory ,指定unix_socket进程间通讯的文件地址。用户需要提前在user-set-dir-path下创建文件夹,并将文件夹权限修改为可读可写可执行状态。

unix_socket_directory = '/user-set-dir-path'

配置完成,启动数据库。

将plpython加入数据库编译,并设置好GUC参数unix_socket_directory后,在启动数据库的过程中,自动创建fenced-Master进程。在数据库不进行python编译的情况下,fenced模式需要手动拉起master进程,在GUC参数设置完成后,输入创建master进程命令。

启动fenced-Master进程,命令为:

gaussdb --fenced -k /user-set-dir-path -D /user-set-dir-path &

完成fence模式配置,针对plpython-fenced UDF数据库将在fenced-worker进程中执行UDF计算。

使用指导

  • 创建Extension

    • 当编译的plpython为python2时:

      openGauss=# create Extension plpythonu;
      CREATE Extension
      
    • 当编译的plpython为python3时:

      openGauss=# create Extension plpython3u;
      CREATE Extension
      

    下面示例是以python2为例。

  • 创建plpython-fenced UDF

    openGauss=# create or replace function pymax(a int, b int)
    openGauss-# returns INT
    openGauss-# language plpythonu fenced
    openGauss-# as $$
    openGauss$# import numpy
    openGauss$# if a > b:
    openGauss$#     return a;
    openGauss$# else:
    openGauss$#     return b;
    openGauss$# $$;
    CREATE FUNCTION
    
  • 查看UDF信息

    openGauss=# select * from pg_proc where proname='pymax';
    -[ RECORD 1 ]----+--------------
    proname          | pymax
    pronamespace     | 2200
    proowner         | 10
    prolang          | 16388
    procost          | 100
    prorows          | 0
    provariadic      | 0
    protransform     | -
    proisagg         | f
    proiswindow      | f
    prosecdef        | f
    proleakproof     | f
    proisstrict      | f
    proretset        | f
    provolatile      | v
    pronargs         | 2
    pronargdefaults  | 0
    prorettype       | 23
    proargtypes      | 23 23
    proallargtypes   |
    proargmodes      |
    proargnames      | {a,b}
    proargdefaults   |
    prosrc           |
                     | import numpy
                     | if a > b:
                     |     return a;
                     | else:
                     |     return b;
                     |
    probin           |
    proconfig        |
    proacl           |
    prodefaultargpos |
    fencedmode       | t
    proshippable     | f
    propackage       | f
    prokind          | f
    proargsrc        |
    
  • 运行UDF

    • 创建一个数据表:

      openGauss=# create table temp (a int ,b int) ;
      CREATE TABLE
      openGauss=# insert into temp values (1,2),(2,3),(3,4),(4,5),(5,6);
      INSERT 0 5
      
    • 运行UDF:

      openGauss=# select pymax(a,b) from temp;
       pymax
      -------
           2
           3
           4
           5
           6
      (5 rows)
      

标签:python,数据库,fenced,UDF,openGauss,plpython
From: https://www.cnblogs.com/renxyz/p/18141694

相关文章

  • openGauss X-Tuner-参数调优与诊断获取帮助
    获取帮助启动调优程序之前,可以通过如下命令获取帮助信息:gs_dbmindcomponentxtuner--help输出帮助信息结果如下:usage:[-h][--databaseDATABASE][--db-userDB_USER][--db-portDB_PORT][--db-hostDB_HOST][--host-userHOST_USER][--host-ssh-portHOST_SSH_PORT......
  • openGauss X-Tuner-参数调优与诊断命令参考
    命令参考表1命令行参数参数参数说明取值范围mode指定调优程序运行的模式train,tune,recommend--tuner-config-file,-xX-Tuner的核心参数配置文件路径,默认路径为安装目录下的xtuner.conf---db-config-file,-f调优程序的用于登录到数据库宿主机上的连......
  • openGauss X-Tuner-参数调优与诊断使用示例
    使用示例X-Tuner支持三种模式,分别是获取参数诊断报告的recommend模式、训练强化学习模型的train模式、以及使用算法进行调优的tune模式。上述三种模式可以通过命令行参数来区别,通过配置文件来指定具体的细节。配置数据库连接信息三种模式连接数据库的配置项是相同的,有两种方式:......
  • openGauss workload级别索引推荐
    workload级别索引推荐对于workload级别的索引推荐,用户可通过运行数据库外的脚本使用此功能,本功能将包含有多条DML语句的workload作为输入,最终生成一批可对整体workload的执行表现进行优化的索引。同时,本功能提供从日志中或系统表中抽取业务数据SQL流水的功能。前提条件数据库......
  • openGauss X-Tuner-参数调优与诊断常见问题处理
    常见问题处理数据库实例连接失败:请检查数据库实例的情况,是否数据库实例出现了问题或安全权限配置(pg_hba.conf文件中的配置项)不正确。重启失败:请检查数据库实例健康情况,确保数据库实例工作正常。跑TPC-C作业时发现性能越来越慢:TPC-C等高并发场景下的压力测试,往往伴随着大量的数......
  • openGauss SQLdiag-慢SQL发现获取帮助
    获取帮助使用SQLdiag工具前,您可以通过以下指令获取帮助。gs_dbmindcomponentsqldiag--help显示如下帮助信息:usage:[-h][-fCSV_FILE][--predicted-filePREDICTED_FILE][--model{template,dnn}]--model-pathMODEL_PATH[--config......
  • openGauss SQLdiag-慢SQL发现命令参考
    命令参考表1命令行参数说明参数参数说明取值范围-f训练或预测文件位置---predicted-file预测结果存储位置---model模型选择template,dnn--model-path训练模型存储位置-......
  • openGauss SQLdiag-慢SQL发现使用指导
    使用指导前提条件需要保证用户提供训练数据。如果用户通过提供的工具收集训练数据,则需要启用WDR功能,涉及到的参数为track_stmt_stat_level和log_min_duration_statement,具体情况见下面小结。为保证预测准确率,用户提供的历史语句日志应尽可能全面并具有代表性。SQL流水采集......
  • step by step系列之:openGauss1.0.1单机安装指南v1.2
    StepbyStep之:openGauss1.0.1单机安装指南v1.2在CentOS7.6上安装openGauss单机版配置操作系统满足安装要求硬件环境:虚拟机的内存8GB,4核心CPU,900G磁盘(非必须)软件环境:CentOS7.6关闭防火墙停止firewallsystemctlstopfirewalld.service禁止firewall开机启动......
  • Data studio普通用户采用非SSL的方式连接openGauss
    Datastudio普通用户采用非SSL的方式连接openGauss关闭SSL认证由于openGauss默认开启SSL认证,且配置认证较为麻烦,个人开发测试并不需要它。因此关闭openGauss的远程用户登录SSL认证模式。1.找到postgresql.conf。cd/gaussdb/data/openGaussTest1/2.修改postg......