概要
本ページでは、Looker内にGoogle BigQuery Standard SQLまたはGoogle BigQuery Legacy SQLへの接続を設定する方法を説明しています。
Google BigQuery Standard SQLまたはGoogle BigQuery Legacy SQLの接続を設定する一般的な手順は次のとおりです。
- Googleプロジェクトへのアクセスが可能なサービスアカウントを作成し、JSON Credentials Certificateをダウンロードします。
- 永続的派生テーブルを格納するための一時的なデータセットを作成します。
- データベースへのLookerの接続を設定します。
- 接続をテストします。
BigQuery接続にOAuthを使用する場合は、LookerへのGoogle BigQueryの接続の設定に進むことができます。
サービスアカウントの作成およびJSON資格情報のダウンロード
サービスアカウントを作成するには、Google Cloudの管理者権限が必要です。サービスアカウントの作成およびプライベートキーの生成に関するドキュメンテーションはGoogle社が提供しています。
Google CloudプラットフォームAPIマネージャーの資格情報ページを開き、必要に応じてプロジェクトを選択します。
[Create credentials]をクリックし、[Service account]を選択します。
新しいサービスアカウントの名前を入力し、必要に応じて説明を追加して[Create]をクリックします。
サービスアカウントには、Google BigQueryで事前定義されたロールが2つ必要です。
- [BigQuery > BigQuery Data Editor]
- [BigQuery > BigQuery Job User]
[Select A Role]フィールドで最初のロールを選択し、次に[ADD ANOTHER ROLE]をクリックして2つ目のロールを選択します。
両方のロールを選択したら、[CONTINUE]をクリックします。
[CREATE KEY]をクリックします。
[JSON]を選択して[CREATE]をクリックします。
JSONキーがコンピューターに保存されます。保存した場所は必ず覚えておいてください。ダウンロード先を控え、[CLOSE]をクリックします。
[DONE]をクリックします。
サービスアカウントに対応するメールアドレスを見つけます。LookerからBigQueryへの接続を設定する上で必要となります。
永続的派生テーブルの一時的なデータセットの作成
BigQuery接続の永続的な派生テーブル(PDT)を有効にすると、Lookerは[Temp Database]フィールドを表示します。このフィールドには、LookerでPDTの作成に使用されるデータセットの名前を入力します。このデータベースまたはスキーマには、適切な書き込み権限を前もって設定しておく必要があります。
Google Cloud BigQueryコンソールを使って一時データセットを設定できます。
OAuthを使用するGoogle BigQuery接続では、PDTはサポートされません。
Google Cloud BigQueryコンソールを使用した一時データセットの作成
この手順はGoogle Cloud BigQueryコンソールに当てはまります。
Google Cloud BigQueryコンソールを開き、プロジェクトを選択します。[CREATE NEW DATASET]ボタンをクリックします。
データセットにID(通常は
looker_scratch
)を付与し、[Data location](オプション)、[Default table expiration]、および暗号化キー管理ソリューションを選択します。[Create dataset]をクリックします。
LookerでのBigQuery接続の設定
Lookerの[管理]セクションで、[接続]を選択して、[New Connection]をクリックします。
接続の詳細を入力します。この設定の大部分は、ほとんどのデータベースダイアレクトと共通であり、Lookerをデータベースに接続のドキュメンテーションページで説明されています。以下は、BigQueryに固有の設定です。
- [Dialect]:[Google BigQuery Standard SQL]または[Google BigQuery Legacy SQL]を選択します。
[Project ID]:Google Cloud PlatformのプロジェクトID。
[Dataset]:使用する予定のデフォルトのデータセット名です。テーブルにデータセット名が指定されていない場合には、ここに記述されているデータセット内に存在するものと見なされます(このプロジェクトの他のデータセットをモデルとすることもできます)。この名前は、BigQueryデータベース内のデータセット名と一致する必要があります。
- [Use OAuth]:このボックスを選択すると、各LookerユーザーはGoogle BigQueryに認証されるようになり、LookerはユーザーのBigQueryアカウントを使ってデータベースに対してクエリを実行できるようになります。BigQuery接続のためにOAuthを実装する方法の詳細については、このページのBigQuery接続のためのOAuthの設定のセクションを参照してください。
- [Service Account Email]:前の手順で確認したサービスアカウントのメールアドレスです。OAuthを使用するBigQuery接続ではこのフィールドは使用できません。
- [Service Account JSON/P12 File]:前の手順でダウンロードしたサービスアカウントの証明書ファイルです。OAuthを使用するBigQuery接続ではこのフィールドは使用できません。
- [Password]:レガシーの.p12資格情報ファイルを使用する場合は、.p12資格情報ファイルのパスワードを入力します。JSON資格情報ファイルを使用する場合は、このフィールドを空のままにします。OAuthを使用するBigQuery接続ではこのフィールドは使用できません。
- [Additional Params]:BigQueryラベルなどの付加的なJDBCパラメーターを追加します(詳細については、このドキュメンテーションページのBigQuery接続のジョブラベルとコンテキストコメントセクションを参照してください)。以下に、サポートされている他のパラメーターをいくつか示します。
connectTimeout
:接続待機時間(ミリ秒)。デフォルトは240000です。readTimeout
:読み取り待機時間(ミリ秒)。デフォルトは240000です。rootUrl
:プライベートネットワークの中にBigQueryインスタンスがある場合、デフォルトのパブリックエンドポイント以外の代替エンドポイントをBigQuery接続用に指定してください。
- [Temp Dataset]:前の手順で作成した、永続的派生テーブルを書き込むためのBigQueryデータセットです。OAuthを使用するBigQuery接続ではPDTがサポートされておらず、このフィールドは使用できません。
- [Max Billing Gigabytes]:制限しない場合は空白のままにします。](https://cloud.google.com/bigquery/pricing#high-compute)こちらで[価格設定の詳細をご覧ください。
- [Max Connections]:最初の設定ではデフォルト値のままで問題ありません。この設定の詳細については、Lookerをデータベースに接続のドキュメントページの最大接続セクションをお読みください。
- [Connection Pool Timeout]:最初の設定ではデフォルト値のままで問題ありません。この設定の詳細については、Lookerをデータベースに接続のドキュメントページの接続プールタイムアウトセクションをお読みください。
- [SQL Runner Precache]:SQL Runnerでテーブルの情報を事前に読み込むのではなく、テーブルを選択したときにのみテーブルの情報が読み込まれるようにするには、このオプションのチェックを外してください。この設定の詳細については、Lookerをデータベースに接続のドキュメントページのSQL Runnerプレキャッシュセクションをお読みください。
- [Disable Context Comment]:このオプションは、BigQuery接続のコンテキストコメントを無効にします。BigQuery接続のコンテキストコメントはデフォルトで無効になっています。コンテキストコメントはGoogle BigQueryのキャッシュ機能を無効にし、キャッシュパフォーマンスに悪影響を及ぼす可能性があるからです。BigQuery接続では、SQLクエリコメントの代わりにジョブラベルを使用することをお勧めします。詳細については、このドキュメンテーションページのBigQuery接続のジョブラベルとコンテキストコメントセクションを参照してください。
- [Database Time Zone]:BigQueryのデフォルトのタイムゾーンは協定世界時(UTC)です。ここで指定するタイムゾーンは、BigQueryのタイムゾーン設定と一致している必要があります。
BigQuery接続のジョブラベルとコンテキストコメント
BigQuery接続では、LookerはBigQueryジョブラベルの形式でクエリコンテキストを送信します。デフォルトでは、LookerはBigQuery接続で次のコンテキストラベルキーを送信します。
looker-context-user_id
:Lookerインスタンスの各ユーザーの一意の識別子。このユーザーIDを、[管理]メニューの[ユーザー]ページにあるユーザーIDと一致させることができます。looker-context-history_id
:Lookerインスタンスによりデータベース上で実行される各クエリの一意の識別子。これは、[クエリ]ページの各クエリの[詳細]に表示されているものと同じ履歴IDです。looker-context-instance_slug
:クエリを発行したLookerインスタンスのID番号。必要に応じ、Lookerのサポートはこの情報を使用して、トラブルシューティングを支援できます。
[接続]ページの[Additional Params]テキストフィールドを使用するにより、LookerがBigQuery接続で各クエリと一緒に送信する付加的なジョブラベルを設定することができます。[Additional Params]フィールドで、さらにJDBCパラメーターlabels
を追加し、URLエンコードされたkey=value
ペアのコンマ区切りのリストを指定します。以下を[Additional Params]フィールドに追加する例を示します。
labels=this%3Dconnection-label,that%3Danother-connection-label
%3D
は=
のURLエンコードです。これにより、LookerがBigQueryデータベースに送信するすべてのクエリに、デフォルトのLookerコンテキストラベルに加えて、次の2つのラベルが追加されます。
this
:connection-label
that
:another-connection-label
BigQueryには、ジョブラベルに対する制限があることに留意してください。
- コンテキストラベルと同じキーを持つ接続ラベルは無視されます。
- 接続ラベルとコンテキストラベルの組み合わせが計64ラベルという上限を超過する場合、合計ラベル数が64以下になるまで、コンテキストラベルが最初にドロップされ、次に接続ラベルがドロップされます。
Lookerは、コンテキストラベルがBigQueryのラベル有効性要件すべてに準拠していることを確認しますが、接続ラベルの有効性はチェックしません。無効な接続ラベルを設定すると、クエリが失敗する可能性があります。
Lookerがデフォルトで送信するBigQueryジョブラベル(looker-context-user_id
、looker-context-history_id
、looker-context-instance_slug
)は、BigQuery以外のデータベースダイアレクトでLookerがSQLクエリに添付するSQLコンテキストコメントに相当するものです。BigQuery接続では、コンテキストコメントはBigQueryのキャッシュ機能を無効にし、キャッシュパフォーマンスに悪影響を及ぼす可能性があるため、デフォルトで無効になっています。BigQuery接続の[Disable Context Comment]設定の選択を解除することで、BigQuery接続のコンテキストコメントを有効にできます。BigQueryのキャッシュを使用できるようにするため、[Disable Context Comment]のデフォルト設定を維持することをお勧めします。しかし、BigQuery接続の[Disable Context Comment]オプションの選択を解除する場合、LookerはSQLコンテキストコメントとBigQueryジョブラベルをデータベースに送信します。次の画像は、SQLコンテキストコメントが有効にされたBigQueryデータベースのSQL Runnerクエリを示しています。LookerがSQLコンテキストコメントとBigQueryジョブラベルの両方をデータベースに送信し、それらに同じ情報が含まれていることを確認できます。
BigQuery接続でのOAuth
LookerではGoogle BigQuery接続のOAuthがサポートされています。つまり、各Lookerユーザーは各自のGoogle OAuth資格情報を使用してGoogleに認証でき、データベースでのクエリの実行をLookerに許可できます。
OAuthはデータベース管理者に以下を許可します。
- データベースに対してどのLookerユーザーがクエリを実行しているかを監査する
- Googleの権限を使用したロールベースのアクセス制御を実施する
- Google BigQueryにアクセスするすべてのプロセスとアクション用に、複数の場所にBigQueryIDとパスワードを埋め込む代わりにOAuthトークンを使用する
OAuthを使用したBigQuery接続について以下の点に注意してください。
- データベース管理者がBigQuery OAuthクライアント資格情報を変更すると、ユーザーが所有するすべてのスケジュールやアラートに影響が及びます。管理者がBigQuery OAuthクライアント資格情報を変更した場合、ユーザーは再ログインする必要があります。また、ユーザーはユーザープロファイルアカウントページからLookerの[Account]ページに移動してGoogleにログインすることもできます。
- OAuthを使用するBigQuery接続は「ユーザーごと」であり、キャッシュポリシーもまたクエリごとではなくユーザーごとです。したがってLookerでは、キャッシュ期間内に同じクエリが実行された場合、キャッシュされた結果を常に使用するのではなく、キャッシュ期間内に同一ユーザーが同じクエリを実行した場合にのみ、キャッシュされた結果が使用されます。キャッシュの詳細については、データグループによるクエリのキャッシングとPDTの再構築のドキュメンテーションページを参照してください。
- 永続的な派生テーブル(PDT)はサポートされていません。
- 管理者は、別のユーザーとしてsudoを実行する場合にそのユーザーのOAuth認証トークンを使用します。
sudo
コマンドの使用法については、ユーザーのドキュメンテーションページを参照してください。
OAuthに対応したBigQueryデータベースプロジェクトの設定
以降のセクションでは、OAuth資格情報を生成する方法とOAuth同意画面を設定する方法について説明します。プロジェクト内の別のアプリケーション用にOAuth同意画面をすでに設定している場合は、別の同意画面を作成する必要はないでしょう。プロジェクト内のすべてのアプリケーションに対して1つの同意画面を設定します。
OAuth資格情報とOAuth同意画面は、Google Cloud Platform Consoleで設定する必要があります。Googleの一般的な説明は、Google CloudサポートサイトとGoogle Dev Consoleサイトにあります。
どんなユーザーがLookerでBigQueryデータにアクセスするか、またBigQueryデータがパブリック/プライベートのどちらであるかによって、OAuthが最適な認証方法ではないことがあります。同様に、どんなデータがユーザーからリクエストされるか、またLookerを使用するようGoogleに認証するときにユーザーデータへのアクセス権限がどの程度必要かによっては、LookerでGoogleによる検証が必要となることがあります。検証の詳細については、このページのGoogle OAuth資格情報の生成のセクションを参照してください。
Google OAuth資格情報の生成
[Select a project]ドロップダウンでBigQueryプロジェクトに移動します。これにより、プロジェクトダッシュボードが表示されます。
左側のメニューで[APIs & Services]ページを選択します。次に[Credentials]をクリックします。[Credentials]ページで[Create credentials]ボタンの下向き矢印をクリックし、ドロップダウンから[OAuth client ID]を選択します。
GoogleはOAuth同意画面を設定することを求めています。これにより、管理者がOAuth資格情報を生成する前に、ユーザーは各自のプライベートデータへのアクセス権限を付与する方法を選択できます。OAuth同意画面を設定するには、このページのOAuth同意画面の設定のセクションを参照してください。
OAuth同意画面がすでに設定されている場合は、Googleが[Create OAuth client ID]ページを表示します。このページでは、BigQueryからLookerへの接続で使用するOAuthクライアントIDとシークレットを作成できます。
アプリケーションの種類として[Web application]を選択します。ページが展開されたら、[Name]フィールドにアプリケーションの名前(Lookerなど)を入力します。
[Authorized JavaScript origins]フィールドに、LookerインスタンスのURLを入力します。このとき
https://
も含めてください。次に例を示します。
- Lookerがインスタンスをホストする場合:
https://<instancename>.looker.com
- 顧客がホストしているLookerインスタンスの場合:
https://looker.<mycompany>.com
- Lookerインスタンスにポート番号が必要な場合:
https://looker.<mycompany>.com:9999
[Authorized redirect URIs]フィールドに、LookerインスタンスのURLを入力します。このとき末尾に
/external_oauth/redirect
を含めてください。例:https://<instancename>.looker.com/external_oauth/redirect
またはhttps://looker.<mycompany>.com:9999/external_oauth/redirect
。[Create]をクリックします。クライアントIDとクライアントシークレットが表示されます。
クライアントIDとクライアントシークレットの値をコピーします。これらの値は、LookerでBigQuery接続用にOAuthを設定するときに必要となります。
OAuth同意画面の設定
プロジェクト内の別のアプリケーション用にOAuth同意画面をすでに設定している場合は、このオプションは表示されません。OAuth資格情報をすでに生成している場合は、LookerでOAuthを使用するBigQuery接続を設定するための手順に進むことができます。
GoogleはOAuth同意画面を設定することを求めています。これにより、ユーザーは各自のプライベートデータへのアクセス権を付与する方法を選択でき、組織の利用規約とプライバシーポリシーへのリンクが表示されます。
左側のメニューで[OAuth consent screen]ページを選択します。OAuth同意画面を設定する前に、このアプリケーションを利用可能にするユーザーのタイプを選択する必要があります。選択する内容によっては、アプリケーションでGoogleによる検証が必要となることがあります。
ユーザーの種類を選択して[Create]をクリックします。[OAuth consent screen]ページが表示されます。
プロジェクト内のすべてのアプリケーション(内部およびパブリックアプリケーションの両方)に対してこの画面を設定できます。
以下のいずれかに該当する場合は、パブリックアプリケーションに対してGoogleによる検証が実行されます。
- 制限付きスコープまたは機密スコープを使用するGoogle APIをアプリケーションが使用する場合。
- OAuth同意画面にアプリケーションロゴが含まれる場合。
- プロジェクトがドメインしきい値を超えている場合。
[Application name]フィールドに、ユーザーからアクセス権を付与されるアプリケーションの名前(この場合はLooker)を入力します。
ログインの問題が発生したときにユーザーが連絡できるサポートメールアドレスを入力します。
Lookerではデフォルトスコープのみが必要です。このため追加のスコープ設定は必要ありません。
[Authorized domains]フィールドに、Lookerインスタンスのドメインを入力します。例えばLookerが
https://<instance_name>.looker.com
でインスタンスをホストする場合、ドメインはlooker.com
です。顧客ホスト型のLookerデプロイメントの場合は、Lookerをホストするドメインを入力します。その他のフィールドはオプションです。これらを使用して、同意画面をさらにカスタマイズできます。
OAuth同意画面の設定が完了したら[Save]をクリックします。
Google OAuth同意画面の設定の詳細については、Googleのサポート ドキュメンテーションを参照してください。
さらにOAuth資格情報の生成を進めることができます。
BigQuery接続のためのOAuthの設定
- Lookerで([Admin]パネルの[Connections]ページから)BigQuery接続設定ページに移動するか、または新しいBigQuery接続を作成します。
- [Use OAuth]チェックボックスにチェックマークを付けます。
[Use OAuth]を選択すると、[OAuth Client ID]フィールドと[OAuth Client Secret]フィールドが表示されます。
このページのGoogle OAuth資格情報の生成のセクションの手順に従って取得したクライアントIDとクライアントシークレットの値を貼り付けます。
- Lookerをデータベースに接続する手順の残りを完了します。
- 新しい接続を作成する場合は、[Connection Settings]ページの下部にある[Add Connection]ボタンをクリックします。既存のBigQuery接続を編集する場合は、[Connection Settings]ページの下部にある[Update Connection]ボタンをクリックします。
- 必要に応じて接続をテストできます。
接続のテスト
- Lookerをデータベースに接続するドキュメンテーションページの説明に従い、[Connection Settings]ページの下部にある[Test These Settings]ボタンをクリックします。
- 接続のドキュメンテーションページの説明に従い、[Connections]管理ページにリスト表示されている接続の横にある[Test]ボタンをクリックします。
新しい接続の場合は、[Can connect]と表示されたら[Add connection]を押します。残りの接続テストが実行され、サービスアカウントが適切なロールで正常に設定されたことを検証します。
OAuthを使用する接続のテスト
- Lookerで開発モードに切り替えます。
- OAuthを使用する既存のBigQuery接続の場合は、BigQuery接続を使用するLookerプロジェクトのプロジェクトファイルに移動します。OAuthを使用する新しいBigQuery接続の場合は、モデルファイルを開き、モデルの
connection
値を新しいBigQuery接続の名前に置き換え、モデルファイルを保存します。 - モデルのExploreまたはダッシュボードの1つを開き、クエリを実行します。クエリを実行しようとすると、LookerでGoogleアカウントを使ってログインするように求められます。Google OAuthログインプロンプトに従って操作します。
BigQuery接続を使用するためのGoogleに対する認証
ユーザーは次のいずれかの方法で初回認証を実行できます。
- BigQuery接続を使用するクエリからGoogleに認証する
- [Account]ページの[OAuth Connection Credentials]セクションからGoogleに認証する
クエリからのGoogleに対する認証
OAuthに対応したBigQuery接続が設定されたら、その接続を使用するクエリ(Explore、ダッシュボード、Look、SQL Runnerからのクエリを含む)を実行する前に、ユーザーはGoogleアカウントでログインするよう促されます。ユーザーログインを必要とするBigQurery接続を使用したExploreの例を以下に示します。
ユーザーアカウントページからのGoogleに対する認証
ユーザーアカウントページからGoogleアカウントに認証するには、次の手順に従います。
- プロファイルアイコンをクリックし、ユーザーメニューから[Account]を選択します。
- [OAuth Connection Credentials]セクションまでスクロールし、該当するBigQueryデータベース接続の[Log In]ボタンをクリックします。
- [Sign in with Google]ページで適切なアカウントを選択します。
- OAuth同意画面で[Allow]をクリックして、Google BigQueryのデータの表示と管理をLookerに許可します。
Lookerを通してGoogleに認証した後は、ユーザーアカウントのパーソナライズのドキュメンテーションページの説明に従って、いつでもログアウトしたり[Account]ページから自分の資格情報を再度承認したりできます。Google BigQueryトークンには有効期限がありませんが、ユーザーは[Reauthorize]をクリックして別のGoogleアカウントでログインできます。
OAuthトークンの取り消し
ユーザーはLookerなどのアプリケーションからGoogleアカウントへのアクセスを取り消すことができます。そうするには[Google Account Settings]に移動します。
Google BigQueryトークンには有効期限はありませんが、データベース管理者がデータベース接続のOAuth資格情報を変更して既存の資格情報が無効になった場合、ユーザーはその接続を使用するクエリを実行する前に、Googleアカウントで再ログインする必要があります。
一部のスケジュールやアラートは、OAuthを使用するBigQueryデータベース接続を含むモデルに基づいている場合があります。BigQueryデータベース管理者が既存のデータベース接続のOAuth資格情報を変更すると、既存のユーザーの資格情報が無効になることがあります。そのユーザーがGoogle OAuthwo使って再度ログインするまでは、そのユーザーが作成したスケジュールやアラートは失敗します。
機能のサポート
一部の機能については、Lookerでサポートするには、データベースダイアレクトが同じ機能に対応している必要があります。
Looker 22.10では、Google BigQuery Legacy SQLは次のLooker機能をサポートしています。
Looker 22.10では、Google BigQuery Standard SQLは次のLooker機能をサポートしています。
次のステップ
データベースをLookerに接続したら、ユーザーのサインインオプションを設定します。