
ThoughtSpot CS Toolsのご紹介
ThoughtSpotのCS Tools はThoughtSpot社のカスタマーサクセスチームチームが作成したツールで、REST APIをPythonでプログラミングしていくつかの機能を実装したツールとなります。OSSで提供されているため、ThoughtSpotのサポートチームのサポートはありません。その代わりに、GitHub上のコミュニティで有志の方がサポートしてくれます。
ただ、CS Toolsについては情報が少なく、Helpもあまり充実しているとは言い難いため(フリーで利用できるツールなので仕方がないかもしれません)、本記事で詳細についてご紹介します。
CS Toolsの注意事項
- ThoughtSpotチームのメンバーによって保守されており無料で使用できる
- ThoughtSpotサポートチームはサポートできません
- 機能リクエスト・サポートは、GitHubディスカッション で行われます
- ソースコード は公開されています
本記事の注意事項
CS ToolsはThoughtSpotのバージョンに強く依存します。今回試した環境は、
- ThoughtSpot 10.12.0.cl-65~10.13.0.cl-87
- CS Tools 1.6.4
となります。
バージョンが変わるとできることなども変わったりしますので、ご注意ください。あくまで本記事の検証結果は、上記バージョンにおけるものとなります。
CS Toolsでなにができるの?
できることは以下のとおりです。
- ライブボードやAnswerを整理する
- 各オブジェクトの削除(タグ、リスト、関連オブジェクトすべて)
- 依存関係の洗い出し
- タグのみの一括削除
- 一括で共有
- 古いライブボード等の抽出
- 各オブジェクトの所有者の移転
- GitHub連携
- ThoughtSpotに登録されているデータからデータを抽出
- ThoughtSpot環境間でコンテンツの移設
- ThoughtSpot環境のバックアップ
- ユーザー管理
- 一括削除
前提条件
本記事におけるCS Toolsの作業環境は以下のとおりです
- Windows 11
インストール
インストールは、コマンドラインで以下のコマンドを打つだけです。
powershell -ExecutionPolicy ByPass -c "IRM <https://thoughtspot.github.io/cs_tools/install.py> | python - --reinstall"
実際にコマンドプロンプトを起動して、コマンドを打ってみましょう。

若干待たされますが、以下のようにインストールが始まります。

最終的に以下のようになればオッケーです。

インストール完了後は、アナウンスにある通りコマンドプロンプトは終了しましょう。
次に、実際にインストール完了しているかどうか確認してみましょう。
cs_tools --version
でバージョン情報の取得が可能です。

今回インストールされたのは、1.6.4のようです。
さらに、Helpを見てみましょう。
cs_tools --help
以下のように何ができるのか出てきます。

このHelpは各コマンドごとに用意されていて、ここでは4つのコマンド(config、logs、self、tools)が確認できますが、それぞれのコマンドごとにHelpコマンドを実行することが可能です。
例えば、configのヘルプを見る場合は以下のようなコマンドになります。
cs_tools config --help

configの中にもさらに子コマンド(check、create、delete、modify、show)があることが確認できます。これらも同様にHelpを見ることが可能です。
初期設定を行う
まずはconfigでThoughtSpotにアクセスできるようにする必要があります。以下のコマンドでConfigに関わるHelpを見ることができます。
cs_tools config create --help

つまり、設定を行うためには、以下のようなコマンドを打つ必要があります。そのためには、接続先クラスタのURLとユーザー名が必要です(以下コマンドでパラメータがYOUR~となっている部分はお手持ちの環境にあわせて書き換えて実行してください)。
cs_tools config create --config mysetting --url https://YOUR_CLUSTER_NAME.thoughtspot.cloud --username YOUR_TS_ID --password YOUR_PASSWORD
「mysetting」は設定名です。お好きにつけてください。その他、クラスタ名、ユーザーID、パスワードをコマンドに含めます。今回はID/Passwordの認証にしていますが、シークレットキーを使った認証(信頼できる認証)なども可能です(—secretオプションを利用)。
うまく行けば以下のような画面が表示されます。うまくいかない場合、例えばローカル認証でMFAを入れていると失敗するので、その時は信頼できる認証をオンにしてsecret_keyを使った認証にする必要があります。一度User/Passで設定を作ると、modifyの「--secret」オプションで上書きできないので、設定自体を作り直してください(つまり、認証方式を変える場合は、設定の上書きができないため、設定を作り直す必要があります)。

これで事前準備は完了です。
実際に使ってみる
機能の概要一覧は「cs_tools --help」で見ることができますが、それぞれの機能がどのようになっているかはさらにHelpで見ることができます(前述のとおりですが)。
cs_tools logs --help
のように、機能名のあとに「--help」をつけるとさらに細かい機能のHelpを見ることができます。

さらにHelpを見ていきましょう。logsにはreportという機能しかないみたいです。
cs_tools logs report --help

どうやらこれが一番最終到達点みたいです。
例えば、ログを「c:\temp」に保存してみましょう。以下のようにコマンドを打ちます。
cs_tools logs report "c:\\temp"
どうやら1つだけログが出力されたようです。

--latestオプションも含めれば以下のようなデータが取得できました。

どんな機能が使えますか?
一番トップレベルのメニューとしては、以下のような機能に分かれています。
- config ・・・ 設定ファイル
- logs ・・・ CS Toolsを使用したときのログファイルを取得する
- self ・・・ CS Tools自体の管理
- tools ・・・ メインとなるツール
つまり、toolsがメイン機能となります。toolsの中身を見てみましょう(以下の記載は、Helpに記載の内容をそのまま翻訳しています)。
- archiver ・・・ プラットフォーム内の古い回答とライブボードを管理する
- bulk-deleter ・・・ プラットフォームからメタデータオブジェクトを一括削除する
- bulk-sharing ・・・ ブラウザ内でテーブルおよび列レベルのセキュリティをスケーラブルに管理する
- extractor ・・・ ワークシート、ビュー、またはテーブルからデータを抽出する
- falcon-sharding ・・・ シャーディングのために既存のFalconテーブルからデータを収集する(オンプレ版のみ)。※現在クラウド版が主流のため実質使われないかと思います。
- git ・・・ 開発者にとって使いやすい方法でvsc/git APIエンドポイントを使用する
- rtql ・・・ リモートマシンからThoughtSpot TQL CLIへのクエリを可能にする(オンプレ版のみ)※現在クラウド版が主流のため実質使われないかと思います。
- rtsload ・・・ リモートマシンからThoughtSpotにファイルをロードする(オンプレ版のみ)※現在クラウド版が主流のため実質使われないかと思います。
- scriptability ・・・ ThoughtSpot環境間でTMLをメンテナンスする
- searchable ・・・ ThoughtSpotでThoughtSpotメタデータを探索する
- usermanagement ・・・ ユーザーを一括管理する(現在ユーザー削除と所有オブジェクトの移転のみが行えます)
※いくつかSoftware版(クラウド版ではないオンプレミス版です)のみ対応の機能があるのでご注意ください
※ここではクラウド版で利用できる機能にしぼってご紹介します
次に、いくつかCS Toolsを使うにあたって知っておくべきことをご紹介します。
Syncerって何?
ThoughtSpotとデータをやり取りする場合、どのデータを使うか、というところをSyncerで決定します。この機能が優れているところは様々なファイル形式やDBを使うことが可能なところです。
例えば、ThoughtSpotからデータを抽出するextractorを使うサンプルは以下のとおりですが、ここではSyncerを使っています。
cs_tools tools extractor search --identifier 7162ec31-08e3-44b0-b0b6-104db04c5971 --search-tokens "[売上] [オーダー日] [オーダー日].monthly" --syncer "csv://directory=.&delimiter=|" --target test --config mysetting
Syncerの保存先としては、様々な形式がサポートされています。
- CSV
- Databricks
- Excel
- Falcon
- Google BigQuery
- Google Sheets
- JSON
- Parquet
- Mock
- Postgres
- Redshift
- Snowflake
- SQLite
- Starburst
- Trino
上記のように、ローカルファイルからデータウェアハウスまでSyncerは豊富にサポートしています。つまり、このDB側をメンテしてあとはCS Toolsにおまかせ、ということができてしまうということになります。また、DBを保存先にすると、履歴として残るので安心です。
各ファイル・データベース向けのSyncerとしての設定は、こちら に書かれています。Syncerの設定自体はつどコマンドライン上で指定しますが、書式が決まっているので先程のリンク先を参照しましてください。DBならどうやって接続情報を与えるか、などのやり方が決まっている、ということになります。
また、Syncerの設定は、tomlファイルに記述することもできるので、設定が複雑な場合はtomlファイルを使ったほうがコマンドラインがすっきりすると思います。
注意事項:CSV形式でSyncer経由でThoughtSpot側にリストをアップロードする必要がある場合、Excelなどで元になるCSVを作成すると思いますが、この時BOM付きのCSVファイルにSyncerは対応していないのでご注意ください。この場合、メモ帳などでBOMなしで保存し直してください。
本記事では、Syncer利用にあたりCSVで実行しています。
Guidって何?
Guidは、ThoughtSpot内で各オブジェクトを区別できるよう、重複しないように各オブジェクトに与えられたIDです。TMLで表示すると確認できますし、各オブジェクトを表示した時にURL末尾からも取得可能です。
例えば、ある検索結果(Answer)があったとします。これを表示した時にブラウザのURLバーにあるURLの一番最後の部分がそのオブジェクトのGuidです。つまり、以下の赤い部分がGuidに該当します。
https://*****.thoughtspot.cloud/#/insights/saved-answer/651b1904-22ec-4a30-93c1-a752003bf898
また、TMLを表示した時、以下のようにそのオブジェクトのGuidが先頭に表示されます。
![]()
まとめ
- 本記事では、ThoughtSpot CS Toolsの概要についてご説明しました
- 設定の行い方から機能の一つを使うところまでご紹介しました
- CS Toolsを使うにあたり必要な事前知識についてもご紹介しました
Toolsで利用できる各機能の詳細は別の記事にてご紹介します。
※本記事は、2025/10/28時点の情報で構成しています
運営会社
