久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

PG看世界plpython3u真是太好用了《一》:介紹和安裝

 山峰云繞 2023-01-31 發(fā)布于貴州

https://www.toutiao.com/article/7194316891589132832/?log_from=4863912c9a6f18_1675149768866

用postgresql而不用plpython3u,,和mysql有什么分別,?

一,、什么是plpython3u?

plpython3u 是postgresql的一個(gè)擴(kuò)展,,打開navicate,,連入數(shù)據(jù)庫(kù),執(zhí)行

create extension plpython3u; (如果服務(wù)器山?jīng)]安裝模塊,,則失敗,,下文會(huì)講如何安裝)

然后 select * from pg_extension ,可以看到plppython3u 是PG 的一個(gè)插件,。

plpython3u 是一門數(shù)據(jù)庫(kù)編程語(yǔ)言,。

熟悉oracle和sqllserver的可能知道plsql 和TSQL,那是數(shù)據(jù)庫(kù)自己的原生編程語(yǔ)言,。PG也有自己的原生編程語(yǔ)言,,叫做plpgsql。但和所有原生編程語(yǔ)言一樣,,總是沒有python這種通用型語(yǔ)言靈活和功能強(qiáng)大,。

借助plpython3u,我們可以賦予數(shù)據(jù)庫(kù)強(qiáng)大的附加能力

案例一,,sql增強(qiáng):

我們需要根據(jù)企業(yè)的注冊(cè)資金來給企業(yè)分類,。

select jgmc,clrq,zczj ,jyfw

,case when zczj<=100 then '小型企業(yè)'

when zczj>100 and zczj<=1000 then '中型企業(yè)'

when zczj>1000 and zczj<=1000 then '大型企業(yè)'

else '超大型企業(yè)' end 企業(yè)類型

from sist.base1 limit 100

也許簡(jiǎn)單的規(guī)則可以借助sql語(yǔ)言本身的能力實(shí)現(xiàn),,但規(guī)則一旦復(fù)雜后,就比較困難,。

借用plpython3u寫一個(gè)自定義函數(shù),,可以把復(fù)雜的規(guī)則封裝。

用plpython3u自定義函數(shù) add_tag
create or replace function add_tag(zczj float) returns text as 
$$
tag=None
if zczj is None:return tag
if zczj<=1000:
   tag='小型企業(yè)' if zczj<=100 else '中型企業(yè)'
else:
   tag='大型企業(yè)' if zczj<=1000 else '超大型企業(yè)'
return tag 

$$ language plpython3u;


select jgmc,clrq,zczj ,jyfw,

add_tag(zczj) 企業(yè)類型

from sist.base1 limit 100

plpython3u 還可以實(shí)現(xiàn)sql腳本化,、數(shù)據(jù)分析,、辦公、機(jī)器學(xué)習(xí)等等,。(更多應(yīng)用案例,,下文會(huì)詳細(xì)列舉)

二、plpython3u 的安裝,。

談到plpython3u的安裝,,則需要考慮到讀者使用PG的發(fā)行版、安裝方式和操作系統(tǒng),。

此處列舉最常見的幾種場(chǎng)景

  • window-enterpisedb公司發(fā)行的postgresql-13.5-1-windows-x64.exe
  • linux-開源社區(qū)-通過yum/rpm安裝的PG
  • linux-enterprisedb公司發(fā)行的 postgresql-10.8-4-linux-x64.run
enterprisedb發(fā)行版  和 社區(qū)版,,是比較主流且穩(wěn)定的版本,下載地址如下
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
開源社區(qū)版下載
https://www.postgresql.org/download/

創(chuàng)建plpython3u,,需要數(shù)據(jù)庫(kù)安裝plpython3u模塊,,plpython3u模塊工作需要調(diào)用服務(wù)器上的python程序。所以保證plpython3u安裝且成功工作,,需要保證

  1. plpython3u模塊安裝,、python被安裝
  2. plpython3u和python能適配,且可以找到對(duì)方,。

2.1 window

數(shù)據(jù)庫(kù)通過
postgresql-13.5-1-windows-x64.exe安裝

該發(fā)行版,,自身已經(jīng)安裝plpython3u模塊,證據(jù)就是存在

安裝目錄/lib/plpython3u/plpython.dll
安裝目錄/share/extension/plpython3u.control
安裝目錄/share/extension/plpython3u--1.0.sql

此發(fā)行版,依賴于window上安裝 python3.7 ,,且必須把python安裝目錄加到環(huán)境變量PATH里去,,

(確切的說,是 ” 安裝目錄/python37.dll“ 這個(gè)文件 必須在環(huán)境變量里,。 也就是說,,你把這個(gè)文件的快捷方式放到環(huán)境變量里的目錄也是可以的,這樣就不用把整個(gè)安裝目錄必須放到環(huán)境變量下,。)

可以通過python命令,檢查一下安裝python安裝目錄是否在環(huán)境變量path里

不同版本的發(fā)行版依賴不同的python版本,,enterprisedb-window.exe系列有以下

PG版本

python版本

9.6

3.3

10

3.4

11

3.6

13

3.7

該規(guī)則不適用其它發(fā)行版,。

2.2 centos7

數(shù)據(jù)庫(kù)通過yum或 rpm安裝 (yum install postgresql13-server)

此發(fā)行版自身并不帶plpython3u模塊。需要額外安裝

可以通過yum安裝

yum install postgresql13-plpython3  -y

若無法搜索到,,則需要安裝 pg官方repo

yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

或者,,直接下載對(duì)應(yīng)的plpython3u rpm文件手段安裝

下載頁(yè)面

wget https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-7.9-x86_64/postgresql13-plpython3-13.5-1PGDG.rhel7.x86_64.rpm
yum install postgresql13-plpython3-13.5-1PGDG.rhel7.x86_64.rpm -y

安裝成功后,,數(shù)據(jù)庫(kù)目錄下會(huì)有

/usr/pgsql-13/lib/plpython3.so 
/usr/pgsql-13/share/extension/plpython3u--1.0.sql
/usr/pgsql-13/share/extension/plpython3u.control

用此方式安裝的PG,依賴于python3.6

保證系統(tǒng)中有python3.6 且在環(huán)境PATH里即可,。

2.3 linux

通過
./postgresql-10.8-4-linux-x64.run 安裝

通過這種方式安裝的,,目錄在/opt/PostgreSQL/10,且已經(jīng)安裝好了plpython3u 模塊,。

此版本依賴python3.4

/opt/PostgreSQL/10/lib/postgresql/plpython3.so 
/opt/PostgreSQL/10/share/postgresql/extension/plpython3u.control
/opt/PostgreSQL/10/share/postgresql/extension/plpython3u--1.0.sql

難道一個(gè)PG發(fā)行版就只能綁定一個(gè)特定python版本,?如果我希望自己的PG和自己喜歡的python版本組合使用,難道就沒有辦法,?

下篇,,將介紹如何自由實(shí)現(xiàn) PG-plpython3u 和任意版本python適配

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多