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 をデータベースに接続するのドキュメント ページをご覧ください。

次のいずれかのオプションで Looker(Google Cloud コア)接続を設定するには、追加の手順が必要です。

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

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

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

Looker(Google Cloud コア)インスタンスが BigQuery データセットで永続的な派生テーブルを使用する場合は、Looker サービス アカウントBigQuery データ編集者 IAM ロールも付与する必要があります。

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 ロールが付与されている必要があります。

Looker(Google Cloud コア)サービス アカウントに、BigQuery データセットを含むプロジェクトで 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 データベースの認証を行う場合、Looker クエリの課金対象となるプロジェクトは、Cloud SQL データベースが実行されている Google Cloud プロジェクトです。

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> のようになります。

たとえば、サービス アカウントのユーザー名が [email protected] で、データベース名が 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 コア)から Cloud SQL データベースへの接続を作成する

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

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

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

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

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

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

BigQuery での OAuth 認証の構成

Looker(Google Cloud コア)インスタンス上の BigQuery データベースへの接続で OAuth 認証オプションを選択すると、Looker 管理者が Looker(Google Cloud コア)インスタンスの作成時に使用した OAuth アプリケーション認証情報が自動的に使用されます。

この接続に別の OAuth 認証情報を手動で入力する場合は、[OAuth 認証情報を手動で構成する] 切り替えボタンを有効にして、[OAuth クライアント ID] フィールドと [OAuth クライアント シークレット] フィールドに入力します。OAuth 認証情報を手動で入力しても、Looker(Google Cloud コア)インスタンスの作成時に使用された認証情報は変更または更新されません。

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+ with Native Driver
いいえ
Cloudera Impala with Native Driver
いいえ
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 pre-9.5
いいえ
PrestoDB
PrestoSQL
はい
SAP HANA 2+
SingleStore
いいえ
SingleStore 7+
Snowflake
はい
Teradata
はい
Trino
Vector
いいえ
Vertica

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

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

次のステップ