Google BigQuery

この記事では、Tableau を Google BigQuery に接続し、データ ソースを設定する方法について説明します。

注: この記事に記載されている機能とカスタマイズの一部は、Tableau Prep Builder ではサポートされていません。Prep Builder でデータに接続する方法の詳細については、「データへの接続」(新しいウィンドウでリンクが開く)を参照してください。

はじめる前に

開始する前に、次の接続情報を収集します。

  • Google BigQuery メール アドレスまたは電話番号、およびパスワード

 

推奨事項

カスタム OAuth クライアントを設定して会社の IT ポリシーを適用する

カスタム OAuth クライアントを使用すると、独自の IT ポリシーに従って OAuth 設定を制御できます。独自の OAuth クライアントを使用するオプションにより、Tableau のリリース サイクルや、Tableau の OAuth クライアントのローテーション スケジュールに縛られることがなくなります。独自の OAuth クライアントを設定する方法については、「サイトのカスタム OAuth の構成」を参照してください。

接続してデータ ソースを設定する

注: 新しい Google BigQuery データ ソースにサービス アカウントの認証資格情報を使用するには、Tableau Desktop で接続を作成する必要があります。

  1. Tableau を起動し、[接続] の下で [Google BigQuery] を選択します。

    次の 2 つオプションのいずれかを完了して、続行します。

     

    オプション 1:

    1. [認証] で、[OAuth を使用してサインイン] を選択します。
    2. [サインイン] をクリックします。
    3. パスワードを入力して続行します。
    4. [同意する] を選択して、Tableau が Google BigQuery データにアクセスできるようにします。ブラウザーを閉じるように求めるプロンプトが表示されます。

     

     

    オプション 2:

    ヒント: Tableau Server または Tableau Cloud を使用してパブリッシュしている場合は、使用している製品にログインしてから、保存した Google BigQuery 認証資格情報をアカウント設定に追加する必要があります。これにより、「無効な認証資格情報エラー」を防ぐことができます。

    1. [認証] で、[サービス アカウント (JSON) ファイルを使用してサインイン] を選択します。
    2. ファイル パスを入力するか、[参照] ボタンを使用してファイル パスを検索します。
    3. [サインイン] をクリックします。
    4. パスワードを入力して続行します。
    5. [同意する] を選択して、Tableau が Google BigQuery データにアクセスできるようにします。ブラウザーを閉じるように求めるプロンプトが表示されます。
  2.  

  3. データ ソース ページで次の手順を行います。

    1. (任意) ページ上部にある既定のデータ ソース名を選択し、Tableau で使用する一意のデータ ソース名を入力します。たとえば、データの他のユーザーが、どのデータ ソースに接続するか推測するのに役立つ命名規則を使用します。

    2. (オプション) [請求プロジェクト] ドロップダウン リストから、請求プロジェクトを選択します。請求プロジェクトを選択しない場合、残りのフィールドを選択した後でフィールドに「EmptyProject 」と表示されます。

    3. [プロジェクト] ドロップダウン リストから、プロジェクトを選択します。または、パブリックデータ プロジェクトを選択して、BigQuery のサンプル データに接続します。

    4. [データセット] ドロップダウン リストから、データ セットを選択します。

    5. [表] で、表を選択します。

      カスタム SQL を使用して、データ ソース全体ではなく、特定のクエリに接続します。詳細については、カスタム SQL クエリへの接続を参照してください。

注:
- Google BigQuery は BigQuery レガシー SQL (BQL) から標準 SQL へ対応を変更しました。ワークブックを Tableau で開くと、ワークブックは標準 SQL をサポートするようにアップグレードされます。
- BigQuery のデータ量は大きいため、Tableau ではライブで接続することを推奨しています。
- Radians() 関数は、Google BigQuery ではサポートされていません。

カスタマイズ属性を使用してクエリのパフォーマンスを向上させる

: カスタマイズ属性は現在 Tableau Prep Builder でサポートされていません。

カスタマイズ属性を使用すると、BigQuery から Tableau Cloud、Tableau Server、Tableau Desktop に返される大量の結果セットのパフォーマンスを向上させることができます。

Tableau Cloud や Tableau Server などへワークブックやデータ ソースをパブリッシュする前にカスタマイズ属性を指定している限り、パブリッシュしたワークブックやデータ ソースに、その属性を含めることができます。

Google BigQuery カスタマイズ属性の使用

カスタマイズ属性は整数値を受け入れ、ライブ クエリと指定された接続の抽出更新の両方に影響します。

次の属性を使用すると、大規模な結果セットのパフォーマンス向上に役立ちます。

bq-fetch-tasksHTTP を使用してデータをフェッチするときに使用する、並列バックグラウンド タスクの数。既定は 10 です。
bq-large-fetch-rows

スプール クエリの各バッチでフェッチされる行の数。既定は 50000 です。

次の属性も利用可能です。これらは小さなクエリに使用できます。

bq-fetch-rows非スプール クエリの各バッチでフェッチされる行の数。既定は 10000 です。
bq-response-rows非スプールおよび非一括クエリで返される行の数。既定は 10000 です。

この機能設定は、yes または no の値を受け入れ、テスト時に役立つ場合があります。

CAP_BIGQUERY_FORCE_SPOOL_JOBすべてのクエリで一時テーブル アプローチの使用を強制します。既定値は「no」です。この属性をオンに切り替えるには値を「yes」に変更します。

Tableau が Google BigQuery から行を返す方法

Tableau は既定の非スプール アプローチと、一時テーブル (スプール) アプローチの 2 つのアプローチを使用して BigQuery から行を返します。

  • 最初の試行では、クエリは bq-fetch-rows 設定を使用する既定の非スプール クエリを使用して実行されます。

  • 結果のセットが大きすぎる場合、BigQuery API はエラーを返し、Tableau BigQuery コネクターは結果を BigQuery 一時テーブルに保存することでクエリを再試行します。次に、BigQuery コネクターは、bq-large-fetch-rows 設定を使用するスプール ジョブであるその一時テーブルから読み取ります。

属性の指定方法

Tableau データソース カスタマイズ .tdc ファイル、またはワークブックやデータ ソースの XML の 2 つの方法で属性を指定できます。

.tdc ファイルで属性を指定する

Tableau Desktop からのワークブックまたはデータ ソースのパブリッシュ操作中にカスタマイズ属性を指定するには、次の手順に従います。

  1. カスタマイズ属性を含む XML ファイルを作成します。

  2. .tdc 拡張子の付いたファイル (例: BigQueryCustomization.tdc) を保存します。

  3. ファイルを My Tableau Repository\Datasources フォルダーに保存します。

.tdc ファイルのカスタマイズ属性は、データ ソースやワークブックが Tableau Cloud や Tableau Server にパブリッシュされたときに Tableau Desktop によって読み取られ、含められます。

重要: TDC ファイルは、接続の機能をカスタマイズしたり、データへの接続に関連する問題を診断して解決したりするために活用できます。Tableau は、これらのファイルに加えられる可能性のあるすべての変更を十分にテストすることはできません。TDC ファイルの作成と使用には手動による編集が必要であり、本番環境に展開する前に十分にテストすることが重要です。

大きな抽出用の推奨される設定を使用した .tdc ファイルの例
<connection-customization class='bigquery' enabled='true' version='8.0' >
  <vendor name='bigquery' />
  <driver name='bigquery' />
  <customizations>
    <customization name='bq-fetch-tasks' value='10' />
    <customization name='bq-large-fetch-rows' value='10000' />
  </customizations>
</connection-customization>

ワークブックまたはデータ ソース ファイルの XML に手動で属性を埋め込む

ワークブック .twb ファイルやデータ ソース .tds ファイルの「接続」タグ内にカスタマイズ属性を手動で埋め込むことができます。次の例では、わかりやすいように BigQuery カスタマイズ属性が太字で表示されています。

手動で埋め込まれた属性の例

<connection CATALOG='publicdata' EXECCATALOG='some-project-123' REDIRECT_URI='some-url:2.0:oob' SCOPE='https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email' authentication='yes' bq-fetch-tasks='10' bq-large-fetch-rows='10000'bq_schema='samples' class='bigquery' connection-dialect='google-bql' connection-protocol='native-api' login_title='Sign in to Google BigQuery' odbc-connect-string-extras='' project='publicdata' schema='samples' server='googleapis.com/bigquery' server-oauth='' table='wikipedia' username=''>

ワークブックで使用されているのが標準 SQL かレガシー SQL かを確認する

2016 年の Google の更新により、BigQuery API で標準 SQL がサポートされるようになりました。加えて、BigQuery SQL (現在ではレガシー SQL と呼びます) は引き続きサポートされます。Tableau 10.1 以降、標準 SQL をサポートするように Google BigQuery コネクターがアップグレードされ、レガシー SQL も引き続きサポートされます。標準 SQL では、BigQuery コネクターを使用するユーザーが、詳細レベルの式の使用、メタデータ検証の高速化、接続を使用した請求プロジェクトの選択を実行できます。

これで、ワークブックを作成すると、Tableau で標準 SQL が既定でサポートされるようになります。Tableau は、[データ] ペインの [レガシー SQL の使用] オプションを使用することでレガシー SQL もサポートします。たとえば、以前のバージョンの Tableau Desktop を使用して作成したワークブックを開くと、ワークブックでレガシー SQL が使用されている場合は [レガシー SQL の使用] オプションが選択されます。

次の理由で [レガシー SQL の使用] オプションを設定する場合があります。

  • 詳細レベルの式を記述する、またはその他の改善点を利用するために、標準 SQL を使用するよう更新する必要がある既存のワークブックがある場合。この場合、[レガシー SQL の使用] オプションを選択していないことを確認してください。

  • レガシー SQL ビューに接続する必要があるワークブックを作成しています。レガシー SQL と標準 SQL を混合させることはできません。このため、ワークブックを機能させるには、[レガシー SQL の使用] オプションを選択する必要があります。

Google BigQuery では、ビューは標準 SQL またはレガシー SQL で記述されています。標準 SQL で記述されたビューと標準 SQL で記述されたビューを結合したり、レガシー SQL で記述されたビューとレガシー SQL で記述されたビューを結合したりすることができます。また、いずれかのバージョンの SQL で記述されたビューを表に結合することができます。ただし、標準 SQL で記述されたビューとレガシー SQL で記述されたビューを 1 つのワークブックに結合することはできません。ビューを結合するときは、接続しているビューで使用される SQL のタイプに応じて [レガシー SQL の使用] チェック ボックスを設定する必要があります。

注: Tableau Desktop では、レガシー SQL または標準 SQL を使用する場合に限定して、ネストされたデータがサポートされます。たとえば、表にネストされたデータが含まれており、レガシー SQL または標準 SQL を使用している場合、データ ソース ページで [今すぐ更新] は機能しません。

レガシー SQL から標準 SQL への移行の詳細については、Google Cloud Platform Web サイトの「レガシー SQL からの移行」(新しいウィンドウでリンクが開く)を参照してください。

BigQuery BI Engine を使用してデータを分析する

BigQuery BI Engine を使用すると、BigQuery がサポートするレポートとダッシュボードで高速で低遅延の分析サービスとインタラクティブな分析を実行することができます。BigQuery BI Engine と Tableau を統合する方法などの詳細については、Google のドキュメント「BI Engine と Tableau を使用して BigQuery データを分析する」を参照してください。

Google BigQuery に関する問題のトラブルシューティング

複数のアカウントへの接続

Web 作成時または Web へのパブリッシュ時に、同じワークブックで複数の Google BigQuery アカウントを使用することはできません。Desktop では、複数の Google BigQuery アカウント接続を使用できます。

フローをパブリッシュする際、インプット ステップで Google BigQuery に接続するために使用する認証資格情報は、Tableau Server または Tableau Cloud で Google BigQuery 用の [マイ アカウントの設定] ページの [設定] タブで設定された認証資格情報と一致する必要があります。フローをパブリッシュする際に認証設定で別の認証資格情報を選択したり、認証資格情報を選択しなかったりすると、フローは認証エラーで失敗し、Tableau Server または Tableau Cloud で認証資格情報が一致するようにフローの接続を編集する必要があります。

Internet Explorer 11 および Edge での Web 作成

Internet Explorer 11 および Edge では、非セキュア接続 (http) を使用してサーバーにアクセスすることはできません。セキュア接続 (https) を使用するか、別のブラウザーに切り替えてください。

関連項目

フィードバックをお送りいただき、ありがとうございます。フィードバックは正常に送信されました。ありがとうございます!