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 データベースを認証する方法の一つに、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に対応した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 でホストする場合、ドメインは cloud.looker.com です。セルフホスト型の Looker デプロイの場合は、Looker をホストするドメインを入力します。

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

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

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

  6. [スコープ] ページが表示されます。ここで、スコープを構成できます。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 のセッション継続時間を設定した場合は、Looker のセッションのタイムアウトを回避するために、[信頼できるアプリを除外] 機能を使用して、Looker を信頼できるアプリに追加する必要があります。この手順については、Google Cloud サービスのセッション継続時間を設定するヘルプ記事をご覧ください。

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の作成に使用できるデータセットの名前を入力します。このデータベースまたはスキーマには、適切な書き込み権限を前もって設定しておく必要があります。

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

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

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

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

データセットを作成したので、BigQuery への Looker 接続を設定するときに、Looker の [Connections] ウィンドウの [Temp Dataset] フィールドにデータセット名を指定できます。

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

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

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

BigQuery データベースでサービス アカウントを作成したら、BigQuery への Looker 接続を設定するときに、このサービス アカウント情報と証明書ファイルの詳細を、Looker の [接続] ウィンドウの [PDT オーバーライド] セクションに入力します。[認証] フィールドの [OAuth] オプションでも構成される接続に対して [PDT を有効にする] 切り替えボタンをオンにすると、Looker の [接続] ウィンドウに [PDT オーバーライド] セクションが自動的に表示されます。[PDT オーバーライド] セクションにある次のフィールドを使用して、Looker でデータベース上の PDT プロセスに使用できるサービス アカウントの情報を入力します。

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

Looker の BigQuery への接続

Looker の [Admin] セクションで [Connections] を選択して [Connections] ページを開き、次のいずれかを行います。

  • 新しい接続を作成するには、[接続を追加] ボタンを選択します。
  • 既存の接続を編集するには、[データベース] テーブルから接続を見つけ、接続のリスト内で [編集] ボタンを選択します。

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

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

  • 課金プロジェクト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 のドキュメントをご覧ください。

  • データセット: データベースでクエリを実行するときに 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 から取得します。
      • パスワード: BigQuery サービス アカウントの P12 認証情報ファイルのパスワード。[パスワード] フィールドは、[サービスの JSON または P12 ファイルをアップロードする] フィールドで P12 ファイルをアップロードする場合にのみ適用されます。
    • OAuth: 各 Looker ユーザーが Google BigQuery に対して認証を行い、ユーザーの BigQuery アカウントでデータベースにアクセスできるように Looker を承認するには、このオプションを選択します。BigQuery 接続に OAuth を実装する方法の詳細については、このページのOAuth による認証のセクションをご覧ください。[OAuth] を選択すると、次のフィールドが表示されます。

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

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

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

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

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

    • connectTimeout: 接続待機時間(ミリ秒)。デフォルトは 240000 です。
    • readTimeout: 読み取り待機時間(ミリ秒)。デフォルトは 240000 です。
    • rootUrl: プライベート ネットワークの中に BigQuery インスタンスがある場合、デフォルトのパブリック エンドポイント以外の代替エンドポイントを BigQuery 接続用に指定してください。
  • 最大課金ギガバイト数: BigQuery 接続では、このサイズに基づいてクエリごとに課金されます。ユーザーが誤って高額なクエリを実行しないように、ユーザーが単一のクエリを pull できる最大 GB 数を設定できます。クエリサイズを制限しない場合は、[Max Billing Gigabytes] フィールドを空白のままにします。料金の詳細については、BigQuery の料金ページをご覧ください。

  • ノードごとの最大接続数: 最初はデフォルト値のままにできます。この設定の詳細については、Looker をデータベースに接続するドキュメント ページのノードごとの最大接続数セクションをご覧ください。

  • Connection Pool Timeout: 最初はデフォルト値のままにしておくことができます。この設定の詳細については、Looker をデータベースに接続するのドキュメント ページの接続プールのタイムアウトのセクションをご覧ください。

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

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

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

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

接続のテスト

接続設定は、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 24.18 の時点で、次の機能をサポートしています。

機能 サポート対象
サポート レベル
サポート対象
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 BigQuery Legacy SQL

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

機能 サポート対象
サポート レベル
サポート対象
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

次のステップ

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