ThoughtSpotからBigQueryへ接続してみる

ThoughtSpotからBigQueryへの接続を作成する。
2021.02.01

データアナリティクス事業本部、池田です。
ThoughtSpotからGoogleのデータウェアハウスである BigQuery に接続してみました。

他のDWHの思い出はこちら↓

ThoughtSpotからSnowflakeへの接続を作成してみる

ThoughtSpotからRedshiftへ接続してみる

BigQuery側準備

サンプルデータ

今回は BigQuery の一般公開データセット から出生データの natality サンプルテーブルを使ってみます。 ただし、サービス アカウント経由で一般公開データセットに接続する方法が分からなかったので、 自作のデータセット内にテーブルの内容をコピーしてきています。
(また、 Google スプレッドシートをBigQueryに参照させたテーブル も試したのですが、ThoughtSpotから接続できませんでした…)
この辺は接続する方法が分かれば追記します。たぶん。

サービス アカウントの作成

ガイドの BigQuery connection reference を参考に、GCPの サービス アカウント を作成します。
以下私の場合の作業をざっくり掲載します。

  1. ガイドで指定されたBigQuery関連の権限を持つ ロール を作成

  2. サービス アカウントを作成(↓表示されていませんが、前述のロールを紐づけ)

    キーを作成&取得しておく!

  3. 対象のテーブルを含むデータセットに、サービス アカウントをオーナーとして設定

ThoughtSpotから接続してみる

ThoughtSpotへの接続を作成します。 ガイドは Add a Google BigQuery connection です。

  1. 新規で接続の追加を開始

  2. 接続名などを入力し、BigQueryを選択

  3. GCPプロジェクトのIDと前章で作成したサービス アカウントのキーを入力

    (Continue押下後、入力に誤りがある場合や参照できるテーブルが全く無い場合などはエラーとなりました)

  4. データセットとテーブルの一覧が表示されるので、使用するものを選択し、接続を作成

  5. 接続が追加される

    テーブル名を選択して、データを確認できる

通常ならこのあとは、列の設定やテーブルの結合の設定などをするか、 ワークシート化することになると思います。 (参考ブログ: ThoughtSpotの列に関する設定ThoughtSpotでGeo chartsを表示してみるThoughtSpotのワークシートを使ってみる

詳細は割愛しますが、簡単な列の設定だけで、↓のような検索&可視化をすぐに行うことができました。

今回のサンプルデータは、双子以上の人数(数値)や、男子かどうか(boolean)などの列があるので、 実際に分析メンバーに展開する場合には、扱いやすいようにワークシートを使っての加工が必要そうだなと感じました。

おわりに

以前のSnowflakeやAmazon Redshiftの時はDBのユーザ&PWで接続を作成したので、 今回のサービス アカウント作成は毛色が違うなと感じました。でもまあ、大した作業量ではありませんでしたね。

今回のも含め、何種類かのDWHへの接続をこれまで試してみました。 ThoughtSpotでいろいろなサービスを使ったデータ分析が捗りそうですね!

参考文献