Google BigQuery に接続する

BigQuery は、Google が提供するペタバイト規模の低料金フルマネージド アナリティクス データ ウェアハウスです。Looker Studio の BigQuery コネクタを使用すると、Looker Studio から BigQuery テーブルのデータにアクセスできます。

始める前に

Looker Studio で BigQuery データにアクセスするには、Google Cloud Billing アカウントを指定する必要があります。BigQuery は有料サービスであり、Looker Studio を使用して BigQuery にアクセスすると、BigQuery の利用料金が発生する場合があります。詳しくは、BigQuery の料金をご覧ください。

BigQuery に接続する方法

Looker Studio は、Google BigQuery のテーブル、ビュー、カスタムクエリに接続できます。

接続を行うための手順

  1. Looker Studio にログインします。

  2. [ 作成]、[レポート] の順にクリックします。

  3. レポート エディタが表示され、[データのレポートへの追加] パネルが開きます。

  4. 新しい埋め込みデータソースを作成するには、BigQuery コネクタを選択します。

    1. 再利用可能な既存のデータソースを選択するには、[マイ データソース] タブをクリックし、以前に作成した任意のデータソースまたは共有されているデータソースを選択します。
  5. データソースと BigQuery データの間の接続を構成します。BigQuery のテーブルまたはビューに接続することも、カスタム SQL クエリを使用して接続することもできます。

  6. [追加] をクリックします。

しばらくすると、データソースに接続されたテーブルがレポートのキャンバスに表示されます。

埋め込みデータソースと再利用可能なデータソースの比較

データソースは、埋め込みまたは再利用可能のいずれかになります。レポートには、埋め込みデータソースと再利用可能なデータソースの両方を使用できます。

レポートの編集中に作成したデータソースは、レポート内に埋め込まれます。埋め込みデータソースを編集するには、そのレポート内で編集する必要があります。埋め込みデータソースを使用すると、レポートとデータソースの共同編集がよりスムーズに行えるようになります。レポートを編集できるユーザーであれば、データソースの編集と接続の変更も可能です。レポートを共有またはコピーした場合、埋め込まれているデータソースも共有またはコピーされます。

ホームページから作成したデータソースは再利用できます。これらのデータソースはさまざまなレポートで再利用でき、再利用可能なデータソースを使用すれば、組織全体で一貫したデータモデルを作成して共有できます。データソースを編集できるのは再利用可能なデータソースを共有されたユーザーのみです。接続を変更できるのはデータソースの認証情報のオーナーのみです。

詳しくは、データソースについてをご覧ください。

Looker Studio を初めてご利用の場合

プロパティ パネルを使用して、テーブルのデータとスタイルを変更します。ツールバーを使用して、レポートにグラフやコントロールなどのコンポーネントを追加することも可能です。

Looker Studio について

BigQuery のテーブルまたはビューに接続する

BigQuery テーブルでは、個々のレコードが行の形式にまとめられています。各レコードは列(フィールドとも呼ばれる)で構成されています。BigQuery ビューは、BigQuery コンソールで実行される SQL クエリによって定義される仮想テーブルです。

テーブルまたはビューに接続するには、次の情報を指定する必要があります。

  • BigQuery プロジェクト
  • データセット
  • テーブルまたはビュー

プロジェクト

プロジェクトでは BigQuery リソースが整理され、レポートが BigQuery の無料割り当てを超過した場合、課金に必要な情報が提供されます。課金とデータ管理の両方に同じプロジェクトを使用したり、1 つのプロジェクトをデータ用に使用し、別のプロジェクトで課金を行ったりすることもできます。詳しくは、Google Cloud プロジェクトをご覧ください。

次のいずれかのオプションを選択して、プロジェクトを選択します。

  • 最近のプロジェクト
  • マイ プロジェクト
  • 共有プロジェクト

最近のプロジェクト

[最近のプロジェクト] オプションを使用すると、 Google Cloud コンソールで最近アクセスしたプロジェクトが表示されます。プロジェクト ID を手動で入力することもできます。選択したプロジェクトは、課金とデータアクセスの両方に使用されます。プロジェクトを選択したら、データセットを選択します。

マイ プロジェクト

[マイ プロジェクト] オプションを使用すると、アクセス権があるプロジェクトを選択できます。プロジェクト ID を手動で入力することもできます。選択したプロジェクトは、課金とデータアクセスの両方に使用されます。プロジェクトを選択したら、データセットを選択します。

多くのプロジェクトへのアクセス権を持っている場合は、一部のプロジェクトが一覧に表示されない可能性があります。一覧のアイテム数が上限を超えてしまっている場合、一覧に表示されていないプロジェクトを入力フィールドに直接入力することができます。

共有プロジェクト

[共有プロジェクト] オプションを使用すると、共有されているプロジェクトにアクセスできます。データと課金に異なるプロジェクトを選択できます。

データセット

データセットは、データの整理とデータアクセスの制御に使用されます。リストからデータセットを選択するか、データセットを名前で検索します。

一般公開データセット

BigQuery の一般公開データセットは公開サンプルです。データセットは共有されますが、プロジェクトは共有されません。このデータに対してクエリを実行するには、独自の課金プロジェクトを指定する必要があります。ここで選択したプロジェクトが、共有データにおける処理費用の請求に使用されます。

テーブル

Looker Studio のデータソースは、単一のテーブルまたはビューに接続できます。

日付パーティション分割テーブルに接続する

Looker Studio では、BigQuery の日付パーティション分割テーブルを利用できます。DATEDATETIME、または TIMESTAMP フィールドでパーティション分割されたテーブルに接続すると、このデータソースに基づくグラフの期間ディメンションとしてそのフィールドを使用できます。このオプションを有効にするには、データソース接続ページの [設定] 列にある [(フィールド名)を期間ディメンションとして使用] チェックボックスをオンにします。

BigQuery のパーティション分割テーブルにパーティション フィルタが必要な場合、[(フィールド名)を期間ディメンションとして使用] チェックボックスはデフォルトでオンになっており、オフにすることはできません。

詳しくは、BigQuery の日付パーティション分割テーブルに関する説明をご覧ください。

カスタム SQL クエリを使用して BigQuery に接続する

[カスタムクエリ] オプションを使用すると、SQL を記述してデータに接続できます。カスタムクエリの構文は、標準 SQL 言語に準拠している必要があります。レガシーの BigQuery SQL 言語を使用する場合は、[レガシー SQL を使用する] オプションを選択します。

BigQuery ユーザー インターフェースを使用してクエリを作成し、テストしてから、そのクエリをコピーして Looker Studio のカスタムクエリ ボックスに貼り付けます。

課金プロジェクト

[課金プロジェクト] オプションを使用すると、プロジェクト ID を検索するか手動で入力することで、カスタムクエリの課金プロジェクトを指定できます。組織に多くの BigQuery プロジェクトがある場合は、手動入力でプロジェクトを探す必要があります。

あるプロジェクトを請求に使用し、別のプロジェクトをデータに使用するには、ユーザー インターフェースで課金プロジェクトを選択または入力して、カスタムクエリの SELECT...FROM 句でデータ プロジェクトを指定します。

課金プロジェクトが「Looker Studio プロジェクト」に設定された BigQuery カスタムクエリ構成の例。クエリでは、クエリの FROM 句で BigQuery の一般公開データセットが指定されます。

クエリ パラメータ

パラメータを使用すると、よりレスポンシブでカスタマイズ可能なレポートを作成できます。BigQuery データソースのパラメータは、基になるクエリに戻すことができます。カスタムクエリでパラメータを使用するには、BigQuery でのパラメータ化されたクエリの実行に関する構文ガイドラインをご覧ください。

詳しくは、カスタムクエリでパラメータを使用するをご覧ください。

カスタムクエリの制限事項

Looker Studio では、データベースに対するクエリが生成されるたびに、カスタム SQL が内部 SELECT ステートメントとして使用されます。つまり、カスタムクエリで新しい仮想テーブルが生成され、Looker Studio は独自に生成した「外部」SQL を使用してそのテーブルをクエリします。そのため、Looker Studio のカスタムクエリにはいくつかの制限が適用されます。

カスタム SQL クエリに含めることができるステートメントは 1 つのみ

たとえば以下は、複数の SQL ステートメントが含まれるため機能しません。


DECLARE cost_per_tb_in_dollar FLOAT64 DEFAULT 4.2;

SELECT total_bytes_billed / (1024 \* 1024))\* cost_per_tb_in_dollar)/(1024\*1024))) FROM billing-table;

結合では明確なフィールド名を使用する

カスタム結合クエリは、重複する列名を処理できません。重複するフィールドを含むカスタムクエリに基づくデータソースを使用しているグラフには、次のようなユーザー設定エラーが表示されます。

エラー メッセージ テキスト: ユーザーの設定エラー

この問題を回避するため、カスタムクエリでは明確なフィールド名を使用するようにしてください。

たとえば、同じスキーマを持つ 2 つのテーブルを、両方のテーブルに存在する Criteria_ID フィールドで結合するとします。


    SELECT * FROM (
          SELECT Criteria_ID, Parent_ID, Name FROM 'table_1'
            ) As table_1
          LEFT JOIN (
            SELECT Criteria_ID, Parent_ID, Name FROM 'table_2'
            ) As table_2
          ON
            table_1.Criteria_ID = table_2.Criteria_ID

このクエリには、次の重複する列名が含まれています。

  • Criteria_ID
  • Parent_ID
  • Name

Field is ambiguous エラーを回避するには、AS キーワードを使用して重複するフィールドの名前を明示的に変更します。


    SELECT *
          FROM (
            SELECT
              Criteria_ID AS Criteria_ID_1,
              Parent_ID AS Parent_ID_1,
              Name AS NAME_1
           FROM
             'table_1' ) AS table_1
           LEFT JOIN (
             SELECT
               Criteria_ID AS Criteria_ID_2,
               Parent_ID AS Parent_ID_2,
               Name AS NAME_2
             FROM
               'table_2' ) AS table_2
             ON
               table_1.Criteria_ID_1 = table_2.Criteria_ID_2;

名前を変更する必要があるフィールドが数個だけの場合は、名前を変更するフィールドを除くすべてのフィールドを選択することもできます。次に例を示します。


SELECT * EXCEPT (city), city AS city_1 FROM 'table_1'

クエリのタイムアウト

Looker Studio のカスタムクエリは 3 ~ 5 分後にタイムアウトする場合があります。カスタムクエリがタイムアウトした場合は、次の方法で問題を解決してみてください。

  • 実行速度を上げるために、クエリを簡素化します。
  • データベースでクエリを実行し、結果を別のテーブルに保存してからデータソース内のそのテーブルに接続します。

複数日のテーブル

BigQuery は、複数のテーブルにまたがるクエリ実行をサポートしており、各テーブルは 1 日のデータを保持しています。テーブルの形式は YYYYMMDD です。Looker Studio が YYYYMMDD 形式のテーブルを見つけると、複数日のテーブルとしてマークされ、「prefix_YYYYMMDD」という名前のみがそのテーブルに表示されます。

グラフを作成してこのテーブルを可視化すると、デフォルトの期間である過去 28 日間のデータが自動的に生成され、過去 28 日間のテーブルに対するクエリが適切に実行されます。この設定を行うには、レポートを編集モードに切り替えてグラフを選択し、[データ] タブで [期間] プロパティを調整します。

BigQuery に発行された SQL を表示する

Looker Studio によって生成されたすべての BigQuery SQL は、BigQuery のクエリ履歴画面で確認できます。

レコード数指標

BigQuery データソースでは、[レコード数] 指標が自動的に表示されます。この指標を使用することで、ディメンションを分割し、レコード数をグラフごとに集計して表示することができます。

VPC Service Controls のサポート

Looker Studio は、閲覧者の IP ベースのアクセス権を使用して、VPC Service Controls(VPC-SC)境界で保護された BigQuery プロジェクトに接続できます。BigQuery コネクタはレポート閲覧者の IP アドレスを BigQuery に渡します。これにより、セットアップされている IP ベースのアクセスレベルを適用できます。

BigQuery の GEOGRAPHY ポリゴンを可視化する

レポートで Google マップの可視化を使用して、GEOGRAPHY ポリゴンを表示できます。チュートリアルについては、Looker Studio を使用して BigQuery GEOGRAPHY ポリゴンを可視化するをご覧ください。

ジョブラベルを使用して Looker Studio のクエリを分析する

Looker Studio から BigQuery に送信されるクエリには、すべて BigQuery のジョブラベル requestor:looker_studio が付いています。このジョブラベルを使用すると、Looker Studio に関連する BigQuery のクエリを特定できます。BigQuery のラベルの詳細については、BigQuery のドキュメント ページのラベルの表示をご覧ください。

Looker Studio のグラフとレポートのパフォーマンスと費用の追跡の詳細については、BigQuery のドキュメント ページの Looker Studio でデータを分析するをご覧ください。

BigQuery ダイアログ

BigQuery データソースのオーナー認証情報がある場合、BigQuery を使用するグラフの右上に BigQuery アイコンが表示されます。グラフにカーソルを合わせ、BigQuery アイコンをクリックして [BigQuery] ダイアログを開きます。このダイアログには、BigQuery ジョブの詳細ページへのリンクが表示されます。BigQuery ジョブの詳細ページには、次の情報が含まれています。

  • グラフの SQL クエリ
  • SQL クエリから返されたデータ
  • クエリステップのステージごとの内訳
  • 合計実行時間や使用スロット数などのクエリ統計情報

割り当てと一般的な上限

BigQuery コネクタを使用して返すことができる最大行数は 200 万行です。Looker Studio では、200 万行を超えるデータがある場合は表示されますが、行数は明示されません。

また、BigQuery データソースには、BigQuery 自体と同じレート制限と割り当て制限が適用されます。

BigQuery データソースの場合、MEDIAN は BigQuery の APPROX_QUANTILES 関数を使用して実装されます。BigQuery からのデータに MEDIAN を適用すると、同じデータでも他の種類のデータソースからのデータに MEDIAN を適用した場合とは若干異なる結果が返されることがあります。