MathJax

MathJax-2

MathJax-3

Google Code Prettify

置頂入手筆記

EnterproseDB Quickstart — 快速入門筆記

由於考慮採用 EnterpriseDB 或是直接用 PostgreSQL 的人,通常需要一些入手的資料。這邊紀錄便提供相關快速上手的簡單筆記 ~ 這篇筆記以 資料庫安裝完畢後的快速使用 為目標,基本紀錄登入使用的範例:

2017年9月7日 星期四

在CentOS7 + EDB9.6 上安裝 PL/R(R 語言的 Stored Procedure)

這次安裝,裝在 Google Cloud 的 CentOS7上,裡面裝的是 EDB 的 Postgres 9.6 企業版,然而以下安裝也適用在其他 RHEL/Fedora 與其他 PostgreSQL distribution 上

首先安裝 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(其實好像是同一組人在維護的~)。如果要參考使用方式,可以從下面參考一些使用資訊

沒有留言:

張貼留言