はじめに

vsqlでクエリを実行すると、クエリ結果の行数が端末サイズを超える場合にページャ(Pager)機能が有効になります。デフォルトではページャにmoreコマンドが使われ、端末のスクリーンサイズを1ページとしてスクロールする事ができます。

このvsqlのページャを変更する事で、便利な使い方をご紹介します。

使用例

ページャにlessを設定する

使いたいページャをシェルの環境変数”PAGER”に指定します。
これにより、設定したページャを使ってvsqlでのクエリ結果が表示されるようになります。
例として、lessコマンドをページャに指定します。

この設定をする事で、lessコマンドの特徴である「後方スクロール」や「キーワード検索をハイライト表示する」といった機能がクエリの出力結果で使えるようになります。

後方スクロール:「b」コマンド
キーワード検索:「/キーワード」
※その他のlessの機能については、オンラインマニュアル(man less)等をご参照ください。

クエリ結果を表示させない設定

この設定をする事で、クエリ結果を表示させなくなります。
用途として、例えばパフォーマンス測定を行う時に、クエリの処理時間は取得したいものの、クエリの結果表示は不要なケースがあります。このような場合に有効な方法です。
※クエリの処理時間を表示させる\timingコマンドと併用します。

関連情報

vsqlでSQLの実行時間を確認する方法
http://vertica-tech.ashisuto.co.jp/sql-exec-time/

ページャを無効にする(vsqlのセッション内)

シェルの環境変数にページャを設定したものの、vsqlセッション内で操作をしている途中で一時的にページャを無効にしたいケースもあると思います。
そのようなケースでは、以下のコマンドでページャのONとOFFを切り替える事ができます。
1回実行すればOFFになり、もう1回実行すればONになります。
OFFにした場合は、ページャが使われる事なくクエリ結果が最後の行まで一気に表示されます。

ページャを無効にする(vsqlのセッション外)

vsqlコマンドでVerticaデータベースに接続する際、デフォルトではページャが有効な状態でセッションが張られます。これをセッション開始時から無効な状態にするには、以下のように「pager=off」オプションを付けてvsqlコマンドを実行します。

用途として、vsqlコマンドをワンライナーで実行しCSVを出力させるようなケースで有効な方法です。
ページャが有効な状態だとクエリ結果がページャ機能によってスクロール表示されるため、途中で出力が止まってしまうからです。

関連情報

SELECT結果をCSV出力する方法
http://vertica-tech.ashisuto.co.jp/csv-output/

検証バージョンについて

この記事の内容はVertica 9.1で確認しています。