ThoughtSpotのワークシートを使ってみる

ThoughtSpotのWorksheets機能を使って、簡単に検索ができるようにする。
2021.01.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

データアナリティクス事業本部、池田です。
ThoughtSpotを活用するうえで、必ず必要となるであろうワークシートを使ってみました。

こちらの公式のガイドを参考にしています。
Create and use worksheets

ワークシートを使う目的は、ガイドによると…

・To pre-join multiple tables together.
・To give a user or group access to only part of the underlying data.
・To include a derived column using a formula.
・To rename columns to make the data easier to search.
・To build in a specific filter or aggregation.
・To give users a filtered set of data to search.

とのことです。
例えば、ワークシートを使わないと、 検索の時にテーブルをたくさん選ばなければいけません。

各テーブルを結合済みのワークシートであれば、1つ選択するだけです。 (↓画像は今回最終的に作成したワークシート)

↑の画像だとテーブルが少ないのでまだ良いですが、 共有されたり接続を作成したりで、 テーブルが多くなってくると過不足無く選択するのがけっこうたいへんです。

ワークシート作成前にすること(前提部分)

使用するテーブルの追加

今回は、 以前のブログで接続したAmazon RedshiftのTICKITというサンプルデータ を使います。 TICKITの各テーブルの説明は こちら

列の設定やテーブルの結合

列の設定は、ワークシートに対して行うことも可能ですが、 ワークシート作成開始時点でテーブルに対して設定されているものは ワークシートにも引き継がれます。 そのため、テーブルの段階で設定しておいた方が良いものは行います。
参考↓

ThoughtSpotの列に関する設定

例えばカラムのタイプや通貨のタイプなどは、 同じテーブルを使って複数ワークシートを作成したとしても、 それぞれで変わるようなものではないので、テーブルの段階で設定したおいたほうが良いと思います。

今回は一通りのカラム設定と結合の設定が適宜されている前提で、 次章からワークシートを作成していきます。
↓は今回の各テーブルを結合した結果です。

ちなみに、結合を作成する時に、それぞれ設定名(結合名)のようなものをつけるのですが、 これは丁寧にどのテーブル間の結合なのかが分かるようにつけた方が良いです。理由は後述。

ワークシートの作成

DATAタブからワークシートの作成を始めます。

Sourcesとしてワークシートの作成元となるテーブルを全て選択します。


Choose the worksheet join rule: という項目については、 ガイドに説明 があります。

When using Apply joins progressively, the number of rows in a search using the worksheet depends on which tables are part of the search.

内部結合によりデータが落とされることを想定したテーブル構成だと、 この辺の考慮が重要になってきそうです。(後日ブログにします。たぶん。)

各テーブルから必要なカラムを選択します。

(個人的には、テーブル名をクリックするとカラムが全選択されるので、 一度全て追加してしまってから、不要なものを除くのが作業しやすい気がします。)

カラムを追加する際に、 複数回結合されているテーブルや、結合の経路が複数あるものは、どの結合を使うのか選択 するように言われます。 (先述の丁寧に結合名をつけた方が良い、というのの理由がこれです。)

結合が複数あるものの両方を使いたい場合は、再度追加することで使うことができます。

最終的にカラム名の重複はNGなので、 重複が多くなりそうな時は一括で接頭辞を付けながらカラム選択していくと楽かもしれません。

ここまでを繰り返し、選択と削除やカラム名を設定していきます。

次に、必要であればFormulasで数式を定義します。

↑画像ではusersテーブルの姓と名をくっつけて氏名カラムを作成しています。
concat(firstname, ' ', lastname)
(関数のリファレンスは こちら

ちなみに、同じ数式を別のカラム名として複数追加することもできるようです。

なお、数式の一時的な追加は検索画面上で各利用者が行うこともできるので、 ここで作成するのは、高い使用頻度が見込まれるものだけに絞っても良いかもしれません。

次に、必要であればFiltersフィルター を作成します。
今回は省略しますが、 不要なレコードを除いたり、ワークシート共有する部署ごとにデータを制限するような用途になるかと思います。

最後にワークシート名などを設定して保存します。

ワークシートの編集

作成後の画面で行うことができる設定もあります。

テーブルの段階で設定していないカラムの設定などはここで行います。

また、各テーブルの結合方法は、テーブルの段階では指定ができない(内部結合)ので、ワークシート上で変更 します。

逆にワークシート上では RLS(Row level security) を設定することはできません。 (テーブルの段階で設定済みのものの有効/無効を設定できるだけ。)

(↑画像は管理者権限が無いユーザなので表示されていない状態です。)

ここまで設定が終わると、最後に対象のユーザーまたはグループに共有して、 ワークシートの活用が始まります。

使ってみる

SEARCHタブに切り替えて、作成したワークシートを選択して、

検索することができました。
sales seller_name top 10

↑画像ではselesテーブルの売上と usersテーブルの氏名(先述の数式で作ったもの)を使用して、 売上トップ10の販売員を表示しています。(カラム名にはシノニムを設定しています。)

おわりに

ワークシートの作成は、考慮事項が少し多いですが、 作成&共有することで、多くの利用者にメリットがあります。
うまく活用していきたいです。

参考文献