プロシージャ作成
Verticaのプロシージャは、シェルで作成したプログラムを実行することが可能です。【概要図】
プロシージャ”proc1″からシェルスクリプト”a.sh”を実行します。
【作成手順と実行方法】
プロシージャの作成方法を以下に記載します。
1.シェルに権限を付与します。
シェルスクリプトに以下の権限を付与します。
・ユーザに実行権限とセットID
・グループに実行権限
1 2 3 4 5 6 7 8 9 |
■シェルスクリプトの確認 $ 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.sh |
2.シェルスクリプトを指定して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
1 2 |
dbadmin=> create procedure proc1() as 'a.sh' language 'external' user 'dbadmin'; CREATE PROCEDURE |
4.プロシージャの実行
プロシージャをselectで実行します。
1 2 3 |
dbadmin=> select proc1(); INFO 4427: Procedure reported: Procedure Test <== シェルのechoが表示されます |
5.プロシージャの削除
プロシージャの削除は、プロシージャ名と引数を指定します。
1 2 |
dbadmin=> drop procedure proc1(); DROP PROCEDURE |
※プロシージャを削除することでシェルスクリプトの削除はされません。