Google BigQuery に接続する

description: データポータルを BigQuery に接続して、BigQuery のテーブル、ビュー、カスタム SQL クエリからデータにアクセスして可視化する方法について説明します。

Google の BigQuery は、低料金でペタバイトの規模に対応するフルマネージド型分析データ ウェアハウスです。データポータルの BigQuery コネクタを使用すると、データポータルで BigQuery テーブルのデータにアクセスできます。

始める前に

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

BigQuery に接続する方法

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

接続する手順

  1. データポータルにログインします。

  2. [作成] をクリックし、[レポート] を選択します。

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

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

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

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

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

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

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

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

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

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

データポータルを初めてご利用の場合

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

データポータルについて

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

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

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

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

プロジェクト

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

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

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

最近のプロジェクト

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

マイ プロジェクト

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

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

共有プロジェクト

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

データセット

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

公開データセット

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

テーブル

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

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

データポータルでは、BigQuery の日付パーティション分割テーブルを利用できます。DATEDATETIME、または TIMESTAMP フィールドでパーティション分割されたテーブルに接続すると、データポータルは、このデータソースに基づくグラフの期間ディメンションとしてそのフィールドを使用できます。

詳しくは、データポータルを BigQuery の日付パーティション分割テーブルに接続するをご覧ください。

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

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

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

課金プロジェクト

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

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

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

クエリ パラメータ

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

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

カスタムクエリの上限

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

カスタム 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'

クエリのタイムアウト

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

  • クエリを簡略化して、実行速度を向上させます。
  • データベースでクエリを実行し、結果を別のテーブルに保存します。次に、データソースでそのテーブルに接続します。

複数日のテーブル

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

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

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

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

レコード数指標

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

VPC Service Controls のサポート

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

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

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

ジョブラベルでデータポータルのクエリを分析する

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

BigQuery データソースのオーナーは、「BigQuery を活用 」アイコンをクリックしてジョブの詳細を確認することもできます。

データポータルのグラフとレポートのパフォーマンスと費用をトラッキングする方法について詳しくは、データポータルでデータを分析するの BigQuery のドキュメントをご覧ください。

BigQuery ダイアログ

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

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

BigQuery Storage Read API でパフォーマンスを改善する

ページ分割された結果を使用するクエリの場合、BigQuery Storage Read API を有効にすると、クエリ時間が短縮されます。クエリの実行時間が短縮される場合は、データポータルで Storage Read API が自動的に使用されます。

BigQuery Storage Read API を有効にするには、データポータルに接続されている BigQuery ユーザーに次の権限を付与します。

  • bigquery.readsessions.create
  • bigquery.readsessions.getData

割り当てと一般的な上限

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

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

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

BigQuery コネクタは、顧客管理の暗号鍵(CMEK)をサポートしていません。プロジェクトに CMEK を必要とする組織のポリシーが適用されている場合、データポータルはデータをクエリできず、CONDITION_NOT_MET エラーを返します。 Google Cloud