Tableau Desktopはビジュアル分析ツールです。 ドラッグ&ドロップ操作でデータをグラフ化してデータの分析をサクッとできる点が魅力です。 CSVファイルやExcelファイルといったようなローカルファイルデータの他、商用版であるTableau Desktopでは様々なデータベースの接続をサポートします。
今回Tableau Desktopを利用できる機会があったので、PG-StromがセットアップされているPostgrSQLノードに接続してみました。
接続の流れ
まず、PostgreSQLコネクターのページを確認します。
ここで重要なのは、PostgrSQL 12以降はJDBCドライバーを使ってデータベースサーバーと接続するという点です。Windows版Tableau Desktopは対応するJDBCドライバーは自動的に組み込まれるようですが、私は普段macOSをつかっているので書かれているようにドライバーをダウンロードして~/Library/Tableau/Drivers
にコピーしておく必要があるようです。
Java 8 JDBC ドライバーをサイトからダウンロードして、次のように指定されたディレクトリーにコピーします。
% cp postgresql-42.5.4.jar ~/Library/Tableau/Drivers
コピーしたあとはTableau Desktopを再起動して、サイドバーの「サーバーへ」の中から(出て来ない場合はその他から)PostgreSQLを選択し...
PostgreSQLの接続情報(ホスト名かIPアドレス、ユーザー、パスワード、DB名)を入力して接続すれば、Tableau Desktopによる分析のデータソースとして、PostgreSQLが使えます。
- 注...当然ながらpg_hba.confに接続の許可設定 が必要です。PostgreSQLのcreateuserコマンドなどを使って、専用のユーザーを作ることをおすすめします。Tableauではデータソースは参照のみで良ければDBの作成権限をこのユーザーに付与する必要はありませんが、TableauからSQLサーバーに対してカスタムクエリを実行する必要がある場合は作成権限を割り振る必要があります。
データを使って分析してみる
次例は、私が管理しているサーバーのSSHサーバーのログデータを分析しているところです。SSHdのログを見ると色々な国、ユーザー、IPアドレスからログインアタックされていることがわかります。このログをArrow形式でPG-Stromノードに登録しています。
まずはどのユーザーでどれくらいの回数ログインアタックがあったかグラフ化したものです。色分けされているのはIPアドレス別の累積グラフになっているためです。やはり圧倒的にrootユーザーでのログイン試行が多いことがわかります。
次はグラフではなく表形式にしてみた場合です。このサーバーは設置から2、3日程度しか経過していないのですが、早速色々なIPアドレスからログインアタックされていることがわかりました。
いつ、どのユーザーでログイン試行がされたかを表にするのも本当に簡単でした。
ログインアタックされた割合を円グラフにすると
というわけで、Tableau DesktopでPG-Stromを導入したPostgreSQLとの接続、そのソースを使ったデータ分析も問題ないことがわかりました。
試した結果、Tableau DesktopはPG-Stromのarrow_fdwを介した、PostgreSQLの外部テーブルにも対応しているようです。 大量のデータをArrow形式で取り扱えば、更に快適にTableau Desktopを使った分析ができるのではないかと思います。