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 に対応した BigQuery データベースプロジェクトの設定

以降のセクションでは、OAuth 認証情報の生成方法と OAuth 同意画面の構成方法について説明します。プロジェクト内の別のアプリケーションの OAuth 同意画面をすでに設定している場合は、別途作成する必要はありません。プロジェクト内のすべてのアプリケーションに同意画面を構成するだけです。

OAuth 認証情報と OAuth 同意画面は、Google Cloud コンソールで構成する必要があります。Google の一般的な説明は、Google Cloud サポートサイトと Google Dev コンソールサイトにあります。

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. [デベロッパーの連絡先情報] セクションに、Google がプロジェクトに関する連絡に使用するメールアドレスを入力します。

    残りのフィールドは省略可能ですが、同意画面をさらにカスタマイズできます。

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

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

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

次に、OAuth 認証情報の生成の手順を進めます。

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

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

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

このページの残りの手順に沿って Looker を BigQuery に接続するのセクションで説明している残りの手順を完了します。

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 を使用できないため、PDT プロセスのために Looker がデータベースにアクセスできるように特別に BigQuery サービス アカウントを設定する必要があります。

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

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

  • 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 請求先プロジェクトの名前。課金プロジェクトは課金対象となる 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 でデータベースへのアクセスに使用する認証タイプ(サービス アカウントまたは OAuth)。

    • サービス アカウント: このオプションを選択すると、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 ファイルをアップロードする場合にのみ適用されます。
    • Use OAuth: 各 Looker ユーザーが Google BigQuery に対して認証を行い、ユーザーの BigQuery アカウントでデータベースにアクセスできるように Looker を承認するには、このオプションを選択します。BigQuery 接続で OAuth を実装する方法の詳細については、このページの OAuth による認証をご覧ください。[OAuth] を選択すると、次のフィールドが表示されます。
  • PDT を有効にする: 接続で永続的な派生テーブル(PDT)を許可するには、この切り替えボタンを有効にします。Looker が PDT を書き込むために使用する、データベース上の一時データセットを指定する必要があります。手順については、このページの永続的派生テーブルの一時的なデータセットの作成セクションをご覧ください。注: 接続が OAuth 用に構成されている場合は、[PDT オーバーライド] セクションを使用して、Looker で BigQuery 接続の PDT プロセスに使用できるサービス アカウントを指定する必要があります。詳細については、OAuth を使用した BigQuery への Looker 接続に対する PDT の有効化をご覧ください。

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

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

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

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

    • connectTimeout: 接続待機時間(ミリ秒)。デフォルトは 240000 です。
    • readTimeout: 読み取り待機時間(ミリ秒)。デフォルトは 240000 です。
    • rootUrl: プライベート ネットワークの中に BigQuery インスタンスがある場合、デフォルトのパブリック エンドポイント以外の代替エンドポイントを BigQuery 接続用に指定してください。
  • Max Billing Gigabytes: BigQuery 接続では、サイズに基づいてクエリごとに課金されます。ユーザーがコストのかかるクエリを誤って実行しないように、1 つのクエリで pull できる最大 GB 数を設定できます。クエリサイズを制限しない場合は、[最大課金ギガバイト] フィールドを空白のままにできます。料金の詳細については、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 に [接続可能] と表示されたら、[接続を追加] を選択します。Looker は、残りの接続テストを実行して、サービス アカウントが正しく設定され、適切なロールが設定されていることを確認します。

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

  1. Looker で Development Mode に移行します。
  2. OAuthを使用する既存のBigQuery接続の場合は、BigQuery 接続を使用する Looker プロジェクトのプロジェクト ファイルに移動します。OAuth を使用する新しい BigQuery 接続の場合は、モデルファイルを開き、モデルの connection 値を新しい BigQuery 接続の名前に置き換えて、モデルファイルを保存します。
  3. モデルの Explore またはダッシュボードの一つを開き、クエリを実行します。クエリを実行しようとすると、Looker から 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 コンテキスト ラベルに加えて、Looker が BigQuery データベースに送信するすべてのクエリに次の 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.2 の時点で、次の機能をサポートしています。

特徴 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
はい
対称集計
あり
派生テーブル
あり
永続的な SQL 派生テーブル
あり
永続的なネイティブ派生テーブル
あり
安定したビュー
あり
クエリの強制終了
あり
SQL ベースのピボット
あり
タイムゾーン
あり
SSL
あり
Subtotals
あり
JDBC の追加パラメータ
あり
Case Sensitive
あり
ロケーション タイプ
あり
リストのタイプ
あり
パーセンタイル
あり
個別のパーセンタイル
あり
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.2 時点で、次の機能をサポートしています。

特徴 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
いいえ
対称集計
あり
派生テーブル
あり
永続的な SQL 派生テーブル
あり
永続的なネイティブ派生テーブル
あり
安定したビュー
いいえ
クエリの強制終了
あり
SQL ベースのピボット
あり
タイムゾーン
いいえ
SSL
あり
Subtotals
いいえ
JDBC の追加パラメータ
あり
Case Sensitive
あり
ロケーション タイプ
あり
リストのタイプ
あり
パーセンタイル
あり
個別のパーセンタイル
あり
SQL Runner のプロセスの表示
いいえ
SQL Runner の説明テーブル
いいえ
SQL Runner 表示インデックス
いいえ
SQL Runner Select 10
あり
SQL ランナーの数
あり
SQL の説明
いいえ
Oauth 認証情報
あり
コンテキスト コメント
あり
接続プーリング
いいえ
HLL スケッチ
いいえ
集計認識
あり
増分PDT
いいえ
ミリ秒
あり
マイクロ秒
あり
マテリアライズド ビュー
いいえ
Approximate Count Distinct
あり

次のステップ

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