Google BigQuery

概要

このページでは、Looker で Google BigQuery 標準 SQL または Google BigQuery レガシー SQL への接続を設定する方法について説明します。

Google BigQuery 標準 SQL または Google BigQuery レガシー SQLの接続を設定する一般的な手順は次のとおりです。

  1. BigQuery データベースで、Looker が BigQuery データベースへのアクセスに使用する認証を構成します。Looker は、BigQuery の次の認証オプションをサポートしています。

  2. BigQuery データベースで、接続で永続的な派生テーブル(PDT)を使用する場合は、Looker がデータベースで PDT を作成するために使用できる一時データセットを作成します。手順については、このページの永続的派生テーブルの一時的なデータセットの作成セクションをご覧ください。

  3. Looker で、BigQuery データベースへの Looker 接続を設定します。手順については、このページの Looker を BigQuery に接続するをご覧ください。

  4. Looker で、Looker と BigQuery データベース間の接続をテストします。手順については、このページの接続をテストするをご覧ください。

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

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

BigQuery サービス アカウントによる認証

Looker が BigQuery データベースを認証する方法の 1 つに、BigQuery サービス アカウントを使用する方法があります。BigQuery データベースでサービス アカウントを作成するには、 Google Cloud コンソールの API Manager を使用します。サービス アカウントを作成するには、 Google Cloud 管理者権限が必要です。サービス アカウントの作成に関するドキュメントをご覧ください。

サービスアカウントの作成およびJSON資格情報のダウンロード

BigQuery サービス アカウントを作成するには、次の操作を行います。

  1. Google Cloud コンソールの API Manager で認証情報ページを開き、プロジェクトを選択します。

  2. [認証情報を作成] を選択し、[サービス アカウント] を選択します。

  3. 新しいサービス アカウントの名前を入力し、必要に応じて説明を追加して、[作成して続行] を選択します。

  4. サービス アカウントには、Google BigQuery の事前定義ロールが 2 つ必要です。

    • BigQuery > BigQuery データ編集者
    • BigQuery > BigQuery ジョブユーザー

    [ロールを選択] フィールドで最初のロールを選択し、[別のロールを追加] を選択して、2 番目のロールを選択します。

    両方のロールを選択したら、[続行] を選択して [完了] を選択します。

  5. [認証情報] ページで、新しいサービス アカウントを選択します。

  6. [キー]、[キーを追加] を選択し、プルダウンで [新しいキーを作成] を選択します。

  7. [キーのタイプ] で [JSON] を選択し、[作成] を選択します。

  8. JSONキーがコンピュータに保存されます。

    ダウンロード先をメモしたら、[閉じる] を選択します。

  9. [完了] を選択します。

  10. サービス アカウントに対応するメールアドレスを見つけます。このアドレスは、Looker から BigQuery への接続を構成するうえで必要となります。

  11. BigQuery データベースでサービス アカウントを作成したら、BigQuery への Looker 接続を設定するときに、このサービス アカウント情報と証明書ファイルの詳細を、Looker の [Connections] ウィンドウの [Service Account Email][Service Account JSON/P12 File][Password] フィールドに入力します。

OAuth による認証

Looker では Google BigQuery 接続に対して OAuth がサポートされています。つまり、各 Looker ユーザーは各自の Google OAuth 認証情報を使用して Google に認証でき、データベースへのアクセスを Looker に許可できます。

OAuth により、データベース管理者は次の機能が実施できるようになります。

  • データベースに対してどのLookerユーザーがクエリを実行しているかを監査する。
  • Google の権限を使用したロールベースのアクセス制御を実施する。
  • Google BigQuery にアクセスするすべてのプロセスとアクション用に、複数の場所に BigQuery ID とパスワードを埋め込む代わりに OAuth トークンを使用する。

OAuth を使用した BigQuery 接続について、次の点に注意してください。

  • データベース管理者が BigQuery OAuth クライアント認証情報を変更すると、ユーザーが所有するすべてのスケジュールやアラートに影響がおよびます。管理者が BigQuery OAuth 認証情報を変更した場合、ユーザーは再サインインする必要があります。Looker の [Account] ページからユーザー プロフィール アカウント ページにアクセスして Google にサインインすることもできます。
  • OAuth を使用する BigQuery 接続は「ユーザーごと」であり、キャッシュ ポリシーもまたクエリごとではなくユーザーごとです。つまり、Looker ではキャッシュ期間内に同じクエリが実行された場合、キャッシュに保存された結果を常に使用するのではなく、キャッシュ期間内に同一ユーザーが同じクエリを実行した場合にのみ、キャッシュ保存された結果が使用されます。キャッシュについて詳しくは、クエリのキャッシングのドキュメント ページをご覧ください。
  • OAuth による BigQuery 接続で永続的な派生テーブル(PDT)を使用する場合は、Looker が PDT プロセス用にデータベースにアクセスするための追加のサービス アカウントを作成する必要があります。詳細については、このページの BigQuery 接続での永続的な派生テーブルのセクションをご覧ください。
  • 管理者は、別のユーザーとしてsudoを実行する場合にそのユーザーのOAuth認証トークンを使用します。sudo コマンドの使用方法については、ユーザーのドキュメント ページをご覧ください。
  • OAuth 認証用に構成された Google BigQuery 接続は、クエリの強制終了をサポートしていません。

OAuthに対応したBigQueryデータベースプロジェクトの設定

以降のセクションでは、OAuth 認証情報の生成方法と OAuth 同意画面の構成方法について説明します。

次のような場合は、この手順を行う必要はありません。

OAuth 認証情報と OAuth 同意画面は、Google Cloud コンソールで構成する必要があります。Google の一般的な説明については、 Google Cloud サポートサイトと Google デベロッパー コンソールサイトをご覧ください。

Looker で BigQuery データにアクセスするユーザーのタイプや、BigQuery データが公開されているか非公開かに応じて、OAuth が最も適切な認証方式ではない場合があります。同様に、ユーザーからリクエストされるデータのタイプや、Looker の使用を Google に認証するときにユーザーデータへのアクセス権限がどの程度必要かによっては、Looker で Google による確認が必要になる場合があります。検証の詳細については、このページの Google OAuth 認証情報の生成のセクションを参照してください。

Google OAuth資格情報の生成

  1. Google Cloud コンソールに移動します。

  2. [プロジェクトの選択] プルダウンで、BigQuery プロジェクトに移動します。これにより、プロジェクトダッシュボードが表示されます。

  3. 左側のメニューで、[API とサービス] ページを選択します。[認証情報] を選択します。[認証情報] ページで、[認証情報を作成] ボタンの下矢印を選択し、プルダウン メニューから [OAuth クライアント ID] を選択します。

  4. Googleは OAuth 同意画面を設定することを求めています。これにより、管理者が OAuth 認証情報を生成する前に、ユーザーは各自のプライベートデータへのアクセス権限を付与する方法を選択できます。OAuth 同意画面を構成するには、このページの OAuth 同意画面の構成をご覧ください。

  5. OAuth 同意画面をすでに構成している場合、[OAuth クライアント ID の作成] ページが表示されます。このページで、BigQuery から Looker への接続で使用する OAuth クライアント ID とシークレットを作成できます。[アプリケーションの種類] プルダウンから [ウェブ アプリケーション] を選択します。ページが展開され、追加のオプションが表示されます。

  6. [名前] フィールドに、アプリの名前(Looker など)を入力します。

  7. [承認済み JavaScript 生成元] セクションで [+ URI を追加] を選択して [URI 1] フィールドを表示します。[URI 1] フィールドに、https:// を含む Looker インスタンスの URL を入力します。例:

    • Looker がインスタンスをホストする場合: https://<instancename>.looker.com
    • セルフホスト型 Looker インスタンスがある場合: https://looker.<mycompany>.com
    • Looker インスタンスにポート番号が必要な場合: https://looker.<mycompany>.com:9999
  8. [承認済みリダイレクト URI] セクションで、[+ URI を追加] を選択して [URI 1] フィールドを表示します。[URI 1] フィールドに、Looker インスタンスの URL と、続けて /external_oauth/redirect を入力します。例: https://<instancename>.looker.com/external_oauth/redirect または https://looker.<mycompany>.com:9999/external_oauth/redirect

  9. [作成] を選択します。Google に [クライアント ID] と [クライアント シークレット] が表示されます。

  10. クライアント ID とクライアント シークレットの値をコピーします。これらは Looker で BigQuery 接続に OAuth を構成するために必要です。

Google では OAuth 同意画面を構成することを求めています。これにより、ユーザーは各自のプライベート データへのアクセス権限を付与する方法を選択でき、組織の利用規約とプライバシー ポリシーへのリンクが表示されます。

左側のメニューで、[OAuth 同意画面] ページを選択します。OAuth 同意画面を設定する前に、このアプリケーションを利用可能にするユーザーのタイプを選択する必要があります。選択した内容によっては、アプリで Google による検証が必要になる場合があります。

選択して [作成] を選択します。OAuth 同意画面が表示されます。この画面は、プロジェクト内のすべてのアプリケーション(内部アプリケーションと一般公開アプリケーションの両方を含む)に対して構成できます。

次のいずれかに該当する場合、Google は公開アプリケーションの検証を行います。

  • 制限付きスコープまたは機密スコープを使用する Google API をアプリケーションが使用する場合。
  • OAuth 同意画面にアプリケーションロゴが含まれる場合。
  • プロジェクトがドメインしきい値を超えている場合。

OAuth 同意画面を構成するには、次の手順を行います。

  1. [アプリ名] フィールドに、ユーザーがアクセス権を付与するアプリケーションの名前(この場合は Looker)を入力します。

  2. [ユーザー サポートメール] に、ユーザーがログインや同意の問題について問い合わせるサポートのメールアドレスを入力します。

  3. [ドメインを追加] を選択して、[承認済みドメイン 1] フィールドを表示します。このフィールドに、Looker インスタンスの URL のドメインを入力します。たとえば、Looker がインスタンスを https://<instance_name>.cloud.looker.com でホストする場合、ドメインは looker.com です。セルフホスト型の Looker デプロイの場合は、Looker をホストするドメインを入力します。

  4. [デベロッパーの連絡先情報] セクションに、Google がプロジェクトについて連絡する際に使用するメールアドレスを 1 つ以上入力します。

    その他のフィールドはオプションですが、これらを使用して同意画面をさらにカスタマイズできます。

  5. [保存して次へ] を選択します。

  6. Google に [スコープ] ページが表示されます。ここで、スコープを構成できます。Looker ではデフォルトスコープのみが必要です。このため追加のスコープ設定は必要ありません。[保存して次へ] を選択します。

  7. [概要] ページで、[ダッシュボードに戻る] を選択します。

これで、OAuth 認証情報を生成する手順を続行できます。

Google の OAuth 同意画面の構成について詳しくは、Google のサポート ドキュメントをご覧ください。

OAuth を使用した BigQuery の Looker 接続の構成

BigQuery 接続で OAuth を有効にするには、BigQuery への Looker 接続を設定するときに、Looker の [OAuth] ページで [OAuth] オプションを選択します。[OAuth] オプションを選択すると、Looker で [OAuth クライアント ID] フィールドと [OAuth クライアント シークレット] フィールドが表示されます。このページの Google OAuth 認証情報を生成する手順のステップとして取得したクライアント IDクライアント シークレットの値を貼り付けます。

BigQuery OAuth を中断する可能性のある Google Workspace 管理者設定がいくつかあります。

  • セッション継続時間: BigQuery OAuth のセッション継続時間を設定した場合は、Looker のセッションのタイムアウトを回避するために、[信頼できるアプリを除外] 機能を使用して、Looker を信頼できるアプリに追加する必要があります。この手順については、 Google Cloud サービスのセッション継続時間を設定するのヘルプ記事をご覧ください。
  • コンテキストアウェア アクセスの設定: 特定のユーザーが OAuth フローを完了できない原因となる可能性のある設定がないか、Google Workspace のコンテキストアウェア アクセスの設定を確認します。コンテキストアウェア アクセスについては、ヘルプ記事「コンテキストアウェア アクセスでビジネスを保護する」を参照してください。

Looker ユーザーが OAuth を使用して BigQuery に認証する方法

OAuth 用に BigQuery への Looker 接続が設定されると、ユーザーは Looker を使用して、以下のいずれかを行って BigQuery データベースへの初期認証を実行することができます。

クエリからのGoogleに対する認証

BigQuery への Looker 接続が OAuth 用に設定されると、BigQuery 接続を使用するクエリを実行する前に、Google アカウントでサインインするよう求めるプロンプトが Looker によって表示されます。Looker は、Explore、ダッシュボード、Look、SQL Runner からこのプロンプトを表示します。

ユーザーは [ログイン] を選択して、OAuth で認証する必要があります。ユーザーが BigQuery に対して認証されると、ユーザーは Explore 内の [Run] ボタンを選択することができ、Looker によってデータが Explore に読み込まれます。

ユーザーアカウントページからのGoogleに対する認証

BigQuery への Looker 接続が OAuth 用に設定されると、ユーザーは Looker の [User account] ページから Google アカウントへ認証を行うことができます。

  1. Looker でプロフィール アイコンを選択し、ユーザー メニューから [アカウント] を選択します。
  2. [OAuth 接続認証情報] セクションに移動し、適切な BigQuery データベース接続の [ログイン] ボタンを選択します。
  3. [Sign in with Google] ページから適切なアカウントを選択します。
  4. OAuth 同意画面で [許可] を選択し、Looker が Google BigQuery 内のデータを表示して管理できるようにします。

Looker を通して Google に認証した後は、ユーザー アカウントをカスタマイズするのドキュメント ページで説明されているように、[Accout] ページでいつでも認証情報からログアウトまたは再承認できます。Google BigQuery トークンに有効期限はありませんが、ユーザーは [再認証] を選択して別の Google アカウントでログインできます。

OAuthトークンの取り消し

Looker などのアプリケーションから Google アカウントへのアクセスを取り消すには、[Google アカウント設定] にアクセスします。

Google BigQuery トークンには有効期限はありませんが、データベース管理者がデータベース接続の OAuth 認証情報を変更して既存の認証情報が無効になった場合、ユーザーはその接続を使用するクエリを実行する前に、Google アカウントで再サインインする必要があります。

BigQuery 接続での永続的な派生テーブル

BigQuery 接続で永続的な派生テーブル(PDT)を使用する場合は、接続構成に応じて次の操作が必要になることがあります。

  • Google Cloud コンソールを使用して、Looker が PDT の書き込みに使用できる一時データセットを BigQuery データベースに作成します。手順については、このページの永続的派生テーブルの一時的なデータセットの作成セクションをご覧ください。この手順は、接続の他の構成オプションに関係なく、PDT に必要です。
  • Google Cloud コンソールの API Manager を使用して、Looker の PDT プロセス用に別のサービス アカウントを作成します。手順については、このページのサービス アカウントの作成と JSON 認証情報証明書のダウンロードをご覧ください。接続に対する認証の種類は、PDT サービス アカウントが必要かどうかや、BigQuery への Looker 接続を設定する際に Looker の [Connections] ウィンドウで PDT サービス アカウント情報を入力する場所に影響します。
    • 接続でユーザー認証にOAuthを使用する場合は、PDT プロセス用に別のサービス アカウントを作成する必要があります。Looker の [接続] ウィンドウの [PDT オーバーライド] セクションに、サービス アカウント情報と証明書ファイルの詳細を入力します。[認証] フィールドの [OAuth] オプションでも構成される接続に対して [PDT を有効にする] 切り替えボタンをオンにすると、Looker の [接続] ウィンドウに [PDT オーバーライド] セクションが自動的に表示されます。詳細については、OAuth を使用した BigQuery への Looker 接続に対する PDT の有効化セクションをご覧ください。
    • 接続でユーザー認証にサービス アカウントを使用する場合は、PDT プロセス用に別のサービス アカウントを作成できます。別の PDT サービス アカウントを使用する場合は、Looker の [接続] ウィンドウで、[サービス アカウントのメール] フィールド、[サービス アカウントの JSON/P12 ファイル] フィールド、[パスワード] フィールドの [PDT オーバーライド] セクションにサービス アカウントの情報を入力します。サービス アカウント認証を使用した BigQuery への Looker 接続に対して [PDT を有効にする] 切り替えボタンをオンにすると、[PDT オーバーライド] セクションが表示されます。

永続的派生テーブルの一時的なデータセットの作成

BigQuery 接続で永続的な派生テーブル(PDT)を有効にするには、BigQuery への Looker 接続を設定するときに、Looker の [接続] ページで [PDT を有効にする] 切り替えボタンをオンにします。PDT を有効にすると、Looker では [一時プロジェクト] フィールドと [一時データベース] フィールドが表示されます。これらのフィールドには、Looker で PDT の作成に使用できるプロジェクト ID とデータセット名を入力します。このデータベースまたはスキーマには、適切な書き込み権限を前もって設定しておく必要があります。

一時データセットは、 Google Cloud コンソールを使用して設定できます。

  1. Google Cloud コンソールを開き、プロジェクトを選択します。

  2. その他メニューを選択し、[データセットを作成] を選択します。

  3. [データセット ID](通常は looker_scratch)を入力し、[データのロケーション](省略可)、[デフォルトのテーブル有効期限]、暗号鍵の管理ソリューションを選択します。[データセットを作成] を選択して完了します。

データセットを作成したので、BigQuery への Looker 接続を設定するときに、Looker の [Connections] ウィンドウの [一時プロジェクト] フィールドと [一時データベース] フィールドでプロジェクトとデータセットを指定できます。

OAuth を使用した BigQuery への Looker 接続用の PDT の有効化

OAuth を使用する BigQuery 接続の場合、ユーザーは OAuth 認証情報を使用して Looker に認証します。Looker は OAuth を使用した BigQuery 接続の PDT をサポートしていますが、Looker 自体は OAuth を使用できません。そのため、PDT プロセス用に Looker がデータベースにアクセスできるように、BigQuery サービス アカウントを特別に設定する必要があります。

Google Cloud API Manager を使用して、BigQuery データベースに PDT サービス アカウントを設定できます。このページのサービス アカウントの作成と JSON 認証情報証明書のダウンロードをご覧ください。

BigQuery データベースでサービス アカウントを作成したら、BigQuery への Looker 接続を設定するときに、このサービス アカウント情報と証明書ファイルの詳細を、Looker の [接続] ウィンドウの [PDT オーバーライド] セクションに入力します。PDT Overrides フィールドについては、PDT Overrides セクションをご覧ください。

PDT オーバーライド

OAuth を使用する BigQuery 接続や、PDT に異なる認証情報、データセット、課金プロジェクトを使用する接続では、[PDT オーバーライド] 切り替えボタンを有効にして、接続の PDT に固有の異なる情報を入力できます。(PDT のオーバーライドが役立つ理由については、Looker をデータベースに接続するドキュメント ページの PDT のオーバーライドセクションをご覧ください)。

接続で [PDT を有効にする] 切り替えボタンをオンにすると、Looker の [接続] ウィンドウに [PDT オーバーライドを有効にする] 切り替えボタンが表示されます。[PDT オーバーライドを有効にする] 切り替えボタンをオンにし、[PDT オーバーライド] セクションにある次のフィールドを使用して、Looker でデータベース上の PDT プロセスに使用できるサービス アカウントの情報を入力します。

  • PDT オーバーライドの課金プロジェクト ID: PDT ビルドとメンテナンス クエリ(トリガー チェッククエリ)の課金に使用するプロジェクトを指定します。PDT に対するクエリでは、全般設定の [課金プロジェクト ID] フィールドで指定された課金プロジェクトが引き続き使用されます。PDT オーバーライドの課金プロジェクトは、ストレージには使用されず、課金にのみ使用されます。このフィールドを使用する場合は、サービス アカウントに少なくとも bigquery.jobUser ロールが必要です。

  • PDT Override Dataset: 接続の PDT で Looker が使用するデータセットの名前。

  • PDT オーバーライドのサービス アカウント ファイル: [ファイルをアップロード] ボタンを使用して、接続の PDT プロセスに使用する BigQuery サービス アカウントの証明書ファイルをアップロードします。このファイルは、サービス アカウントの作成と JSON 認証情報証明書のダウンロードの手順のステップとして、 Google Cloud API Manager から取得できます。PDT データセットに使用するサービス アカウントには、読み取りと書き込みのアクセス権が必要です。

  • ユーザー名: このフィールドは、[PDT オーバーライド] セクションの [PDT オーバーライドのサービス アカウント ファイル] フィールドに P12 ファイルをアップロードする場合にのみ適用されます。接続の PDT プロセスに使用する BigQuery サービス アカウントのメールアドレスを入力します。このメールアドレスは、サービス アカウントの作成と JSON 認証情報証明書のダウンロードの手順のステップとして、 Google Cloud API Manager から取得できます。

  • パスワード: このフィールドは、[PDT オーバーライド] セクションの [PDT オーバーライドのサービス アカウント ファイル] フィールドで P12 ファイルをアップロードする場合にのみ適用されます。接続の PDT プロセスに使用する BigQuery サービス アカウントの .p12 認証情報ファイルのパスワードを入力します。

  • PDT オーバーライドのその他の JDBC パラメータ: BigQuery のラベルなど、接続の PDT に使用するその他の JDBC パラメータを追加します(詳細については、このページの BigQuery 接続のジョブラベルとコンテキスト コメントのセクションをご覧ください)。以下に、サポートされている他のパラメータをいくつか示します。

    • connectTimeout: 接続待機時間(ミリ秒)。デフォルトは 240000 です。
    • readTimeout: 読み取り待機時間(ミリ秒)。デフォルトは 240000 です。
    • rootUrl: プライベート ネットワークの中に BigQuery インスタンスがある場合、デフォルトのパブリック エンドポイント以外の代替エンドポイントを BigQuery 接続用に指定してください。

Looker の BigQuery への接続

Looker でデータベース接続を作成するには、[データベースを Looker に接続] ページを使用します。[データベースを Looker に接続] ページを開くには、次の 2 つの方法があります。

  • [管理] パネルの [データベース] セクションで [接続] を選択します。[接続] ページで、[接続を追加] ボタンをクリックします。
  • メイン ナビゲーション パネルの [作成] ボタンをクリックし、[接続] メニュー項目を選択します。

接続の詳細を入力します。以下の設定の大部分は、ほとんどのデータベース言語に共通します。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。次の設定は、強調表示するか、BigQuery 接続にどのように適用されるかを明確にするために言及されています。

  • SQL Dialect: [Google BigQuery Standard SQL] または [Google BigQuery Legacy SQL] を選択します。

  • プロジェクト スコープ: 接続をすべてのプロジェクトで使用できるか、1 つのプロジェクトのみで使用できるかを選択します。詳細については、Looker をデータベースに接続するのページをご覧ください。

  • SSH サーバーを有効にする: Kubernetes インフラストラクチャにデプロイされ、SSH サーバー構成情報を追加できるインスタンスの場合は、[SSH サーバーを有効にする] 切り替えをオンにして、[SSH サーバー] フィールドと [SSH トンネル] フィールドを構成できます。詳細については、Looker をデータベースに接続するのページをご覧ください。

  • 課金プロジェクト ID: Google Cloud 課金プロジェクトのプロジェクト ID(一意の識別子)。課金プロジェクトは課金対象となる Google Cloud プロジェクトですが、LookML デベロッパーが LookML のビューExplore結合sql_table_name パラメータに完全にスコープされたテーブル名を指定していれば、別の Google Cloud プロジェクトのデータセットをクエリできます。BigQuery の場合、完全にスコープされたテーブル名には <project_name>.<dataset_name>.<table_name> の形式を使用します。完全にスコープされた参照がない場合、BigQuery は Looker への BigQuery 接続のために、Looker の [接続] ページで指定した課金プロジェクトとデータセット内のテーブルを探します。BigQuery のリソース階層については、BigQuery のドキュメントをご覧ください。

  • ストレージ プロジェクト ID: コンピューティングとストレージを別のプロジェクトに分離する場合は、ストレージ プロジェクトのプロジェクト ID。LookML デベロッパーが LookML のビューExplore結合sql_table_name パラメータに完全にスコープされたテーブル名を指定していれば、別の Google Cloud プロジェクトのデータセットをクエリできます。BigQuery の場合、完全にスコープされたテーブル名には <project_name>.<dataset_name>.<table_name> の形式を使用します。完全にスコープされた参照がない場合、BigQuery は Looker への BigQuery 接続のために、Looker の [接続] ページで指定した課金プロジェクトとデータセット内のテーブルを探します。BigQuery のリソース階層については、BigQuery のドキュメントをご覧ください。

  • プライマリ データセット: データベースでクエリを実行するときに Looker がデフォルトにするデータセットの名前。デフォルトのデータセットは、接続に指定された課金プロジェクト内に配置する必要があります。[データベース] フィールドに project_name.dataset_name などの値を入力して別のプロジェクトのデータセットを指定することはできません。

    LookML デベロッパーが LookML ビューExplore、または結合sql_table_name パラメータで完全にスコープされたテーブル名を指定する場合、LookML プロジェクトが他のデータセット内のテーブル(一般公開データセットのテーブルを含む)にアクセスできます。BigQuery の場合、完全にスコープされたテーブル名には <project_name>.<dataset_name>.<table_name> の形式を使用します。別のデータセット内のテーブルにクエリを実行するには、サービス アカウント(サービス アカウント認証を使用する接続の場合)またはクエリを実行するユーザー(OAuth 認証を使用する接続の場合)がテーブルにアクセスできる必要があります。LookML コードで完全にスコープされたテーブル名が指定されていない場合、BigQuery は BiqQuery 接続の [データセット] フィールドで指定したデータセット内のテーブルを検索します。

    プロジェクトにデータセットがない場合(コンピューティングとストレージを別々のプロジェクトに分けている場合など)、任意の [データセット] 値を指定できますが、LookML で常に完全にスコープされたテーブル名を使用する必要があります。

  • 認証: Looker でデータベースへのアクセスに使用する認証タイプ。これらのオプションの一部は、Looker(Google Cloud コア)インスタンスでのみサポートされています。

    • アプリケーションのデフォルト認証情報:(Looker(Google Cloud コア)のみ)このオプションを選択すると、アプリケーションのデフォルト認証情報(ADC)を使用してデータベースに対して認証を行います(詳細については、Looker(Google Cloud コア)ドキュメントをご覧ください)。
    • サービス アカウント: このオプションを選択すると、Looker で BigQuery サービス アカウントを使用してデータベースを認証できます。詳細については、BigQuery サービス アカウントによる認証をご覧ください。[サービス アカウント] を選択すると、次のフィールドが表示されます。
      • サービスの JSON または P12 ファイルのアップロード: [ファイルをアップロード] ボタンを使用して、BigQuery サービス アカウントの証明書ファイルをアップロードします。このファイルは、サービス アカウントの作成と JSON 認証情報証明書のダウンロードの手順のステップとして、 Google Cloud API Manager から取得できます。
      • サービス アカウント メール: このフィールドは、[サービスの JSON または P12 ファイルをアップロードします] フィールドに P12 ファイルをアップロードする場合にのみ適用されます。BigQuery サービス アカウントのメールアドレスを入力します。これは、サービス アカウントの作成と JSON 認証情報証明書のダウンロードの手順のステップとして Google Cloud API Manager から取得します。
      • Password: BigQuery サービス アカウントの P12 認証情報ファイルのパスワード。[パスワード] フィールドは、[サービスの JSON または P12 ファイルをアップロードする] フィールドで P12 ファイルをアップロードする場合にのみ適用されます。
    • OAuth: 各 Looker ユーザーが Google BigQuery に対して認証を行い、ユーザーの BigQuery アカウントでデータベースにアクセスできるように Looker を承認するには、このオプションを選択します。BigQuery 接続に OAuth を実装する方法の詳細については、このページの OAuth による認証セクションをご覧ください。[OAuth] を選択すると、次のフィールドが表示されます。

  • ノードあたりの最大接続数: Looker がデータベースと確立できる最大接続数。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  • 接続プールのタイムアウト: ユーザーが [ノードごとの最大接続数] 設定で構成されている数よりも多くの接続をリクエストすると、リクエストは他のリクエストが完了するまで待機してから実行されます。接続プールのタイムアウトは、リクエストが待機する最大時間です。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  • この接続に関する同時実行クエリの最大数: Looker がデータベース接続に一度に送信できる同時実行クエリの最大数。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  • この接続に関するユーザーあたりの同時実行クエリの最大数: Looker が各ユーザーに対してこのデータベース接続に一度に送信する同時実行クエリの最大数。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  • 最大課金ギガバイト数: BigQuery 接続では、このサイズに基づいてクエリごとに課金されます。ユーザーが誤って高額なクエリを実行しないように、ユーザーが単一のクエリを pull できる最大 GB 数を設定できます。クエリサイズを制限しない場合は、[Max Billing Gigabytes] フィールドを空白のままにします。詳細については、BigQuery の料金ページをご覧ください。

  • その他の JDBC パラメータ: BigQuery のラベルなど、その他の JDBC パラメータを追加します(詳細については、このページの BigQuery 接続のジョブラベルとコンテキスト コメントのセクションをご覧ください)。以下に、サポートされている他のパラメーターをいくつか示します。

    • connectTimeout: 接続待機時間(ミリ秒)。デフォルトは 240000 です。
    • readTimeout: 読み取り待機時間(ミリ秒)。デフォルトは 240000 です。
    • rootUrl: プライベート ネットワークの中に BigQuery インスタンスがある場合、デフォルトのパブリック エンドポイント以外の代替エンドポイントを BigQuery 接続用に指定してください。
  • メンテナンス スケジュール: Looker リジェネレータの cron 間隔。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  • コンテキストの無効化: このオプションを選択すると、BigQuery 接続に対するコンテキスト コメントが無効になります。Google BigQuery 接続のコンテキスト コメントはデフォルトで無効になっています。コンテキスト コメントは Google BigQuery のキャッシュ機能を無効にし、キャッシュ パフォーマンスに悪影響を及ぼす可能性があるからです。BigQuery 接続のコンテキスト コメントを有効にするには、[コンテキストを無効化] 切り替えボタンをオフにします。詳細については、BigQuery 接続のジョブラベルとコンテキスト コメントをご覧ください。

  • SSL: 切り替えを有効にして、Looker とデータベースの間で渡されるデータを保護するために SSL 暗号化を使用します。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  • テーブルと列を事前にキャッシュに保存: SQL Runner にテーブル情報をプリロードせず、テーブルが選択されている場合にのみテーブル情報を読み込むようにするには、このオプションをオフにします。詳細については、Looker をデータベースに接続するページのテーブルと列をプリキャッシュするセクションをご覧ください。

  • スキーマを取得してキャッシュに保存: 情報スキーマに時間を要することが分かっている場合、接続の [スキーマを取得してキャッシュに保存] オプションを無効にできます。この機能を無効にすると、特定の機能に対する Looker の SQL 最適化の一部が妨げられるため、接続の情報スキーマが特に遅いことがわかっている場合を除き、[スキーマを取得してキャッシュに保存する] オプションを有効にする必要があります。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  • PDT を有効にする: 接続で永続的な派生テーブル(PDT)を許可するには、この切り替えボタンを有効にします。詳細については、このページの BigQuery 接続での永続的な派生テーブルをご覧ください。Looker が PDT の書き込みに使用するデータベースの一時データセットを指定する必要があります。手順については、このページの永続的派生テーブルの一時的なデータセットの作成セクションをご覧ください。注: 接続が OAuth 用に構成されている場合は、[PDT オーバーライド] セクションを使用して、Looker で BigQuery 接続の PDT プロセスに使用できるサービス アカウントを指定する必要があります。詳細については、OAuth を使用した BigQuery への Looker 接続に対する PDT の有効化をご覧ください。

  • 一時プロジェクト: PDT の書き込みに使用するデータセットを含むプロジェクトのプロジェクト ID。[一時プロジェクト] が指定されていない場合、Looker は接続設定の [データベース設定] セクションの [ストレージ プロジェクト ID] フィールドで指定されたプロジェクトに PDT を書き込みます。ストレージ プロジェクト ID が指定されていない場合、Looker は、接続設定の [データベース設定] セクションの [課金プロジェクト ID] フィールドで指定されたプロジェクトに PDT を書き込みます。

  • 一時データベース: Looker が永続的な派生テーブルをデータベースに書き込むために、 Google Cloud コンソールに作成した BigQuery データセット。手順については、永続的派生テーブルの一時的なデータセットの作成をご覧ください。

  • PDT ビルダーの最大接続数: Looker リジェネレータがデータベース接続に対して同時に開始できるテーブルのビルド数の上限。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  • 失敗した PDT ビルドを再試行: [失敗した PDT ビルドを再試行] 切り替えボタンをオンにすると、Looker リジェネレータは、PDT のトリガー条件が満たされない場合でも、前のリジェネレータ サイクルで失敗した PDT の再構築を試みます。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  • PDT API コントロール: この切り替えボタンで、start_pdt_buildcheck_pdt_buildstop_pdt_build API 呼び出しをこの接続に使用できるかどうかを指定します。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  • PDT オーバーライドを有効にする: この切り替えボタンを有効にすると、Looker が PDT をデータベースに書き込むために使用する個別の接続設定を構成できます。PDT オーバーライド フィールドの詳細については、このページの PDT オーバーライド セクションをご覧ください。

  • Database Time Zone: BigQuery のデフォルトのタイムゾーンは UTC です。ここで指定するタイムゾーンの設定は、BigQuery のタイムゾーンの設定と一致している必要があります。詳細については、Looker をデータベースに接続ページのデータベースのタイムゾーンセクションをご覧ください。

  • クエリのタイムゾーン: 詳細については、Looker をデータベースに接続ページのクエリのタイムゾーンセクションをご覧ください。

接続の該当するフィールドをすべて入力したら、必要に応じて接続をテストできます。

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

接続のテスト

Looker UI のいくつかの場所から接続設定をテストできます。

  • データベースへの Looker の接続のドキュメント ページで説明されているように、[接続設定] ページの下部にある [テスト] ボタンを選択します。
  • 接続のドキュメント ページの説明に従って、[接続] 管理ページの接続リストの横にある [Test] ボタンを選択します。

新しい接続では、Looker に [接続可能] と表示されたら、[接続を追加] を選択します。残りの接続テストが実行され、サービス アカウントが適切なロールで正常に設定されたことを検証します。

OAuthを使用する接続のテスト

  1. Looker で Development Mode に移行します。
  2. OAuthを使用する既存のBigQuery接続の場合は、BigQuery 接続を使用する Looker プロジェクトのプロジェクト ファイルに移動します。OAuth を使用する新しい BigQuery 接続の場合は、モデルファイルを開き、モデルの connection 値を新しい BigQuery 接続の名前に置き換えて、モデルファイルを保存します。
  3. モデルの Explore またはダッシュボードの一つを開き、クエリを実行します。クエリを実行しようとすると、Google アカウントでログインするよう求められます。Google OAuth ログイン プロンプトに従います。

BigQuery 接続のジョブラベルとコンテキスト コメント

BigQuery 接続の場合、Looker は BigQuery のジョブラベルの形式でクエリ コンテキストを送信します。デフォルトでは、Looker は BigQuery 接続で次のコンテキスト ラベル キーを送信します。

  • looker-context-user_id: Looker インスタンスの各ユーザーの一意の識別子。このユーザー ID は、[Admin] メニューの [Users] ページにあるユーザー ID と照合できます。
  • looker-context-history_slug: Looker インスタンスによりデータベース上で実行される各クエリの一意の識別子。

  • looker-context-instance_slug: クエリを発行した Looker インスタンスの ID 番号。必要に応じ、Looker のサポートはこの情報を使用してトラブルシューティングを支援できます。

[接続] ページの [その他の JDBC パラメータ] テキスト フィールドを使用して、BigQuery 接続のすべてのクエリで送信する Looker の追加ジョブラベルを構成できます。[その他の JDBC パラメータ] フィールドで、追加の JDBC パラメータ「labels」を追加し、URL エンコードされた key=value ペアのカンマ区切りリストを指定します。たとえば、[その他の JDBC パラメータ] フィールドに入力します。

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_idlooker-context-history_idlooker-context-instance_slug)は、Looker が、BigQuery 以外のデータベース言語の SQL クエリにアタッチする SQL コンテキスト コメントに対応しています。BigQuery 接続の場合、コンテキスト コメントはデフォルトで無効になっています。コンテキスト コメントは BigQuery のキャッシュ機能を無効にし、キャッシュ パフォーマンスに悪影響を及ぼす可能性があるからです。BigQuery 接続でコンテキスト コメントを有効にするには、BigQuery 接続に対して [コンテキストを無効化] 切り替えボタンをオフにします。BigQuery のキャッシュを使用できるように、[コンテキスト コメントの無効化] はデフォルト設定のままにすることをおすすめします。ただし、BigQuery 接続の [コンテキスト コメントの無効化] オプションの選択を解除すると、Looker は SQL コンテキスト コメント BigQuery ジョブラベルをデータベースに送信します。

SQL コンテキスト コメントと BigQuery ジョブラベルは同じ情報を伝えます。たとえば、Looder はクエリに対して次の SQL コンテキスト コメントを生成します。

-- Looker Query Context

'{"user_id":1,"history_id":4757,"instance_slug":"ec2804ddef74c466f2a43e0afaa3ff6b"}'

Looker は、同じクエリに対して次の BigQuery ジョブラベルを生成します。

[{"value":"1","key":"looker-context-user_id"},

 {"value":"4757","key":"looker-context-history_id"},

 {"value":"ec2804ddef74c466f2a43e0afaa3ff6b","key":"looker-context-instance_slug"}]

機能のサポート

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

Google BigQuery Standard SQL

Google BigQuery Standard SQL は、Looker 25.18 の時点で、次の機能をサポートしています。

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

Google BigQuery Legacy SQL

Google BigQuery Legacy SQL は、Looker 25.18 の時点で、次の機能をサポートしています。

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

次のステップ

データベースを Looker に接続したら、ユーザーのログイン オプションを構成します