PostgreSQL

これらのインストラクションを使用するダイアレクト

このページで説明しているデータベース設定要件は、以下の言語に共通です。

  • PostgreSQL
  • Google Cloud SQL for PostgreSQL
  • Microsoft Azure PostgreSQL
  • PostgreSQL 向け AlloyDB
  • Amazon Aurora PostgreSQL
  • Amazon RDS for PostgreSQL

Google Cloud SQL for PostgreSQL の場合、Looker(Google Cloud コア)は、認証方法としてアプリケーションのデフォルト認証情報(ADC)を提供しています。詳細については、Looker(Google Cloud コア)ドキュメントをご覧ください。

Looker では、AlloyDB for PostgreSQL、Amazon RDS for PostgreSQL、Amazon Aurora PostgreSQL のインテグレーションがサポートされています。これらの言語の接続を作成するには、[新しい接続] ページの [言語] プルダウンから [PostgreSQL 9.5+] を選択します。

注: PostgreSQL on Heroku については、Heroku のドキュメントをご覧ください。

ネットワークトラフィックの暗号化

Looker アプリケーションとデータベース間のネットワーク トラフィックを暗号化することをおすすめします。セキュアなデータベースアクセスを可能にするドキュメント ページに記載されているオプションのいずれかを検討してください。

SSL 暗号化の使用を検討している場合は、PostgreSQL のドキュメントをご覧ください。

ユーザーとセキュリティ

データベースでアクションを実行するには、Looker がデータベース上のユーザーアカウントを持っている必要があります。

Looker(Google Cloud コア)インスタンスで ADC を使用する場合は、Cloud SQL データベースに追加したサービス アカウントのユーザー名の権限を借用します。サービス アカウントのユーザー名は service-<project number>@gcp-sa-looker.iam.gserviceaccount.com の形式になります。サービス アカウントのユーザー名が .gserviceaccount.com で終わる場合は、ユーザー名の .gserviceaccount.com 部分を削除します。切り捨てられ後、ユーザー名は service-<project number>@gcp-sa-looker.iam のようになります。

Looker が使用するデータベース ユーザーを構成するには、データベースで次の手順を行います。

  1. データベース ユーザーとパスワードを作成します。

    CREATE USER USERNAME WITH ENCRYPTED PASSWORD 'PASSWORD';
    
  2. Looker がデータベースで操作を実行できるように、データベース ユーザーに権限を付与します。

    GRANT CONNECT ON DATABASE DATABASE_NAME to USERNAME;
    \c DATABASE_NAME
    GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO USERNAME;
    GRANT SELECT ON ALL TABLES IN SCHEMA public TO USERNAME;
    
  3. public 以外のスキーマを使用している場合は、次のコマンドを実行して Looker に使用権限を付与します。

    GRANT USAGE ON SCHEMA SCHEMA_NAME TO USERNAME;
    
  4. public スキーマに今後追加するテーブルを Looker ユーザーが確実に利用できるようにするには、次のコマンドを実行します。

    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON tables TO USERNAME;
    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON sequences TO USERNAME;
    

ご利用の設定によっては、上記のコマンドを変更する必要がある場合があります。Looker ユーザーが今後の権限を必要とするテーブルを別のユーザーまたはロールが作成している場合、Looker ユーザーの権限の付与を適用する対象のロールまたはユーザーを指定する必要があります。

ALTER DEFAULT PRIVILEGES FOR USER ANOTHER_USERNAME IN SCHEMA SCHEMA_NAME GRANT SELECT ON tables TO USERNAME;
ALTER DEFAULT PRIVILEGES FOR ROLE TARGET_ROLE IN SCHEMA SCHEMA_NAME GRANT SELECT ON sequences TO USERNAME;

たとえば、web_app ユーザーがテーブルを作成し、looker ユーザーがそれらのテーブルを使用できるようにするには、GRANT ステートメントを実行して、looker ユーザーに web_app ユーザーにより作成されたそのテーブルに対する権限を付与する必要があります。この場合の対象ロールまたはユーザーは web_app ユーザーです。つまり、web_app によって作成されたテーブルに対する権限を変更して、looker ユーザーにテーブルの読み取り権限を付与します。以下に例を示します。

ALTER DEFAULT PRIVILEGES FOR USER web_app IN SCHEMA public GRANT SELECT ON tables TO looker;

詳細については、PostgreSQL のウェブサイトの ALTER DEFAULT PRIVILEGES をご覧ください。

一時的スキーマ設定

自己ホスト型Postgres

Lookerユーザーによって所有されるスキーマを作成します。

CREATE SCHEMA SCHEMA_NAME AUTHORIZATION USERNAME;

Amazon RDS上のPostgres

スクラッチスキーマを作成します。

CREATE SCHEMA SCHEMA_NAME;

スクラッチスキーマの所有権をLookerユーザーに変更します。

ALTER SCHEMA SCHEMA_NAME OWNER TO USERNAME;

search_path の設定

Looker をデータベースに接続する前に、Looker SQL Runner がデータベースから特定のメタデータを取得するために使用できる適切な search_path を設定する必要があります。

ALTER USER USERNAME SET search_path TO '$user',SCHEMA_NAME,SCHEMA_NAME_2,SCHEMA_NAME_3
                                                            ^^^^^^^^^^^^^^^^^^
                                                            ^^^^^^^^^^^^^^^^^^
                                             include a comma-separated list of
                                            all schemas you'll use with Looker

データベースへの Looker 接続の作成

Looker からデータベースへの接続を作成する手順は次のとおりです。

  1. Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。
  2. [言語] プルダウン メニューから、データベース言語の名前を選択します。AlloyDB for PostgreSQL 言語の場合は、[PostgreSQL 9.5+] を選択します。

  3. 接続の詳細を入力します。設定の大部分は、ほとんどのデータベース言語に共通するものです。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  4. 接続が成功したことを確認するには、[テスト] をクリックします。トラブルシューティング情報については、データベース接続のテストのドキュメント ページをご覧ください。

  5. これらの設定を保存するには、[接続] をクリックします。

機能のサポート

一部の機能については、Looker でサポートするには、データベース言語が同じ機能に対応している必要があります。

PostgreSQL 9.5 以降では、Looker 24.14 の時点で、次の機能がサポートされています。

機能 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
対称集計
派生テーブル
永続的な SQL 派生テーブル
永続的なネイティブ派生テーブル
安定したビュー
クエリの強制終了
SQL ベースのピボット
タイムゾーン
SSL
Subtotals
JDBC の追加パラメータ
大文字と小文字を区別
ロケーション タイプ
リストのタイプ
パーセンタイル
個別のパーセンタイル
SQL Runner の表示プロセス
SQL Runner の説明テーブル
SQL Runner 表示インデックス
SQL Runner Select 10
SQL ランナーの数
SQL の説明
Oauth 認証情報
いいえ
コンテキスト コメント
接続プーリング
HLL スケッチ
いいえ
集計認識
増分PDT
ミリ秒
マイクロ秒
マテリアライズド ビュー
いいえ
Approximate Count Distinct
いいえ

Google Cloud PostgreSQL では、Looker 24.14 の時点で、次の機能がサポートされています。

機能 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
対称集計
派生テーブル
永続的な SQL 派生テーブル
永続的なネイティブ派生テーブル
安定したビュー
クエリの強制終了
SQL ベースのピボット
タイムゾーン
SSL
Subtotals
JDBC の追加パラメータ
大文字と小文字を区別
ロケーション タイプ
リストのタイプ
パーセンタイル
個別のパーセンタイル
SQL Runner の表示プロセス
SQL Runner の説明テーブル
SQL Runner 表示インデックス
SQL Runner Select 10
SQL ランナーの数
SQL の説明
Oauth 認証情報
いいえ
コンテキスト コメント
接続プーリング
HLL スケッチ
いいえ
集計認識
増分PDT
ミリ秒
マイクロ秒
マテリアライズド ビュー
いいえ
Approximate Count Distinct
いいえ

Microsoft Azure PostgreSQL では、Looker 24.14 の時点で、次の機能がサポートされています。

機能 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
対称集計
派生テーブル
永続的な SQL 派生テーブル
永続的なネイティブ派生テーブル
安定したビュー
クエリの強制終了
SQL ベースのピボット
タイムゾーン
SSL
Subtotals
JDBC の追加パラメータ
大文字と小文字を区別
ロケーション タイプ
リストのタイプ
パーセンタイル
個別のパーセンタイル
SQL Runner の表示プロセス
SQL Runner の説明テーブル
SQL Runner 表示インデックス
SQL Runner Select 10
SQL ランナーの数
SQL の説明
Oauth 認証情報
いいえ
コンテキスト コメント
接続プーリング
HLL スケッチ
いいえ
集計認識
増分PDT
ミリ秒
マイクロ秒
マテリアライズド ビュー
いいえ
Approximate Count Distinct
いいえ