パフォーマンスとクエリの包括的な管理が行えるLooker Marketplaceモデル「Amazon Redshift Administration」を試してみる

2020.03.19

2020年01月に発表されたLooker 7では、「Looker Marketplace」という機能を使って便利なツールやプラグインをスムーズに導入する事が可能になっています。

当エントリでは、その中からAmazon Redshiftにおけるパフォーマンスやクエリの包括的な情報管理が行えるモデル「Amazon Redshift Administration」を紹介します。

目次

 

Modelのインストール

まずはじめにモデルのインストールから。Lookerメニューの「Marketplace」から「Models」を選択。その中にある「Amazon Redshift Administration」を選択します。

機能紹介ページ。左側にある「Install」を選択。

ライセンス同意画面。「Accept」を選択。

インストール内容の選択。「Accept」を選択。

対象となるデータ接続を選択し、「Accept」を選択。

これでモデルがインストールされました。

 

「Amazon Redshift Administration」の内容を確認

導入したモデルは、メニューの「Browse」→「Applications & Tools」を選択することで、

このような形で確認・遷移する事が可能です。

実際に遷移すると、ダッシュボード(Dashboard)とエクスプローラ(Explore)の一覧を確認出来ます。

さぁ、実際にどんなものが見えるのか確認してみましょう!......ってあれ?

諸々がエラー出ていて、見れないようですね...。

 

実は色々と下準備が必要

実はこの機能、利用に際しては上記のインストールだけでは動かない...ということが判明。導入の過程で「パーミッションが必要」とは書いてあったものの、何をどういう形で必要とするのか、までは把握しきれていませんでした。Lookerサポートチーム(Department of Customer Love:DCL)に問い合わせを行い、情報を諸々確認する事が出来ました(感謝!!)ので、以下手順で「必要な対応内容」について解説します。

 

Looker Connectionに関する設定の確認と変更

まずは表示に用いているAmazon Redshiftの接続(Connection)に関する情報の確認と設定を行います。管理メニューから該当のAmazon Redshift接続(Connection)に遷移し、以下2点の内容を確認・設定してください。

接続ユーザーの確認

接続に用いているDBユーザー名を後の手順で利用するために控えておきます。ここでは、仮にlooker_con_userというユーザー名で接続を作成した、と仮定して進めます。

PDTの設定

この手順では、Lookerの派生テーブル(PDT)を活用します。接続設定でこの項目が有効になっていない場合はチェックを入れて有効化しておいてください。また、この際に接続しているスキーマの情報も合わせて記入しておきます。今回の機能活用に用いているDB接続が利用しているスキーマはcmdevioでしたので、この値を書き入れました。

 

Redshift環境に専用ユーザーの設定を追加

今回の機能を活用するには、Amazon Redshiftに対して幾つかの設定を仕込んでおく必要があります。設定すべき内容については以下のドキュメントにまとめられていますので、順を追って実行していきます。

任意のパスワードでユーザーlookerを作成。

# CREATE USER looker WITH PASSWORD 'xxxxXXXXxxxxXXXX';

lookerユーザーに対し、public及び利用スキーマの参照権限を付与。ここでは後者のスキーマはcmdevioでしたのでそれを指定しています。

# GRANT USAGE ON SCHEMA public TO looker;
# GRANT SELECT ON ALL TABLES IN SCHEMA public TO looker;
# GRANT USAGE ON SCHEMA cmdevio TO looker;
# GRANT SELECT ON ALL TABLES IN SCHEMA cmdevio TO looker;

lookerユーザーに対し、information_schemaテーブルの参照権限を付与。

# GRANT SELECT ON TABLE information_schema.tables TO looker;
# GRANT SELECT ON TABLE information_schema.columns TO looker;

一時スキーマ設定: looker_scratchの作成と権限設定。

# CREATE SCHEMA looker_scratch AUTHORIZATION looker;
# ALTER SCHEMA looker_scratch OWNER TO looker;

Amazon Redshiftの検索パス(search_path)にlooker_scratch,schema_of_interestを追加。今回は設定値が含まれるようにするために、該当Amazon Redshiftクラスタのパラメータグループに変更を加えました。(※要クラスタ再起動)

search_path                        
-----------------------------------------------------------
 $user, cmdevio, looker_scratch, schema_of_interest, public
(1 row)

 

DB接続ユーザーに必要な権限を付与

Amazon Redshiftの各種システム系テーブルにおける、Looker Connectionの接続ユーザーへの参照権限を付与。前述の手順で確認したDB接続ユーザー(looker_con_user)に対し、以下のテーブル群の参照権限を付与しておきます。

# GRANT SELECT ON TABLE SVV_TABLE_INFO TO looker_con_user;
# GRANT SELECT ON TABLE STV_WLM_SERVICE_CLASS_CONFIG TO looker_con_user;
# GRANT SELECT ON TABLE STV_TBL_PERM TO looker_con_user;
# GRANT SELECT ON TABLE STV_BLOCKLIST TO looker_con_user;

ちなみにこれらのテーブル群は、該当するExploreを使って実際に探索を行ってみた際に出たエラーを元に、1個ずつ特定・洗い出ししていきました。

 

「Amazon Redshift Administration」の内容を確認(再)

さて、これで準備が整いました。改めて確認してみましょう。

Redshift Admin」ダッシュボードでは、データロードに関する情報やテーブルの件数・容量に関する情報などが確認出来ます。

Redshift Performance」ダッシュボードでは、クエリやモデルに関する分析情報を確認出来ます。

Redshift Query Inspection」ダッシュおボードでは、テーブルやクエリプランに関する詳細な情報を確認出来ます。

 

まとめ

という訳で、Looker7の新機能モデル「Amazon Redshift Administration」に関する導入内容の紹介でした。

Amazon Redshiftの運営管理におけるお役立ち情報をこのような形でLookerで集中管理・確認する体制を整えておくことで、Amazon Redshiftでの分析作業がより一層捗るのではないでしょうか。Amazon Redshift&Lookerの組み合わせを活用されている、また導入を検討されている方であれば是非ともご利用されてみてはいかがでしょうか。