
ThoughtSpotからBigQueryへ接続してみる
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
データアナリティクス事業本部、池田です。
ThoughtSpotからGoogleのデータウェアハウスである 
BigQuery に接続してみました。
他のDWHの思い出はこちら↓
BigQuery側準備
サンプルデータ
今回は BigQuery の一般公開データセット 
から出生データの natality サンプルテーブルを使ってみます。
ただし、サービス アカウント経由で一般公開データセットに接続する方法が分からなかったので、
自作のデータセット内にテーブルの内容をコピーしてきています。
(また、 Google スプレッドシートをBigQueryに参照させたテーブル 
も試したのですが、ThoughtSpotから接続できませんでした…)
この辺は接続する方法が分かれば追記します。たぶん。
サービス アカウントの作成
ガイドの BigQuery connection reference 
を参考に、GCPの サービス アカウント 
を作成します。
以下私の場合の作業をざっくり掲載します。
- ガイドで指定されたBigQuery関連の権限を持つ ロール を作成
   
- サービス アカウントを作成(↓表示されていませんが、前述のロールを紐づけ)
  
 キーを作成&取得しておく!
- 対象のテーブルを含むデータセットに、サービス アカウントをオーナーとして設定
   
ThoughtSpotから接続してみる
ThoughtSpotへの接続を作成します。 ガイドは Add a Google BigQuery connection です。
- 新規で接続の追加を開始
   
- 接続名などを入力し、BigQueryを選択
   
- GCPプロジェクトのIDと前章で作成したサービス アカウントのキーを入力
  
 (Continue押下後、入力に誤りがある場合や参照できるテーブルが全く無い場合などはエラーとなりました)
- データセットとテーブルの一覧が表示されるので、使用するものを選択し、接続を作成
   
- 接続が追加される
  
 テーブル名を選択して、データを確認できる
  
通常ならこのあとは、列の設定やテーブルの結合の設定などをするか、 ワークシート化することになると思います。 (参考ブログ: ThoughtSpotの列に関する設定 、 ThoughtSpotでGeo chartsを表示してみる 、 ThoughtSpotのワークシートを使ってみる )
詳細は割愛しますが、簡単な列の設定だけで、↓のような検索&可視化をすぐに行うことができました。

今回のサンプルデータは、双子以上の人数(数値)や、男子かどうか(boolean)などの列があるので、
実際に分析メンバーに展開する場合には、扱いやすいようにワークシートを使っての加工が必要そうだなと感じました。
おわりに
以前のSnowflakeやAmazon Redshiftの時はDBのユーザ&PWで接続を作成したので、 今回のサービス アカウント作成は毛色が違うなと感じました。でもまあ、大した作業量ではありませんでしたね。
今回のも含め、何種類かのDWHへの接続をこれまで試してみました。 ThoughtSpotでいろいろなサービスを使ったデータ分析が捗りそうですね!














