Looker(Google Cloud コア)へのデータベースの接続

Looker(Google Cloud コア)インスタンスがプロビジョニングされると、Google Cloud プロジェクトの [インスタンス] ページに表示されます。インスタンスの URL をクリックして、インスタンスにアクセスして認証します。

Looker(Google Cloud コア)インスタンスにログインしたら、Looker(Google Cloud コア)インスタンスへのデータベース接続を設定できます。

データベース接続を設定する

データ探索を有効にするには、Looker(Google Cloud コア)をデータベースに接続する必要があります。Looker(Google Cloud コア)でサポートされている言語については、サポートされている言語のリストをご覧ください。

次のいずれかの権限を付与されている場合は、Looker(Google Cloud コア)インスタンス内にデータベース接続を作成できます。

Looker(Google Cloud コア)インスタンス内に動的に表示される Looker の設定ガイドに従って、データベースを接続するか、Looker をデータベースに接続ドキュメント ページと言語固有のドキュメント ページに表示されている手順に従います。

Looker(Google Cloud コア)インスタンスがプライベート IP 接続を使用する場合、次のタイプのデータベースに接続するには、ルートまたはプライベート接続を設定する必要があります。

  • Google Cloud 内の別のネットワーク内のデータベース
  • 別のクラウド サービス プロバイダによってホストされるデータベース
  • オンプレミス データベース

プライベート ネットワークと外部サービスの詳細については、Looker(Google Cloud コア)によるプライベート IP ネットワーキングドキュメント ページをご覧ください。

データベース接続を設定すると、LookML プロジェクトを設定できるようになります。

アプリケーションのデフォルト認証情報を使用した BigQuery データベースへの接続

Looker(Google Cloud コア)インスタンスでは、BigQuery 標準 SQL データベースへの接続を設定するときに、アプリケーションのデフォルト認証情報(ADC)を使用して認証できます。ADC を使用する場合、接続は Looker(Google Cloud コア)プロジェクトのサービス アカウントの認証情報を使用してデータベースに対する認証を行います。

BigQuery データベースで ADC を使用するには、Looker インスタンスの [接続設定] ページの [認証] フィールドで [アプリケーションのデフォルト認証情報] を選択します。詳細な手順については、Looker の BigQuery データベースへの接続のドキュメントをご覧ください。

Looker(Google Cloud コア)インスタンスとは異なるプロジェクトにある BigQuery データベースに接続する場合は、追加の設定が必要です。別の Google Cloud プロジェクトの BigQuery データベースでアプリケーションのデフォルト認証情報を使用するセクションをご覧ください。

サービス アカウントの権限借用

Looker(Google Cloud コア)プロジェクトのサービス アカウント以外のサービス アカウントを使用して BigQuery データベースに対する認証を行う場合は、[権限を借用したサービス アカウント] フィールドに別のサービス アカウントまたはカンマ区切りのサービス アカウントのチェーンを入力し、委任リクエスト フローを作成できます。Looker(Google Cloud コア)サービス アカウントはチェーン内の最初のサービス アカウントとして自動的に使用され、フィールドに追加される必要はありません。チェーンの最後のサービス アカウント(権限を借用したサービス アカウントとも呼ばれます)がデータベースで認証されるサービス アカウントです。

サービス アカウントの権限借用を使用する場合は、次の操作を行います。

別の Google Cloud プロジェクトの BigQuery データベースでアプリケーションのデフォルト認証情報を使用する

Looker(Google Cloud コア)インスタンスを格納するプロジェクト外の BigQuery 標準 SQL データベースに対して ADC を使用する手順は、同じプロジェクトでの接続を設定する場合と同じです。ただし、Looker(Google Cloud コア)インスタンスで接続を設定する前に、Looker(Google Cloud コア)プロジェクトのサービス アカウントに次の IAM ロールが必要です。

BigQuery データセットを含むプロジェクトに Looker(Google Cloud コア)サービス アカウントの IAM ロールがまだない場合は、そのプロジェクトでロールを付与するときにサービス アカウントのメールアドレスを使用します。サービス アカウントのメールアドレスを確認するには、Google Cloud コンソールで [IAM] ページに移動し、[Google 提供のロール付与を含める] チェックボックスをオンにします。メールの形式は service-<project number>@gcp-sa-looker.iam.gserviceaccount.com です。そのメールアドレスを使用して、サービス アカウントに適切なロールを付与します。

適切なロールが付与されたら、ADC を使用する手順を行います。

この BigQuery 標準 SQL データベースで ADC を使用できるようになりました。[接続設定] ページで指定されたサービス アカウントに関連付けられたプロジェクトは、請求に使用され、デフォルトのプロジェクトとしても機能します。

アプリケーションのデフォルト認証情報を使用した Cloud SQL データベースへの接続

Looker(Google Cloud コア)インスタンスでは、ADC を使用して Cloud SQL データベース(Cloud SQL for PostgreSQL または Cloud SQL for MySQL)への接続を認証できます。ADC を使用して Cloud SQL データベースに対して認証を行う場合、Cloud SQL データベースが実行されている Google Cloud プロジェクトは、Looker クエリに対して課金されるプロジェクトです。

ADC を使用する Cloud SQL への Looker 接続の場合、ADC はサービス アカウントまたはサービス アカウントのチェーンの権限を借用してデータベースにアクセスします。データベースへの Looker 接続を作成するときに、[IAM データベースのユーザー名] フィールドを使用して、ADC が権限を借用するサービス アカウントまたはサービス アカウントのチェーンを指定します。Looker(Google Cloud コア)インスタンスを作成したときに自動的に作成された Looker サービス アカウントは、チェーン内の最初のサービス アカウントとして自動的に使用され、フィールドに追加される必要はありません。

Looker サービス アカウント以外のサービス アカウントを使用して Cloud SQL データベースに対する認証を行う場合は、別のサービス アカウント、またはカンマ区切りのサービス アカウントのチェーンを [IAM データベースのユーザー名] フィールドに入力して、委任リクエスト フローを作成できます。

チェーンの最後のサービス アカウント(権限を借用したサービス アカウントとも呼ばれます)がデータベースで認証されるアカウントであり、このアカウントを Cloud SQL データベースのユーザーとして追加する必要があります。Looker サービス アカウントをチェーンの最後のサービス アカウントとして使用している場合([IAM database username(s)] フィールドを空白のままにして)は、Looker サービス アカウントを Cloud SQL データベースのユーザーとして追加する必要があります。

ADC を使用して Cloud SQL for PostgreSQL または Cloud SQL for MySQL データベースを Looker に接続する一般的な手順は次のとおりです。

  1. Cloud SQL データベースに権限を借用したサービス アカウントを追加します
  2. Cloud SQL データベースにサービス アカウントの権限借用を設定します
  3. データベースに接続して、Cloud SQL for PostgreSQL または Cloud SQL for MySQL の追加の構成コマンドを実行します。
  4. データベースへの Looker 接続を作成します

権限を借用したサービス アカウントを Cloud SQL データベースに追加する

データベースへの Looker 接続を作成するときに、[IAM データベース ユーザー名] フィールドを使用して、ADC がデータベースで操作を実行するために権限借用するサービス アカウントまたはサービス アカウントのチェーンを指定します。権限借用チェーン内の最後のサービス アカウントは、権限を借用したサービス アカウントとみなされます。

Cloud SQL で ADC を使用するには、権限を借用したサービス アカウントを Cloud SQL データベースに追加する必要があります。

  • デフォルトでは、[IAM データベースのユーザー名] フィールドを空白のままにすると、ADC は Looker サービス アカウントの権限借用を行います。この場合、Looker サービス アカウントは権限を借用したサービス アカウントであるため、Looker サービス アカウントを Cloud SQL データベースに追加する必要があります。Looker サービス アカウントの詳細と、Looker サービス アカウントのメールアドレスを確認する手順については、Looker(Google Cloud コア)インスタンスを作成するドキュメント ページをご覧ください。
  • Looker サービス アカウント以外のサービス アカウントを指定する場合、または [IAM データベースのユーザー名] フィールドにサービス アカウントのチェーンを指定する場合は、権限借用のチェーンの最後のサービス アカウントを Cloud SQL データベースに追加する必要があります。

Cloud SQL データベースにサービス アカウントを追加するには、Cloud SQL 管理者 IAM ロールが必要です。

データベース言語の「IAM ユーザーまたはサービス アカウントをデータベース インスタンスに追加する」の手順に沿って、権限を借用したサービス アカウントを Cloud SQL データベースに追加します。

Cloud SQL データベースにサービス アカウントの権限借用を設定する

データベースに Cloud SQL ユーザーを作成したら、次の手順に沿って、サービスの権限借用のために Cloud SQL データベースを設定する必要があります。

  1. 手順に沿って Cloud SQL Admin API を有効にします
  2. Looker サービス アカウントを含む、チェーン内のすべてのサービス アカウントに、適切な IAM 権限があることを確認してください。
  3. Google Cloud コンソールでの単一ロールの付与の手順を行います。Cloud SQL データベースに追加した、権限を借用したサービス アカウントに、次の Cloud SQL ロールを付与します。

    Looker サービス アカウント以外のサービス アカウントを指定する場合、または [IAM データベースのユーザー名] フィールドにサービス アカウントのチェーンを指定する場合は、チェーン内のすべてのサービス アカウントに次の権限を付与します。

Cloud SQL for MySQL の追加の構成コマンド

Cloud SQL for MySQL の場合は、データベース インスタンスに接続し、Cloud SQL for MySQL データベースで次のコマンドを実行します。

GRANT ALL on DATABASE_NAME.* to 'DATABASE_USER'@'%'

次のように置き換えます。

  • DATABASE_NAME: データベースの名前。
  • DATABASE_USER: Cloud SQL データベースに追加した、権限を借用したサービス アカウントの切り詰められたユーザー名。サービス アカウントの形式は service-<project number>@gcp-sa-looker.iam.gserviceaccount.com です。@ とその後のすべての文字を削除して、ユーザー名を切り詰めます。切り詰めると、ユーザー名は service-<project number> のようになります。

たとえば、サービス アカウントのユーザー名が service-12345678901@gcp-sa-looker.iam.gserviceaccount.com で、データベース名が looker-test の場合、コマンドは次のようになります。

GRANT ALL on looker-test.* to 'service-12345678901'@'%'

Cloud SQL for PostgreSQL の追加の構成コマンド

Cloud SQL for PostgreSQL の場合は、データベース インスタンスに接続し、Cloud SQL for PostgreSQL データベースで次の構成コマンドを実行します。

  • PostgreSQL ドキュメント ページのユーザーとセキュリティのセクションの説明に沿って、データベースに対するユーザー権限を付与します。
  • Looker ドキュメントの PostgreSQL ページの search_path の設定セクションに記載されているように、データベースからメタデータを取得するために使用する Looker SQL Runner の検索パスを設定します。

Looker(Google Cloud コア)への接続を作成する

Looker からデータベースへの接続を作成するには、次の手順に従います。

  1. Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。
  2. [言語] プルダウン メニューから [Google Cloud PostgreSQL] を選択するか、Cloud SQL for MySQL の場合は、[Google Cloud SQL] を選択します。
  3. [認証] セクションで、[アプリケーションのデフォルト認証情報] オプションをクリックします。
  4. [IAM データベースのユーザー名] フィールドに、データベースでアクションを実行するために ADC が権限を借用するサービス アカウントまたはサービス アカウントのチェーンを指定します。

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

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

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

Looker(Google Cloud コア)でサポートされている言語

次の表に、Looker(Google Cloud コア)のデータベース言語のサポートを示します。

方言 サポート対象
Actian Avalanche
いいえ
Amazon Athena
はい
Amazon Aurora MySQL
はい
Amazon Redshift
はい
Apache Druid
いいえ
Apache Druid 0.13+
いいえ
Apache Druid 0.18+
はい
Apache Hive 2.3+
いいえ
Apache Hive 3.1.2+
はい
Apache Spark 3 以降
はい
ClickHouse
はい
Cloudera Impala 3.1+
はい
ネイティブ ドライバを使用した Cloudera Impala 3.1+
いいえ
ネイティブ ドライバを使用した Cloudera Impala
いいえ
DataVirtuality
いいえ
Databricks
はい
Denodo 7
いいえ
Denodo 8
はい
Dremio
いいえ
Dremio 11+
はい
Exasol
いいえ
Firebolt
いいえ
Google BigQuery Legacy SQL
いいえ
Google BigQuery Standard SQL
はい
Google Cloud PostgreSQL
はい
Google Cloud SQL
はい
Google Spanner
はい
Greenplum
いいえ
HyperSQL
いいえ
IBM Netezza
はい
MariaDB
はい
Microsoft Azure PostgreSQL
はい
Microsoft Azure SQL Database
はい
Microsoft Azure Synapse Analytics
はい
Microsoft SQL Server 2008+
いいえ
Microsoft SQL Server 2012+
いいえ
Microsoft SQL Server 2016
いいえ
Microsoft SQL Server 2017+
はい
MongoBI
いいえ
MySQL
いいえ
MySQL 8.0.12+
はい
Oracle
はい
Oracle ADWC
いいえ
PostgreSQL 9.5+
はい
PostgreSQL 9.5 より前
いいえ
PrestoDB
はい
PrestoSQL
はい
SAP HANA 2+
はい
SingleStore
いいえ
SingleStore 7+
はい
Snowflake
はい
Teradata
はい
Trino
はい
Vector
いいえ
Vertica
はい

データベースの設定に関するインストラクション

次の SQL 言語のインストラクションがあります。

次のステップ