LookerでAmazon Redshiftのデータベース接続を作成 #looker

2019.05.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Lookerではビューやダッシュボードを作成するにはモデル(Model)を用意しておく必要があり、またモデルを利用するには対応するデータを取得するためのデータベース接続を用意しておかねばなりません。当エントリではLookerでの探索やビュー作成の第1歩となる「データベース接続」の作成について見ていきたいと思います。

Lookerでデータベース接続を作成(Amazon Redshiftの場合)

"Amazon Redshiftの場合"と書いていますが、基本的にはどのデータベースでも操作感は変わりません。メニューの[Admin]から[Database]→[Connecsions]を選択。

DB接続の新規作成画面に遷移します。下記の接続情報については、一般的なデータソースに於ける設定値を入力、指定します。

  • Name:任意の識別可能な接続名
  • Dialect:任意のデータベース・データソース
  • Host:Port:接続対象となるホスト名&ポート番号
  • Database:接続データベース名
  • Username:データベース接続ユーザー名
  • Password:データベース接続パスワード
  • Schema:データベース接続スキーマ名

ひとまず上記の基本的な情報のみ入力した状態で接続確認を行ってみます。[Test These Settings]を押下して接続出来ることを確認の後、[Add Connection]を押下。

Amazon Redshiftの接続が作成されました。

一覧項目にある[Test]を押下してみると、Looker絡みの少し詳しい情報も合わせる形で結果が出力されています。

その他詳細設定項目について

上記操作では基本的な設定値のみで接続を作成しましたが、Lookerではこの他にも幾つか設定を行う事が可能となっています。

Persistent Derived Tables

このチェックを有効にすると、Persistent Derived Table(PDT:永続化派生テーブル)の機能を利用出来るようになります。こちらの概念に関する詳細な解説は以下をご参照ください。

このチェックを有効にすることで[Temp Databas]フィールドと[PDT Overrides]列が表示されるようになります。Lookerは、選択したデータベースの方言がPDTの使用をサポートしている場合にのみ、このオプションを表示します。

Additional Params

必要に応じて、JDBC接続に関する追加パラメータを含める事が出来ます。

PDT And Datagroup Maintenance Schedule

Lookerがデータグループと永続的な派生テーブル(sql_trigger_valueという値に基づく)を、どのタイミングで再生成または削除するか、チェックを行うタイミングを表現するcron式を記載します。

SSL/Verify SSL Cert

Lookerとデータベース間の接続に於いて、SSL暗号化を使用するか否かを選択。SSLは、データを保護するために使用できる唯一の選択肢です。他の安全なオプションについては下記のドキュメントをご参照ください。

「Verify SSL Cert」は接続で使用されているSSL証明書の検証を要求するかどうかを選択します。確認が必要な場合は、SSL証明書に署名したSSL認証局(CA)がクライアントの信頼できる発行元のリストから取得する必要があります。 CAが信頼できる発行元ではない場合、データベース接続は確立されません。

Max Connections

Lookerがデータベースとの間で確立できる最大接続数を設定。殆どの場合、Lookerはデータベースに対して実行出来る同時クエリの数を設定しています。また、Lookerはクエリの強制終了用に最大3つの接続も予約しています。この値は慎重に設定する必要があります。値が高すぎる場合はデータベースに負担を掛ける可能性があり、小さすぎる場合は少数の接続を共有しなければなりません。いずれにしても、極端な設定値での挙動はユーザにとっては遅く感じてしまう挙動となるかも知れません。

一旦はデフォルト値として問題は無いかと思われます。データベース設定によって接続が制限されている場合は、[最大接続数]の値がデータベースの制限以下であることを確認してください。ちなみに今回のエントリで接続を行うAmazon Redshiftについては現状、最大値は500となっています。

Connection Pool Timeout

ユーザーが[最大接続数]設定よりも多くの接続を要求した場合、要求は他のユーザーが実行される前に他のユーザーが完了するのを待つことになりますが、その際にリクエストが待機する最大時間をここで設定します。

SQL Runner Precache

Lookerが機能として備えている「SQL Runner」では、接続とスキーマを選択するとすぐにすべてのテーブル情報がプリロードされます。この機能は、Looker上で利用出来るSQL実行ツールのようなものと考えれば良いでしょう。SQL Runnerに関する詳細は以下ドキュメントをご参照ください。

この設定を有効にすることにより、SQL Runnerは、テーブル名をクリックするとすぐにテーブルの列をすばやく表示出来るようになります。ただし、多数のテーブルまたは非常に大きいテーブルを含む接続およびスキーマの場合は、SQL Runnerにすべての情報を事前にロードさせたくない場合があります。その場合、この設定値をOFF(接続に対してSQL Runnerの事前ロードを無効とする)にすることで、テーブルが選択されている場合にのみSQL Runnerがテーブル情報をロードするようになります。

Database Time Zone

データベースが時間ベースの情報を格納するタイムゾーン。Lookerはユーザーの時間値を変換できるようにこれを知っておく必要があります。

Query Time Zone

クエリ実行時に照会時に日時を表示するタイムゾーン。

まとめ

というわけで、Lookerに於けるデータベース接続の作成を、Amazon Redshiftを例にして行ってみた内容のご紹介でした。当エントリではサラリと概要レベルでの言及に留めましたが、PDT(永続的派生テーブル)周りについては作業やパフォーマンスの効率化に繋がりそうな内容となっているので別途エントリを改めて深掘りしてみたいところですね。