プロシージャ作成
Verticaのプロシージャは、シェルで作成したプログラムを実行することが可能です。
【概要図】
プロシージャ”proc1″からシェルスクリプト”a.sh”を実行します。
【作成手順と実行方法】
プロシージャの作成方法を以下に記載します。
1.シェルに権限を付与します。
シェルスクリプトに以下の権限を付与します。
・ユーザに実行権限とセットID
・グループに実行権限
■シェルスクリプトの確認
$ cat a.sh
#!/bin/sh
echo "Procedure Test" <== "Procedure Test"を表示する
■権限付与
$ chmod u+xs,g+x a.sh
$ ls -l a.sh
-rwsrwxrw- 1 dbadmin verticadba 20 9月 3 20:11 2015 a.sh2.シェルスクリプトを指定してVerticaのカタログに配置します。
2-1. admintoolsを起動して「Configuration Menu」を選択します。
2-2.「Install External Procedure」を選択します。
2-3.対象データベースを選択します。
2-4.シェルスクリプトを指定します。
2-5.正常終了したことを確認します。
これで、/<カタログディレクトリ>/<データベース>/procedure にシェルスクリプトが配置されます。
3.プロシージャの作成
構文
create procedure <プロシージャ名>(<引数>) as ‘<シェルスクリプト名>‘ language ‘external’ user ‘OSユーザ名’;
※OSユーザ名はシェルスクリプトのOWNER
dbadmin=> create procedure proc1() as 'a.sh' language 'external' user 'dbadmin';
CREATE PROCEDURE4.プロシージャの実行
プロシージャをselectで実行します。
dbadmin=> select proc1();
INFO 4427: Procedure reported:
Procedure Test <== シェルのechoが表示されます5.プロシージャの削除
プロシージャの削除は、プロシージャ名と引数を指定します。
dbadmin=> drop procedure proc1();
DROP PROCEDURE※プロシージャを削除することでシェルスクリプトの削除はされません。
検証バージョンについて
この記事の内容はVertica 9.1で確認しています。





