首先安裝 R 的套件:CentOS 的 R 維護於 EPEL Repo 裡面。要啟用這個 YUM Repo,安裝epel-release 這個套件就好。現在這裡提供的 R 套件用的線性代數函式庫已經使用 OpenBLAS 以及相對應的 LAPACK(在 EPEL YUM Repo 裡面的 RPM 叫做 openblas-Rblas),所編譯的 R 運算上會比較快。(以前用的是一般所謂的 Reference BLAS(Netlib BLAS)以及相對應的 LAPACK,只支援單執行緒的線性代數數值運算,運算效能不夠好。OpenBLAS 則支援多執行緒的線性代數數值運算)
[root@edbvm ~]# yum install epel-release [root@edbvm ~]# yum install R
由於預先編譯好的 PL/R 是針對社群發布的原生版 PostgreSQL 所編譯的,與 EDB 不相容,所以接著便要從原始碼編譯:EDB 的環境變數都記在 pgplus_env.sh 裡面了,只要讀取它到 bash 裡面就好
[root@edbvm ~]# source /opt/edb/as9.6/pgplus_env.sh [root@edbvm ~]# wget https://github.com/postgres-plr/plr/archive/REL8_3_0_17.tar.gz -O plr-8.3.0.17.tar.gz [root@edbvm ~]# tar -xvf plr-8.3.0.17.tar.gz [root@edbvm ~]# cd plr-REL8_3_0_17/ [root@edbvm ~]# USE_PGXS=1 make [root@edbvm ~]# USE_PGXS=1 make install
接著在 $PGDATA/postgresql.conf 中加進去,然後重啟動
[enterprisedb@edbvm ~]$ source /opt/edb/as9.6/pgplus_env.sh
[enterprisedb@edbvm ~]$ sed -e "s@^shared_preload_libraries = '\([^']*\)'@shared_preload_libraries = '\1,\$libdir\/plr'@g" \
-i $PGDATA/postgresql.conf
[enterprisedb@edbvm ~]$ pg_ctl restart
最後,就可以啟用套件了
edb=# CREATE EXTENSION plr; edb=# -- 查看安裝的 PL/R 資訊 edb=# SELECT plr_environ();
接著就可以在 PostgreSQL 企業版裡面使用 R 當成 Stored Procedure 了~
PL/R 使用上類似 RPostgreSQL(其實好像是同一組人在維護的~)。如果要參考使用方式,可以從下面參考一些使用資訊
沒有留言:
張貼留言