0% found this document useful (0 votes)
534 views

ThoughtSpot User Guide 4.5

Uploaded by

jon
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
534 views

ThoughtSpot User Guide 4.5

Uploaded by

jon
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 409

Users Guide

Version 4.5 December 13, 2019


Copyright for ThoughtSpot publications. © 2019 ThoughtSpot, Inc. All rights
reserved.

ThoughtSpot, Inc. 910 Hermosa Ct


Sunnyvale, CA 94085

All rights reserved. This product is protected by U.S. and international copyright
and intellectual property laws. ThoughtSpot is a trademark of ThoughtSpot, Inc. in
the United States and/or other jurisdictions. All other marks and names mentioned
herein may be trademarks of their respective companies.
ThoughtSpot Users Guide December 13, 2019

Table of Contents
Introduction............................................................................................................................. 5

Getting Started

Finding your way around .................................................................................................... 6

ThoughtSpot browser access .......................................................................................... 11

Your user preferences ...................................................................................................... 13

Understanding privileges.................................................................................................. 16

Use stickers to organize ................................................................................................... 21

Use Search

What are searches and answers?.................................................................................... 25

Search basics

Start a new search ........................................................................................................ 28

Choose a data source................................................................................................... 30

Search bar features ...................................................................................................... 31

Search suggestions ...................................................................................................... 34

Search results and column types ................................................................................ 37

Last data refresh time................................................................................................... 39

Work with Answers ....................................................................................................... 41

Results that are tables ...................................................................................................... 45

Use keywords in search

Overview of keyword searchess.................................................................................. 48

Time series analysis...................................................................................................... 51


Search using growth over time.................................................................................... 56

Proximity searches "near" and "farther than"............................................................ 60

Work with filters

Understand filters.......................................................................................................... 62

Add a filter to a table..................................................................................................... 65

Add a filter to a chart .................................................................................................... 67

Create a bulk filter......................................................................................................... 69

Delete a filter ................................................................................................................. 72

Filter on null, blank, or empty values........................................................................... 73

Other search actions

Other search actions .................................................................................................... 75

[email protected] i
ThoughtSpot Users Guide December 13, 2019

Change result display options ..................................................................................... 76

Show underlying data ................................................................................................... 80

See the search behind a result .................................................................................... 82

Apply conditional formatting to a table....................................................................... 84

Download your search.................................................................................................. 89

Replay search ................................................................................................................ 91

Work with charts

Understand charts............................................................................................................. 93

Chart types

Column charts ............................................................................................................... 96

Bar charts ...................................................................................................................... 98


Line charts ..................................................................................................................... 99

Pie charts ..................................................................................................................... 100

Area charts .................................................................................................................. 102

Scatter charts .............................................................................................................. 104

Bubble charts .............................................................................................................. 105

Pareto charts ............................................................................................................... 107

Waterfall charts ........................................................................................................... 108

Treemap charts ........................................................................................................... 109

Line column charts ..................................................................................................... 111

Funnel charts ............................................................................................................... 114

Geo charts ................................................................................................................... 115

Pivot table .................................................................................................................... 119

Changing a chart

Change the chart......................................................................................................... 125

Reorder the labels....................................................................................................... 126

Set the y-axis range .................................................................................................... 127

Hide and show values ................................................................................................. 129

Change chart colors ................................................................................................... 131

Additional chart options ............................................................................................. 135

Zoom into a chart........................................................................................................ 137

Work with formulas

Understand formulas ...................................................................................................... 139

Add a formula to a search .............................................................................................. 141

View or edit a formula in a search ................................................................................. 145

Aggregate formulas

[email protected] ii
ThoughtSpot Users Guide December 13, 2019

Overview of aggregate formulas ............................................................................... 147

Cumulative functions .................................................................................................. 151

Grouping functions ..................................................................................................... 155

Moving functions......................................................................................................... 157

Filtered aggregation functions................................................................................... 162

Conversion functions ...................................................................................................... 167

Date functions ................................................................................................................. 168

Percent (simple number) calculations........................................................................... 172

Formula operators........................................................................................................... 173

Nested formulas .............................................................................................................. 175

Formulas for chasm traps .............................................................................................. 176

Work with worksheets

Understand worksheets ................................................................................................. 177

Save a search as a worksheet ....................................................................................... 179

Create a search from a worksheet ................................................................................ 181

Worksheet example scenarios....................................................................................... 183

Use pinboards

Basic pinboard usage ..................................................................................................... 185

Edit a pinboard ................................................................................................................ 192

Pinboard filters ................................................................................................................ 200

Schedule a pinboard job................................................................................................. 204

Search actions within a pinboard .................................................................................. 208

Copy a pinboard .............................................................................................................. 209

Copy a pinboard or visualization link ............................................................................ 211

Reset a pinobard or visualization .................................................................................. 214

Start a slideshow ............................................................................................................. 218

Work with data

Understand data sources ............................................................................................... 220

Create and load CSV Files .............................................................................................. 222

Append data through the UI ........................................................................................... 226

View a data profile........................................................................................................... 228

Date and currency format settings................................................................................ 229

SpotIQ

What is SpotIQ............................................................................................................. 231

101: Load and analyze data........................................................................................ 233

101: Review and save insights ................................................................................... 238

[email protected] iii
ThoughtSpot Users Guide December 13, 2019

101: Do more with SpotIQ .......................................................................................... 244

Best SpotIQ Practices ................................................................................................ 252

Custom SpotIQ analysis ............................................................................................. 255

Advanced R Customizations ...................................................................................... 260

Share your work

About sharing .............................................................................................................. 267

Share a pinboard ......................................................................................................... 269

Share answers ............................................................................................................. 271

Share uploaded data................................................................................................... 273

Revoke access (unshare) ........................................................................................... 276

Slack and ThoughtSpot

Slack and Spot................................................................................................................. 278

How to use Spot .............................................................................................................. 279

More help and support....................................................................................................... 283

Keyword reference............................................................................................................. 288

TQL reference ..................................................................................................................... 296

tsload flag reference .......................................................................................................... 309

tscli command reference................................................................................................... 312

Date and time formats reference...................................................................................... 340

Row level security rules reference ................................................................................... 344

Formula function reference ............................................................................................... 354

Alert codes reference ........................................................................................................ 367

User action codes reference ............................................................................................. 376

Error codes reference ........................................................................................................ 378

Frequently asked questions .............................................................................................. 405

[email protected] iv
Introduction to the User Guide December 13, 2019

Introduction to the User Guide


This ThoughtSpot User Guide contains information on navigating and searching data with ThoughtSpot.

It will assist you with starting new searches, managing your pinboards, and troubleshooting.

ThoughtSpot enables you to view and analyze your data through a search-based user interface. You can

create your searches on the fly by typing them into a search bar, like you do when using an internet

search engine. ThoughtSpot makes it easy to see your data, get your questions answered, create

interactive graphs, and customize pinboards. You do not need to understand how the data is stored,

attend days of training, or know SQL to do these things. Collaboration and security features make it easy

for to protect sensitive data and share information safely with others.

ThoughtSpot gives administrators the ability to modify data properties to meet business needs, for

example by providing search synonyms for common terms, boosting the importance of a column in

search results, or formatting how the data appears. So if you are not getting the answers you expect

when using ThoughtSpot, check with your ThoughtSpot administrator to see if some settings may need

to be changed.

• Finding your way around

ThoughtSpot is organized into several sections to make navigation easy. You can reach them

by using the menu bar.

• About the user profile

The user icon lets you view your profile or sign out of ThoughtSpot.

• Understanding privileges

The things you can do in ThoughtSpot are determined by the privileges you have. These are

set at the group level.

• About stickers

You can create stickers to make it easier for people to find data sources and pinboards.

ThoughtSpot Users Guide Page 5


Finding your way around December 13, 2019

Finding your way around


Summary: ThoughtSpot is organized into several sections to make
navigation easy. You can reach them by using the menu bar.

These are the different sections in ThoughtSpot:

Home

Click the ThoughtSpot logo to go to the application home page. At the top of the home page is a search

bar and below that several areas that show activity in your ThoughtSpot instance.

Keyword Examples

All time popular Shows all time popular answers and pinboards by number of views. You
Recently trending can choose between all-time popular or recently in the last 15 days. Small
icons illustrate the type of visualization you'll find when you click on an

item.

ThoughtSpot Users Guide Page 6


Finding your way around December 13, 2019

Keyword Examples

Recently viewed Answers and pinboards you've viewed recently.

Recent team activity Answers, pinboards, worksheets, and tables people in your company have
created or edited recently.

ThoughtSpot Users Guide Page 7


Finding your way around December 13, 2019

Keyword Examples

Did you know? Contains auto analysis results from SpotIQ. Visible only to users that have
the SpotIQ privilege.

The items shown in these areas are limited to answers, pinboards, worksheets, and other objects you

have access to. For example, if you don’t have the ability to use SpotIQ, that option does not appear.

Search

Search is where you will spend most of your time. It allows you to search and explore your data. Choose

your data sources and type in the search bar at the top. As you type your search, results will appear in

the main part of the screen as either a table or a chart.

To learn more about this section, visit About search.

Answers

Answers are the result of a single search. You can save an answer you want to work more on later, or

just keep it for your personal use. Answers are for you alone, until you share them with others.

ThoughtSpot Users Guide Page 8


Finding your way around December 13, 2019

Pinboards

Pinboards are collections of related search results. You can create your own pinboard or add to an

existing one. Once a pinboard has been saved, it can be shared with others or viewed as a slideshow.

The Pinboards page shows a list of saved pinboards. Click on one to view, edit, or share it.

To learn more about pinboards, visit About pinboards.

Data

DATA contains a list of data sources (tables and worksheets). These are usually loaded and managed by

your administrator. However, you may be able to import a spreadsheet (Excel or CSV) here, if you have

the correct privileges.

To learn more about this section, visit Working with data.

Admin

Admin only appears if you have administrator privileges. This section is covered in the ThoughtSpot

Administrator Guide.

Help

Help is a support resource for ThoughtSpot. It contains short videos, a keyword reference, links to

documentation, and other useful materials. You can also find the support contact information and

software version number here.

User

The user icon allows you to either view your preferences or log out. You can also change your icon here.

To learn more about this section, visit About the user profile.

ThoughtSpot Users Guide Page 9


Finding your way around December 13, 2019

Related information

Set your ThoughtSpot locale

ThoughtSpot Users Guide Page 10


ThoughtSpot browser access December 13, 2019

ThoughtSpot browser access


To set up and explore your data, access the ThoughtSpot application from a standard Web browser

using a username and password. Before accessing ThoughtSpot, you need:

• The Web address (IP address or server name) for ThoughtSpot.

• A network connection.

• A Web browser.

A username and password for ThoughtSpot.

Supported Web browsers

The following browsers are verified to work well with the ThoughtSpot application:

Browser Version Operating System

Google Chrome 20 and above Windows 7 or greater, Linux, MacOS

Mozilla Firefox 14 and above Windows 7 or greater, Linux, MacOS

Internet Explorer 11 Windows 7 or greater

Safari 10 or greater MacOS

 Tip: While Internet Explorer is supported, using it is not recommended. Depending on your

environment, you can experience performance or UI issues when using IE.

Log in

To log in to ThoughtSpot from a browser:

1. Open the browser and type in the Web address for ThoughtSpot: http://HOSTNAME_OR_IP

2. Enter your username and password and click Sign In.

ThoughtSpot Users Guide Page 11


ThoughtSpot browser access December 13, 2019

Log out

Once you’re done with your search session, you can optionally log out of ThoughtSpot. To log out of

ThoughtSpot from a browser:

1. Click your user icon at the top right hand corner of the screen.

2. Click Sign out.

ThoughtSpot Users Guide Page 12


About your user profile December 13, 2019

About your user profile


Summary: The user icon lets you view your profile or sign out of
ThoughtSpot.

To view the user actions, click on your user icon on the top right corner of the page.

Click Profile to go to your profile preference page, where you can change your icon, email, and locale

preferences.

Language and data format settings

The language the ThoughtSpot UX displays is based off of the locale in a user’s profile. The locale

preferences control the language and data formats (date and number formats) by geographic locations.

In addition to American English (en-US), ThoughtSpot supports:

Locale Language

de-DE German

en-CA Canadian English

en-GB United Kingdom English

en-US English (United States)

es-US (beta) Spanish (United States)

ThoughtSpot Users Guide Page 13


About your user profile December 13, 2019

Locale Language

fr-CA (beta) French (Canada)

fr-FR (beta) French (France)

ja Japanese

pt-BR (beta) Portuguese (Brazil)

zh-CN (beta) Chinese (S)

Date and number formats change to reflect your locale. So, if you set Japanese as your default locale in

your profile settings, then the interface will update to reflect that after you refresh your page.

Keywords, operators, and error messages are included in the translated material. Formulas, however, are

not translated. Also, all metadata remains as user inputted.

For example, if you are using ThoughtSpot in the US, the number formatting should look like this:

xxx,xxx.xx . And in Europe, it should look like this: xxx.xxx,xx .

 Warning: It is possible that you set your locale but find strings in the UI still appear in English,

this indicates an untranslated string. Please notify ThoughtSpot support.

ThoughtSpot Users Guide Page 14


About your user profile December 13, 2019

How other users see you

You can change your picture by clicking Upload Picture. The system accepts GIF , BMP , JPEG , and

PNG files that do not exceed 4MB in size.

Get email notifications

You can change your email notifications preferences by checking or unchecking Email me sharing

notifications and clicking Update Preferences.

Clicking Sign out logs you out of ThoughtSpot, and takes you back to the sign in page.

ThoughtSpot Users Guide Page 15


Understanding privileges December 13, 2019

Understanding privileges
Summary: The things you can do in ThoughtSpot are determined by
the privileges you have. Privileges are granted through group
membership.

If you are trying to do something in ThoughtSpot, and cannot access the screens to accomplish it, you

may not have the correct privileges. In this case, you should contact your administrator and explain what

you want to accomplish. Your administrator may be able to grant you additional privileges.

 Note: Permissions to see and edit tables, worksheets, and pinboards are not affected by

privileges. They are given when these items are shared with you.

Here are the privileges that the administrator sets, and the capabilities they enable:

Privilege Description

Has administration Can manage Users and Groups and has view and edit access to all data.
privileges Users with this privilege can also download a saved answer.

Can upload user data Can upload their own data from the application's DATA page using Ac-
tions > Upload data.

Can download data Can download data from search results and pinboards.

Can share with all Can see the names of and share with users outside of the groups the user
users belongs to. Members of groups with this privilege can also share with
groups marked as NOT SHAREABLE.

Can manage data Can create a worksheet. Can also create an aggregated worksheet from
the results of a search by selecting Save as worksheet. Can also use
ThoughtSpot Data Connect, if it is enabled on your cluster.

Can schedule pin- Can create pinboard schedules and edit their own scheduled jobs.
boards

Has Spot IQ privilege User can use SpotIQ's auto analyze function.

ThoughtSpot Users Guide Page 16


Understanding privileges December 13, 2019

Privilege Description

Can Administer and


Bypass RLS
Users in groups with this privilege (directly or via group inheritance):

• Are exempt from row-level security (RLS) rules.


• Can add/edit/delete existing RLS rules.
• Can check or uncheck Bypass RLS on a worksheet.

Your installation configuration may enable or disable the availability of this


privilege. By default, it is enabled. Administrators or groups with the Has
administration privilege can grant this privilege.

The following table shows the intersection of user privilege and ability:

ThoughtSpot Users Guide Page 17


December 13, 2019

Page 18
The following table shows the intersection of user privilege and ability:
a
at
rs ps
1
. up s ps D t
ps ro se le hi hi s d ec yz
e
S S ro at
a G lu ru ns ns ol oa er n er l
it
W W .P a D in al LS io io C pl ew on ul na
g ol at ith ith at at n U Vi C d
o-
A
Ed Ag C D oa
d R el el de ith a he
e/ w w e R id a at t
at at
e ify oa
d nl e e ag D d
R H w m D Sc Au
re re od pl ow ar ar an rU ea e in he se se se
C C M U D Sh Sh M C R Se Jo Sc U U U
Has administration Y Y Y Y Y Y Y Y Y2 Y Y Y Y Y Y Y
privilege
Can upload user N N N Y N Y N N Y3 Y4 N N N N N N
data
Can download da- N N N N Y Y N N N Y4 N N N N N N
ta
Can manage data Y Y Y Y N Y N N Y4 Y4 Y5 Y N Y N N
Can Auto-Analyze N N N N N N N N N Y4 N N N N N Y
Can schedule pin- N N N N N N N N N Y4 N N N N Y N
boards

ThoughtSpot Users Guide


Can share with all N N N N N Y Y N N Y4 N N N N N N
Understanding privileges

users
Can Administer N N N N N N N N Y N N N N N N N
and Bypass RLS
None N N N N N Y N N N Y4 N N N N N N
a
at
December 13, 2019

Page 19
rs ps
1 s
ps
. up se
s
hi
p D t e
ro le hi s ad ec yz
S S ro at
a G lu ru ns ns ol o er n er al
W W .P a in al LS io io C pl ew on l
An
it g ol at D
ith ith at at n U Vi C du -
Ed Ag C D oa
d R el el de ith a he to
e/ w w e R id a at
at at
e ify oa
d nl e e ag D d
R H w m D Sc Au
re re od pl ow ar ar an rU ea e i n he se se se
C C M U D Sh Sh M C R Se Jo Sc U U U
Table notes:
1. Applies to non-owners only.
2. Any tables.
3. Author of at least one table in relationship.
4. Only when read permission for columns used in the relationship.
5. With edit permission.

ThoughtSpot Users Guide


Understanding privileges
Understanding privileges December 13, 2019

ThoughtSpot Users Guide Page 20


Use stickers to organize December 13, 2019

Use stickers to organize


Summary: Stickers enable you to create categories for classification
of objects, including pinboards, answers, data sources, and
worksheets.

You can create stickers to make it easier for people to find data sources and pinboards. Stickers are

global in scope. This means that everyone can see the stickers and use them to tag objects. They can

also filter lists of objects by sticker. Stickers are often used to designate subject areas, such as sales,

HR, and finance, but you can use them any way you like.

Keep in mind these permissions when working with stickers:

• Only administrators can create stickers.

• Anyone can apply a sticker.

• Anyone can filter by a sticker.

Create a sticker

Only administrator users can create stickers. Anyone can apply the stickers you create, or use them as

filters when selecting from a list of sources or pinboards.

To create a sticker:

1. Navigate to the Manage Data or Pinboards screen using the icons in the top navigation bar.

2. Choose Select sticker, scroll to the bottom of the list, and click + Add.

ThoughtSpot Users Guide Page 21


Use stickers to organize December 13, 2019

3. Type the name for the new sticker.

4. You can change the name or color of a sticker by clicking the edit icon next to its name.

Apply a sticker

Only administrators create stickers, but anyone with edit privileges can tag an object with a sticker.

To tag an object with a sticker:

1. From the top menu, choose Answers, Pinboards, or Data.

2. Find the item(s) you want to tag in the list, and check the box next to its name.

ThoughtSpot Users Guide Page 22


Use stickers to organize December 13, 2019

3. Click the apply sticker icon and choose one from the list. You can apply as many stickers as

you like to an object.

Filter by stickers

Whenever you are selecting objects from a list, you can filter by sticker to find what you’re looking for.

Anyone can use stickers to filter lists of pinboards or data sources. You can also filter by sticker when

selecting data sources.

To filter by sticker:

1. From the top menu, choose Answers, Pinboards, or Data.

2. Click on Select sticker, and select a sticker to filter by. Click on its name.

ThoughtSpot Users Guide Page 23


Use stickers to organize December 13, 2019

ThoughtSpot Users Guide Page 24


What are Searches and Answers? December 13, 2019

What are Searches and Answers?


Summary: You use search answer questions about your data without
having to consult a data analyst.

Using ThoughtSpot’s relational search is simple, so anyone can use it. In the search bar, type what you

are interested in exploring, for example revenue midwest sales rep . Searches return a set of results

in the form of a table or a chart. ThoughtSpot likes to call this set of results in response to a search an

answer.

As you get better with ThoughtSpot’s search, you will be able to get more out of your data by performing

more complex searches. There are a few basic things you should understand before starting a new

ThoughtSpot search.

How do I search data?

You’ve probably seen one of these before:

Click in the box and start typing some letters. As soon as you begin typing, ThoughtSpot suggests some

search terms Type slowly and use the suggestions to find what you’re looking for.

Whenever you finish typing a word, you’ll see an answer in the form of a chart or a table.

You should know that search in ThoughtSpot is more like an Amazon search than a conversation. For

example. Instead of:

Find me all books by Lewis Carroll with the title Alice in Wond
erland

You’d type:

ThoughtSpot Users Guide Page 25


What are Searches and Answers? December 13, 2019

carroll alice

Or consider Google. You wouldn’t type in:

Find me the largest city by population

You’d type:

largest city by population

or simply:

largest city population

That’s how search works in ThoughtSpot. You can use some helping words like “by” and “for” but they

can also be left out, and the search will return the same answer.

What kinds of things can I type?

Search is based on the tables that exist in your data. Tables are made of rows and columns, like

spreadsheets. So you can search by typing in any of these words:

• The column name: like revenue, product name, or store

• Any of the values in the columns: like 20000, kitten chow, or richmond

• One of the special keywords ThoughtSpot understands: like yesterday, >, or contains

Save an answer

An answer is the result of a single search. You can save an answer you want to work more on later, or

just keep it for your personal use. You can also share an answer with other users. The Answers tab is

where you can view and then the your saved search results.

ThoughtSpot Users Guide Page 26


What are Searches and Answers? December 13, 2019

Related information
• Choose a data source

• Search bar features

• Search suggestions

• Search results and column types

• Share an answer

ThoughtSpot Users Guide Page 27


Start a new search December 13, 2019

Start a new search


Summary: Starting a new ThoughtSpot search is simple, like starting
a new Google search.

To start a new search:

1. Click Search on the top navigation bar. You can also click Search your data at the top of the

home page.

2. Choose your sources by clicking Choose Sources.

To see details of all of the data, click Explore all data.

ThoughtSpot Users Guide Page 28


Start a new search December 13, 2019

a. Filter through all available sources by using the search bar or stickers.

b. Select your sources.

c. Click Done.

3. Add columns to the search bar, or double click columns in the Data column in the left panel.

The columns listed in the left panel are grouped together by data sources for discoverability

and ease of access. You can also add multiple columns at once by clicking each column to

select it, and then click + Add Columns.

Your search is given an automatic title based on your search columns, and is displayed as either a table

or chart, depending on how it is best represented. You can change the view to fit your needs.

ThoughtSpot Users Guide Page 29


Choose a data source December 13, 2019

Choose a data source


Summary: Before you start a new search, make sure you have
chosen the right data sources.

To begin a new search, you must first select your data sources by clicking on the Choose Sources

button. You will see a list of data sources that have been shared with you. The data sources are usually

created by your administrator, though you can also upload your own data.

Searches happen in the context of the selected data sources. ThoughtSpot will also make suggestions

from other data sources for you, if what you’re typing can’t be found in the selected data source.

ThoughtSpot Users Guide Page 30


Search bar features December 13, 2019

Search bar features


Summary: The search bar is designed to make it easy for you to
identify your search terms.

A lot of work has gone into making ThoughtSpot’s search bar intuitive and easy to use. However, it still

helps to know some details of how the search bar works.

Boxed search phrases

The search bar shows boxes around each search phrase, so you can easily see where it begins and

ends. Your search phrases still appear as text when you are typing, but whenever you click out of the

search bar, they are boxed. Search phrases have blue boxes, and filters have white boxes.

Removing search phrases

When you click on a search phrase, it is highlighted, so you can easily replace it with one of the

suggestions. When you hover over on a boxed phrase, you’ll see an x, which you can click to remove it.

When you delete a phrase, your search will automatically update.

If you find yourself looking at a table or chart, but it doesn’t seem to contain all the data you expect, try

looking in the search bar for white boxes (filters). If you remove all the filters, you will again see all the

available data for that search.

ThoughtSpot Users Guide Page 31


Search bar features December 13, 2019

Spell check

The search bar includes spell check. If you spell or type a term incorrectly, your suggestions will include

the correct spelling of the term or keyword.

The spell check in the search bar also performs a metaphone check for similar sounding words on text

data values.

Dictionary synonyms

A dictionary of common word synonyms is bundled with ThoughtSpot. The dictionary contains

synonyms for common terms that occur in data. For example, if you type in “gross”, and that word is not

found, ThoughtSpot will consider it a synonym for “revenue”. We use the WordNet library of terms,

which takes word proximity into account, and weights words by similarity to the target term.

This frees you from having to know the exact term or column name used in a data source. You can still

find the answer in many cases, if you type a word with the same meaning as a different word that occurs

in the data.

Search help

If you type an unrecognized search term, you will be offered tips on searching. The search help appears

when you type a term that isn’t understood by ThoughtSpot and then press the Enter key.

ThoughtSpot Users Guide Page 32


Search bar features December 13, 2019

Related searches

At the end of the Search page is the system provides searches you might find useful. These are quick

searches you can load into the search bar by simply click on the provided link.

ThoughtSpot Users Guide Page 33


Search suggestions December 13, 2019

Search suggestions
Summary: How ThoughtSpot learns from your searches and helps
you.

Search suggestions include complete recent searches that are similar to the search you are constructing.

You can also search for saved objects, such as pinboards.

Usage-based ranking (UBR)

Search suggestions are relevant to the data and personalized to your search behavior. ThoughtSpot

learns over time what columns are most important to you and to your company as a whole. Then, it uses

this knowledge to rank the search terms it offers. The term for this is usage-based ranking (UBR).

ThoughtSpot keeps usage statistics on frequency of search terms in its local cache. If you frequently use

type terms related to finance or to a particular product, ThoughtSpot provides you with related

suggestions more frequently. Using this information, frequently used terms and phrases are offered in

search suggestions more often than those that are not commonly used.

ThoughtSpot Users Guide Page 34


Search suggestions December 13, 2019

UBR based on search patterns makes ThoughtSpot more valuable over time. Search suggestions

become more helpful the more searches you complete.

Recent searches

As you type in the search bar, you are given search suggestions that include recent searches. This

makes it easier to learn what you can do with ThoughtSpot. In addition to displaying your own recent

searches, the search bar also learns from searches made by other people. This should provide you with

interesting searches that you may not have been aware of. You’ll see recent searches in a separate

section of search suggestions, as recent searches appear higher in suggestions than other terms.

Auto-disambiguation in search

When there are more than one possible meaning for a search term, you can provide disambiguation by

selecting from a list of choices. Now, your choice is sticky. That means you won’t have to select it again,

in the scope of the current search.

Out of scope columns

Search suggestions are not limited in scope to the columns that you select as the data sources.

Suggestions can include columns that are out of scope, too. If you choose one of these suggestions, the

columns will be added to the data sources scope for you.

ThoughtSpot Users Guide Page 35


Search suggestions December 13, 2019

Object searches

Search suggestions also include relevant pinboards that have already been created. This means that if a

pinboard that is similar to the search you’re trying to do already exists, it will appear in search

suggestions.

ThoughtSpot Users Guide Page 36


Search results and column types December 13, 2019

Search results and column types


Summary: Searches in ThoughtSpot use columns that are defined as
either attributes or measures.

ThoughtSpot identifies search columns ( sales , customer_name , total_sale ) as either attributes or

measures. The columns you choose impact your search results. That’s because several chart types

expect that your search contains a certain number of attributes and a certain number of measures.

Attributes

Attribute are primarily text or date values. Attributes make up the x-axis of your chart most of time. Some

examples of attributes in terms of a person include name, eye color, occupation, social security number,

address, employee ID, and phone number.

Measures

Measures are numeric values you can do math on, with meaningful results. You will most likely find your

measures on the y-axis of your chart. Some examples of measures in terms of a person are age, height,

and weight.

Query details

After, or while completing a search, you can see how ThoughtSpot displayed the answer. Click the

exclamation mark on the right hand side of the search bar to open the Query details dialogue box.

ThoughtSpot Users Guide Page 37


Search results and column types December 13, 2019

This dialog shows measures ThoughtSpot computed, for each combination of attributes. Choose

QUERY VISUALIZER to see search filters and how the tables were linked and used.

ThoughtSpot Users Guide Page 38


Last data refresh time December 13, 2019

Last data refresh time


Summary: You can see the last time at which data was refreshed
without having to visit the **DATA** page.

Hover over the data when choosing a data source to see the last time it was updated. You will also see

when it was created and by whom.

You can also hover over a column in the DATA column to see when it was last refreshed. This popup will

also show sample values from that column.

And lastly, you can hover over a column or column name in an answer to see last updated information.

ThoughtSpot Users Guide Page 39


Last data refresh time December 13, 2019

ThoughtSpot Users Guide Page 40


Work with Answers December 13, 2019

Work with Answers


Summary: Answers are the saved results of a search.

You can save the results of any search and share these with other people. Your saved searches appear

on the Answers page. From this page, you can see answers you saved and answers other people have

saved, provided these people shared them with you or a group you belong to.

Apply a sticker

Only administrators create stickers, but anyone with edit privileges can tag an object with a sticker. To

add a sticker to an answer:

1. Find the item(s) you want to tag in the list.

2. Check the box next to its name.

3. Click the apply sticker icon and choose one from the list.

You can apply as many stickers as you like to an object.

Copy an answer

You can make a copy of an answer if you would like to make edits without changing the original answer.

When copying, you can type in a different name for your copy.

1. Click on Answers, on the top navigation bar.

2. On the answer list page, click the answer you would like to copy.

3. Click Actions and select Make a copy.

ThoughtSpot Users Guide Page 41


Work with Answers December 13, 2019

4. Give your answer a new name and description. Then click Save.

ThoughtSpot Users Guide Page 42


Work with Answers December 13, 2019

Other features

At the bottom of the Answers page, you can find two additional areas, SpotIQ Insights and Related

Searches. These areas are derived from your original answer and you can select them to deepen your

search.

ThoughtSpot Users Guide Page 43


Work with Answers December 13, 2019

The SpotIQ Insights section is only visible to users with the Has SpotIQ privilege. Once you expand an

insight on this list, an Edit button allows you modify the insight and make it your own. Your installation

configuration determines how many insights can appear in this section. The default is 6.

ThoughtSpot Users Guide Page 44


Results that are tables December 13, 2019

Results that are tables


Summary: Tables display your answer in a format similar to an Excel
spreadsheet.

Your search results are not limited by the number of attributes or columns in order to be presented as a

table. You can have a table with just one attribute or measure. When you choose to display your answer

as a table, ThoughtSpot will create the columns for you and any relevant headlines.

Sometimes when you view a table, the results will be aggregated (combined). For example, if you only

type “revenue”, you’ll see the total sum of all the revenue the table contains as one combined number. If

you include the keyword monthly , the results will be aggregated by month. You can rearrange the

column order of your table among other search actions.

Every table gives you the option to rearrange the column order and change the column widths.

Rearrange column order

You can rearrange the column order of your table after adding all of your search terms.

To rearrange the column order:

1. While viewing your answer as a table, click the column header you would like to move.

2. Drag it across to its new position.

Resize column widths

You can resize the column widths of your table after adding all of your search terms. Any adjustments

you make to the column widths of your table are saved when you pin the table to a pinboard. To resize

the column widths:

1. While viewing your answer as a table, hover over a column border in the column header row.

2. Click and drag the border to create your preferred column width.

ThoughtSpot Users Guide Page 45


Results that are tables December 13, 2019

Sort columns

You can sort a table by column values by clicking on the column title. If you hold down the SHIFT key

you can click on multiple heads and sort on them in turn.

 Tip: This same functionality is available on tables you see elsewhere in ThoughtSpot. For

example, a table in the DATA page is also sortable in this manner.

About headlines (summary information)

Headlines display summary information of a table result. Headlines contain summary information for

each column of a table. They appear at the bottom of the table in individual boxes.

ThoughtSpot automatically creates up to 20 headlines for each table. Your ThoughtSpot configuration

can be changed to accommodate more if needed.

ThoughtSpot Users Guide Page 46


Results that are tables December 13, 2019

You can modify how you’d like the value to be displayed by clicking the dropdown on a headline and

selecting a different type of aggregation. The usual available aggregations are total, average, standard

deviation, variance, minimum, and maximum. There are also unique count and total count values

available for the appropriate columns.

To add a headline to a pinboard, hover over it and click the Add to pinboard icon.

You can decide whether or not to display headlines in your table results. To customize headlines, choose

Actions > Customize summaries.

ThoughtSpot Users Guide Page 47


Overview of keyword searches December 13, 2019

Overview of keyword searches


Summary: Use keywords when asking a question to narrow and
further define your search.

In addition to column names, values, and filters, the search bar also accepts keywords. You can access

a list of keywords and other reference materials in the references section or in the help center. Open the

help center by clicking Help on the top navigation bar.

Within the help center, you’ll find videos and documentation that pertain to the current version of

ThoughtSpot. Here is where you can also find a list of keywords. You can expand each section to see

which keywords are available and examples on how to use them.

Example: Simplify search with the top keyword

The top keyword can be a powerful addition to your search when you remember to use it. By using

one keyword, you can greatly simplify your searches. The top keyword is one such keyword. Its syntax

looks like top n for each x.

ThoughtSpot Users Guide Page 48


Overview of keyword searches December 13, 2019

Some common search examples it can simplify are finding the:

• top two performing sales rep

• top revenue average revenue by state

• top two students ranked by source for each class

Types of keywords

Keywords serve a variety of predefined purposes, and are divided into different groups. The groups are

as follows:

• Basic keywords

You can use keywords such as top and “ bottom to, for example, only see results for the

best or worst performing sales rep.

• Date keywords

Date keywords give you the freedom to narrow your search by days, weeks, months,

quarters, or years. There are also a number of date related keywords such as after ,

before , and year-over-year . Use the new date keywords to describe dates in the future.

This is useful for exploring things that are scheduled for a future date, such as shipments due

to go out in the next week.

• Time keywords

ThoughtSpot Users Guide Page 49


Overview of keyword searches December 13, 2019

Time keywords are the most useful when trying to figure out how many visitors you’ve

received within the last n minutes or hours .

• Text keywords

You can use text keywords to find similar words or phrases that contains a certain word. For

example, product name contains green .

• Number keywords

These keywords allows you to define your search by sum, average, count, max, min, and

other accumulations.

• Comparative keywords

Filter keywords work in the same way as filters on table columns or chart axes.

• Location keywords

The keywords near and farther than allow you to search with spatial filters on your geo

type columns with latitude/longitude data. This lets you focus your search based on distance

and locations. You can specify a specific radius using miles, kilometers, or meters.

Related information
• Keyword reference

• Search using growth over time

• Geographical proximity keywords “near” and “farther than”

ThoughtSpot Users Guide Page 50


Time series analysis December 13, 2019

Time series analysis


Summary: You can compare across time periods without using a
formula.

A time series is a set of data points ordered by time. For example, within the same week a sale on

Tuesday comes before a sale on Wednesday in such a data set. You can use ThoughtSpot’s time series

analysis feature to search for answers about series data.

You might use this feature to compare a time period across other time periods. For examples sales for

each month across several years. You may also want to calculate an aspect such as growth over the

same time period across other periods. You can also do relative analysis such as sales for the last 3

months of each year across years.

You can use one or more of the following period keywords to create this type of analysis:

Period keywords

Keyword Example

quarter (date) quarter (purchase date)

ThoughtSpot Users Guide Page 51


Time series analysis December 13, 2019

quarter of year (date) quarter of year (purchase date)

month of quarter (date) month of quarter (purchase date)

week of year (date) week of year (ship date)

week of quarter (date) week of quarter (ship date)

week of month (date) week of month (ship date)

day of year (date) day of year (ship date)

day of quarter (date) day of quarter (ship date)

day (date) day (ship date)

day of month (date) day of month (order date)

day of week (date) day of week (order date)

hour (datetime) hour (timestamp)

All of these keywords sort the data using datetime semantics, that is chronologically in a time sequence.

By default, the Search bar suggests these keywords less frequently than others.

You can use these new keywords in combination with the existing data keywords which are:

• Detailed

• Hourly

• Daily

• Weekly

• Monthly

• Quarterly

• Yearly

Examples of time series analysis

Typically, when you search for answers about series data, the visualizations that answer your questions

are line charts. These charts frequently but not always include a stack to indicate a period.

ThoughtSpot Users Guide Page 52


Time series analysis December 13, 2019

When you search for an aspect of data of time series, a typical response is a line chart showing the

aspect as it rises and falls over time.

You can also add a relative date filter for example,

total revenue quarterly yearly by year month(commit date) >= 0


1/01/1995
month(commit date) before 01/01/1998

This type of query also yields a stacked line chart:

ThoughtSpot Users Guide Page 53


Time series analysis December 13, 2019

The child date time attribute is on the X-axis and the parent in the legend. For example, if you search

revenue month yearly the child, monthly , appears on the x-axis and the parent, yearly , in the

legend.

Granularity for date filters

You can refine a simple date filters by adding hierarchical date filter to your query. The ability to specify

two bucket granularities such as “hour of day” or “week of year” are two examples. The syntax of this

type of query is

small_bucket of big_bucket [INTEGER_CONDITION]

The INTEGER_CONDITION is optional but it must be an integer. For example, this query is valid:

revenue by day of week <= 2

This query is invalid:

revenue by day of week = Tuesday

ThoughtSpot Users Guide Page 54


Time series analysis December 13, 2019

You can specify one or more granular filters.

These tips and gotchas apply to time granularity:

• The system-defined fiscal rules are respected. This means, for example, if the fiscal year

begins in February, month of year = 2 matches dates in March.

• Fiscal shorthands such as Q1 , Q2 and so on are not supported, so day of week = d1 is

not valid.

• INTEGER_CONDITION with = or != accept a list of filter values, so, day of week = 1 2

3 is valid.

• INTEGER_CONDITION with = or != require legal values, so day of week > accepts any

integer on the right hand side while day of week = requires a value in the legal 1-7 range.

• Simple date filters allow you to use edit the filter through the answer to refine your search,

adding a a hierarchical date filter in the search bar disables this ability.

ThoughtSpot Users Guide Page 55


Search using growth over time December 13, 2019

Search using growth over time


Summary: You can show growth over time by using the growth of
keyword in your search.

The growth of keyword compares the data from different date periods, and returns a percentage of

growth.

Growth of measure by year

To search using growth over time:

1. Type growth of into the search bar, and choose a measure you’re interested in seeing the

growth of.

You will see a list of suggestions to choose from based on your sources. You can also type a

different column name containing numeric data to compare.

ThoughtSpot Users Guide Page 56


Search using growth over time December 13, 2019

2. Type by , followed by a date column name.

The growth is calculated as a positive or negative percentage, for each period relative to the

last period in the series. A line chart is a good way to display your data, but the waterfall chart

is especially effective to show growth.

3. You can also do year-over-year analysis, which compares each time period to the

corresponding time period in the prior year.

This type of growth analysis is more common in retail and other seasonal businesses. To do

this, type monthly year-over-year after your growth of phrase in the search bar.

ThoughtSpot Users Guide Page 57


Search using growth over time December 13, 2019

This compares data between the same month from different years. For example, it will allow

you to compare sales from June of this year to the sales from June of last year. Note that for

the first year, values are labeled as “{Blank}” in the Data View since there are no previous data

to compare them to.

Add an attribute to your search see the breakdown of how each grouping of the attribute

contributed to the overall growth of your measure.

4. Click Configure Chart and add your attribute to the Legend field.

It looks like Q4, FY 15 was a much more productive period for a number of categories

compared to a year ago.

Display periods (daily) over time (year-over-year)

Growth query now supports more hierarchical date buckets and period calculations. The growth query

syntax is as follows:

growth of <measure_column> by <date_column> <bucket> <period-over-period>

This table shows the possible buckets and the period-over keywords you can combine:

ThoughtSpot Users Guide Page 58


Search using growth over time December 13, 2019

quarterly monthly weekly daily hourly

year-over- year-over-year year-over-year year-over-year


year

quarter-over- quarter-over- quarter-over-


quarter quarter quarter

month-over- month-over-
month month

week-over-week

day-over-
day

For example, the following query growth of sales by date daily month-over-month :

ThoughtSpot Users Guide Page 59


Proximity searches "near" and "farther than" December 13, 2019

Proximity searches "near" and "farther


than"
Summary: If your table contains Latitude and Longitude data, you
can use proximity searches that find entities related to each other by
location.

Proximity keywords allow you to search and show the results on a map. Using proximity keywords

causes ThoughtSpot to display a circle that represents your set distance on the geo charts.

The proximity keywords are:

• near

near…within n miles km meters


ThoughtSpot Users Guide Page 60


Proximity searches "near" and "farther than" December 13, 2019

farther than n miles km meters from


The distance is calculated as a straight-line distance (not road distance) radius using miles, kilometers,

or meters from the central point. If you do not specify a distance, the system uses 10 km as the default.

Given a latitude, a longitude, and an optional distance, the search returns all instances of a geotype

column that falls within the parameters. These keywords are limited to 33 latitude/longitude pairs. They

work on duplicate counties. Finally, you can filter on them. Some examples of valid searches are:

landings latitude longitude city near tokyo

landings latitude longitude city near tokyo within 50 miles

You can bracket your search only with actual values found in the data. So “longitude between

-125.000000 and -115.316670 worked for me, but not longitude between -125 and -115 .

Proximity search configuration requirements

All your data must be in the same set. The worksheet or one of the tables must contain a column of type

longitude and a column of type latitude . The latitude and longitude data have to be on the same

base tables for the feature to work. You can’t, for instance, have a dimension table with all your cities

and their associated geo coordinates and join to it from your fact table and expect proximity search to

work.

Also, your administrators must have configured these columns using the appropriate GeoType.

ThoughtSpot Users Guide Page 61


Understand filters December 13, 2019

Understand filters
Summary: Filters narrow down the search result to only include the
data you want to see.

When you add a value to your search, it becomes a filter. To add a filter from the search bar:

1. Click in the search bar and type the values you want to include in the search.

Typing a value in the search bar acts as a filter.

You can also use keywords like yesterday , after , and next month to filter your search.

To see more keywords, refer to the keyword reference.

2. Click outside of the search bar or push enter to apply your filter.

Simple filters can be applied to an answer, while pinboard filters can be applied to all visualizations of a

pinboard. You can find out more about pinboard filters in the pinboards section.

Where filters appear in ThoughtSpot

As you have seen with search, filters appear in white boxes in the search bar.

In an answer or a pinboard, filters appear just below the title. For pinboards, your filters apply to all

worksheet-based visualizations in the pinboard.

ThoughtSpot Users Guide Page 62


Understand filters December 13, 2019

If you ever find that your search or pinboard does not appear to contain all the data you want to see,

check for any existing filters and remove them by clicking the X to see all the data.

 Note: Filtering on NULL and empty values is a special case. You can find out more about how

these values are represented and how to filter for them in About filtering on null, blank, or empty

values.

Simple filters

Simple filters can be applied to searches in a few different ways. You can use the search bar or the

Change Configuration menu to add a filter to a search. You can apply simple filters to your search,

whether it shows a table or a chart. Your filters remain part of the search even when you change the

visualization type.

When adding a filter from the Change Configuration menu, numeric columns and text columns provide

you with a checkbox selector for values. If the column contains a date, you’ll see a calendar selector

when applying a filter. This is also where you’ll go to apply bulk filters.

Bulk filters

If you have a large worksheet or table with thousands or millions of rows, you may want to create bulk

filters. You can paste in a list of filter values, without having to click the box next to each value in the

filter selector.

Bulk filters can be very useful when you have a very large worksheet or table. You can use them to filter

a large list of values easily. For example, this is useful if you want to only search on a list of products that

your manager sent to you in an email. You can cut and paste those values into the bulk filter box to

quickly generate a report or chart that includes only those items of interest.

ThoughtSpot Users Guide Page 63


Understand filters December 13, 2019

You can create a bulk filter by pasting a list of values, separated by commas, semicolons, new lines, or

tabs, into the bulk filter box. This allows you to easily search a large list of filters repeatedly.

ThoughtSpot Users Guide Page 64


Add a filter to a table December 13, 2019

Add a filter to a table


Summary: You can add a simple filter from a column header while
viewing your answer as a table.

To add a filter from column headers:

1. While viewing your answer as a table, click Change configuration on the column header you

want to filter.

2. Select Filters.

3. Select the values to include in your answer.

4. Click Done.

If there are too many values, you can use the filter search bar to find the ones you want.

ThoughtSpot Users Guide Page 65


Add a filter to a table December 13, 2019

ThoughtSpot Users Guide Page 66


Add a filter to a chart December 13, 2019

Add a filter to a chart


Summary: You can add a simple filter from a chart axis while viewing
your answer as a chart.

You can filter a chart in two ways:

1. Click on the legend labels to toggle the values on or off.

2. Follow the steps shown here to filter on the axis values.

To add a filter from the chart axes:

1. While viewing your answer as a chart, click the chart axis you want to filter on, and select

Filter.

2. Select the values you would like to include in your answer. Then click Done.

ThoughtSpot Users Guide Page 67


Add a filter to a chart December 13, 2019

ThoughtSpot Users Guide Page 68


Create a bulk filter December 13, 2019

Create a bulk filter


You can create a bulk filter on a worksheet or table. You create the filter by pasting a list of values,

separated by commas, semicolons, new lines, or tabs, into the bulk filter box. A filter allows you to easily

search a large list of values repeatedly.

Your filter can have up to 10k values in it. When you add a filter, the system does not check that the

value exists in the data. This allows you to anticipate values that may be added in your filter.

Before you can create a bulk filter, you must have Can edit permission on the table or worksheet. In this

example, you will cut and paste values to create a bulk filter. You could also get a list of text values from

another application such as an email or cells from an Excel or Google Sheets spreadsheet.

1. When viewing a table, select multiple cells by clicking and dragging.

2. Right click and choose Copy to Clipboard.

3. Click the Filters icon in the column header.

4. Click Add values in bulk:

ThoughtSpot Users Guide Page 69


Create a bulk filter December 13, 2019

5. Paste the values into the bulk filter box.

ThoughtSpot Users Guide Page 70


Create a bulk filter December 13, 2019

6. Click Done.

ThoughtSpot Users Guide Page 71


Delete a filter December 13, 2019

Delete a filter
Summary: You can delete a filter from an answer to return to the
original unfiltered search result.

There are multiple ways to delete a filter. To delete a filter you can click the x on the filter term in the

search bar.

You can also click the x on the filter bar above the answer.

ThoughtSpot Users Guide Page 72


Filter on null, blank, or empty values December 13, 2019

Filter on null, blank, or empty values


Summary: Filtering on NULL and empty values is a special case.

Filtering on null, blank, or empty values can be tricky if your data contains both of these. You can use

this method to see what’s really going on with these types of values, and to get the filtering behavior you

want.

How NULL and blank values are displayed

When you view a table or chart, you may see values that appear as {blank}. These can actually be one of

two types of values:

• NULL values, which are essentially missing values.

• blank or empty values, like an empty string of text or a string containing only whitespace

(spaces, tabs).

Both of these types of values are represented as {blank}, but if you filter on {blank}, the filter will apply to

only the NULL values. That is, only the NULL values will be included in your result. It can be hard to tell

what’s going on if you have a data source that contains both NULL and blank/empty values.

To show NULL and blank values differently

If you need to differentiate between NULL and blank values, you can Add a formula to make them

appear differently in charts and tables. In this example, we’ll use <text_column> to refer to the text

column which contains both NULL and blank values:

if ( strlen ( <text_column> ) = 0 ) then if ( isnull ( <text_co


lumn> ) ) then 'null' else 'empty' else <text_column>

This formula will show “null” where the value contained in the column is actually NULL. When the value is

blank or empty, it will show up as “empty”.

ThoughtSpot Users Guide Page 73


Filter on null, blank, or empty values December 13, 2019

To allow filtering on both NULL and blank values

If you want to keep the same display format for NULL and blank values, but be able to filter on both

using “{blank}”, your formula will be slightly different. You can use a formula like:

if ( strlen ( <text_column> ) = 0 ) then null else <text_colum


n>

Use the filter you created instead of the original text column in your search to get the result you desire.

Filtering on your formula

After creating the above formula that fits what you want to do, you can filter on the formula column you

created in the search bar by typing the value {blank}, which will act as a filter. Or you can filter by left

clicking on a{blank} value in your search result table, then right clicking and selecting Show only

“{Blank}“.

ThoughtSpot Users Guide Page 74


Other search actions December 13, 2019

Other search actions


There are other search actions you can perform by interacting directly with your answer. These actions

can be performed in an ad hoc way, or you can pin your answer to a pinboard to save your

configurations.

• Change view optins

You can change the view of your answer so it appears as a table or a chart. Sorting your

search allows you to order your answer, making it easier to read. You can change the date

bucketing on tables and charts for columns with date values.

• Show underlying data

Viewing the underlying data of your answer gives you an un-aggregated view of the

underlying data.

• Drill down

Drilling down allows you to see more information about the columns used within your search.

• Exclude and include row values

You can include or exclude row values from your answer.

• Apply conditional formatting

You can apply conditional formatting to tables or charts to highlight values in the data. This

makes values above, below, or within a particular threshold stand out.

• Work with saved answers

You can make a copy of an answer if you would like to make edits without changing the

original answer.

• Download your search

You can download your search as either a table or chart.

• Replay search

You can instantly generate a step-by-step replay showing the creation of a table or chart.

ThoughtSpot Users Guide Page 75


Change result display options December 13, 2019

Change result display options


Summary: You can change how your search results (answers)
appear.

Your search answer (results) have various display options. You can change the visualization used to

display your results, their sort oder, and how they are grouped or grouped.

Change the view

You can change the view of your answer so it appears as a table or a chart. To change the view of your

answer:

1. View your answer.

2. Click Change Visualization.

3. Select either table or a chart type.

Sort your search

Sorting your search allows you to order your answer, making it easier to read. To sort your search:

• If you are in the data (table) view, click the column header you would like to sort on.

By default, sorting applies in descending order. You can click on a column header to sort

again to sort in ascending order.

 Tip: Hold shift and click another column to add a secondary sort. You can even add

tertiary sorting and so on by continuing to use this trick.

• If you are in the chart view, click the axis label of your chart and select Sort.

ThoughtSpot Users Guide Page 76


Change result display options December 13, 2019

Change the date bucketing (grouping)

You can change the date bucketing on tables and charts for columns with date values. Bucketing is a

method for grouping a column in your data. For example, if you have a column of orders, you can use

the date of each order (NO_BUCKET).

Alternatively, you can group these MONTHLY:

ThoughtSpot Users Guide Page 77


Change result display options December 13, 2019

ThoughtSpot chooses a default date bucket for you when you search. This default takes the entire

search result into account. For example, if your search includes last month, dates are bucketed daily

instead of monthly.

On a table view, you use the date bucket dropdown below the column header. On a chart, you can

change this via the axis label.

ThoughtSpot Users Guide Page 78


Change result display options December 13, 2019

The bucket values are a subset of date and time period keywords. To change the date bucketing:

1. Go to the table or chart you want to change.

2. Locate the column or axis value with the date value you want to change.

3. Click the column’s bucket menu.

4. Select a date bucket.

Exclude and include row values

You can include or exclude row values from your answer.

To exclude or include row values:

1. Right click on the visualization or table cell of interest

2. Select Exclude “value” or Include “value” if available.

ThoughtSpot Users Guide Page 79


Show underlying data December 13, 2019

Show underlying data


Summary: Viewing the underlying data of your answer gives you an
un-aggregated view of the underlying data.

You can see the most granular details of a given result set, i.e. it shows the un-aggregated view. This

feature lets you understand what an answer consists of. For example, if you search for customer

region revenue , the answer shows the aggregate revenue value for each customer region. You can

then click on any row and then on Show underlying data, to see each value that revenue constitutes

of, for any given region.

Only the first 1,000 rows are shown when viewing the underlying data. You can even download the

results shown when you choose Show underlying data from a chart. The download file limit is a million

rows.

 Note: Viewing underlying data does not work for answers that are derived from chasm trap

searches. Nor does this feature work for pivot tables.

To show underlying data:

1. Right click on the visualization or table cell of interest

2. Select Show underlying data.

A new window opens that displays a summary and the underlying data.

3. Optionally, choose to + Add Column to add additional data.

ThoughtSpot Users Guide Page 80


Show underlying data December 13, 2019

4. Click Confirm Changes.

5. Click Download to download a CSV file of the data.

ThoughtSpot Users Guide Page 81


See the search behind a result December 13, 2019

See the search behind a result


Summary: You can use your answer to learn more about the data
used in your search.

Drilling down allows you to see more information about the columns used within your search. If you own

the pinboard you can drill down to the data beneath. Users you share the pinboard with can also drill

down provide they also have access to the data on which the board was based.

To drill down:

1. Right click on the visualization or table cell of interest, and select Drill down.

2. Click on any of the listed data to recreate the search with that data included.

ThoughtSpot Users Guide Page 82


See the search behind a result December 13, 2019

ThoughtSpot Users Guide Page 83


Apply conditional formatting December 13, 2019

Apply conditional formatting


Summary: Use conditional formatting to make portiosn of your
results stand out

You can apply conditional formatting to tables or charts to highlight values in the data. This makes

values above, below, or within a particular threshold stand out.

Understand conditional formatting

Many companies create pinboards with key metrics they want to track in daily or weekly staff meetings.

Using conditional formatting, they can see at a glance how they are performing relative to these metrics.

You can add visual cues for KPIs (Key Performance Indicators) or threshold metrics to charts and tables,

to easily show where you are falling short or exceeding targets. These visual cues are called conditional

formatting, which applies color formatting to your search result. For tables, you can add conditional

formatting to set the background color of cells in a table based on the values they contain. For charts,

you can add conditional formatting to show the threshold(s) you defined, and the data that falls within

them will be shown using the same color.

Apply conditional formatting to a table

You can use conditional formatting to show table cells with a background color determined by the value

they contain.

To apply conditional formatting to a table:

1. In the column header of your table for the column you want to apply formatting to, click the

three dot Change Configuration icon.

ThoughtSpot Users Guide Page 84


Apply conditional formatting December 13, 2019

2. Select Conditional Formatting.

3. Click the + icon in the Conditional Formatting menu.

4. Define the sets of values and the color to use for each set.

ThoughtSpot Users Guide Page 85


Apply conditional formatting December 13, 2019

5. Click Done after defining all of your conditional formatting sets.

6. Note that if you change to a chart type, you will need to apply conditional formatting again.

ThoughtSpot Users Guide Page 86


Apply conditional formatting December 13, 2019

Conditional formatting is tied to the specific visualization.

Apply conditional formatting to a chart

You can use conditional formatting to show charts with a target value or range drawn as a line in the

chart, and the legend colors determined by where values fall relative to the target.

To apply conditional formatting to a chart:

1. Click the axis label of your chart. Select Conditional Formatting.

2. Click the + icon in the Conditional Formatting menu.

3. Define the ranges of values and the color to use for each range you want to track. To add

another range, click the + icon and repeat.

ThoughtSpot Users Guide Page 87


Apply conditional formatting December 13, 2019

4. Click Done after defining all of your conditional formatting ranges.

5. Note that if you change the chart type, you will need to apply conditional formatting again. It is

tied to the specific visualization.

ThoughtSpot Users Guide Page 88


Download your search December 13, 2019

Download your search


Summary: You can download your search as either a table or chart.

You have the option to download your table as a CSV (comma separated values), PDF, or XLSX (Excel)

file. When you download a chart, it will be a PNG file. To download your search:

• Click Actions. For a table, choose between Download as CSV, Download as PDF, or

Download as XLSX.

• For a chart, select Download.

ThoughtSpot Users Guide Page 89


Download your search December 13, 2019

Currently, ThoughtSpot limits the maximum number of rows that can be downloaded to 10M (default is

1M). Your system limit is configured by your ThoughtSpot administrator.

ThoughtSpot Users Guide Page 90


Replay search December 13, 2019

Replay search
Summary: You can instantly generate a step-by-step replay showing
the creation of a table or chart.

The replay feature shows how to create the chart or table you are viewing. Use it to teach yourself, or

take a screencam of it and create your own ThoughtSpot training for your team.

1. When viewing a chart or table, click Actions and select Replay search.

2. Then, select Start Replay to view the video.

ThoughtSpot Users Guide Page 91


Replay search December 13, 2019

The replay will start automatically. You can pause and resume it by clicking on it.

ThoughtSpot Users Guide Page 92


Understand charts December 13, 2019

Understand charts
Summary: Charts display your search answer in a visual way.

Your search needs at least one attribute and one measure to be presented as a chart. When you choose

to display your answer as a chart, ThoughtSpot will assign it the best fit chart type.

 Note: Colors are maintained across searches within a session. For example, when doing a

search on revenue by state, each state will keep its color assigned to it even if you change the

search or chart type.

You can choose from a large number of chart types in ThoughtSpot. Each chart type provides you with a

different visualization for your answer.

You can also adjust the axes, labels, and view of the chart.

About chart types

You can choose from a large number of chart types in ThoughtSpot. Each chart type provides you with a

different visualization for your answer.

You can change the chart type of your answer by clicking Change Visualization.

ThoughtSpot Users Guide Page 93


Understand charts December 13, 2019

Note: Some chart types may be unavailable for you to select depending on the columns of your search.

For example, if your search does not contain at least one geographical column then you will not be able

to select any of the geo chart types. Unavailable chart types are grayed out. Hovering over one will tell

you what columns are needed before you can choose it.

• Column charts

The column chart is one of ThoughtSpot’s simplest, yet most versatile chart type. More often

than not, the column chart will be chosen as your default chart type.

• Bar charts

The bar chart is very similar to the column chart. The only difference is that it is oriented the

other way.

• Line charts

Like the column chart, the line chart is one of ThoughtSpot’s simplest, yet most versatile chart

type. More often than not the line chart will be chosen as your default chart type.

• Pie charts

ThoughtSpot Users Guide Page 94


Understand charts December 13, 2019

The pie chart is a classic chart type that displays your search in a circle. The pie chart

ThoughtSpot shows is in the shape of a doughnut.

• Area charts

The area chart is based on the line chart, but has filled in regions.

• Scatter charts

The scatter chart is useful for finding correlations or outliers in your data.

• Bubble charts

The bubble chart displays three dimensions of data with each containing a set of values.

• Pareto charts

The pareto chart is a type of chart that contains both columns and a special type of line chart.

• Waterfall charts

The waterfall chart is used to show how an initial value is affected by a series of intermediate

positive or negative values.

• Treemap charts

The treemap chart displays hierarchical data as a set of nested rectangles.

• Heatmap charts

The heatmap chart displays individual data values in a matrix following a color scale.

• Line column charts

The line column chart combines the column and line charts.

• Funnel charts

The funnel chart shows a process with progressively decreasing proportions amounting to

100 percent in total.

• About geo charts

There are three geo charts that let you visualize geographical data in ThoughtSpot.

• About pivot tables

Pivot tables in ThoughtSpot use the well known drag-and-drop interface. Creating a pivot

table enables exploring alternate visualization of data in a wide table. The basic idea is that

some data is easier to consume when laid out horizontally, while others, vertically.

ThoughtSpot Users Guide Page 95


Column charts December 13, 2019

Column charts
Summary: A column chart is the most versatile chart type

The column chart is one of ThoughtSpot’s simplest, yet most versatile chart type. More often than not,

the column chart will be chosen as your default chart type.

Column charts are vertical bar charts that display your data using rectangular bars. The length of the bar

is proportional to the data value.

Your search needs at least one attribute and one measure to be represented as a column chart.

Stacked column charts

The stacked column chart is similar to the column chart, but with one major difference. It includes a

legend, which divides each column into additional sections by color.

Stacked column charts are typically used when you want to compare aggregated data and the data that

it includes together. This chart type benefits when you add the Additional chart options option. Turning

it on will show the sum of the stacks at the top of each stack.

ThoughtSpot Users Guide Page 96


Column charts December 13, 2019

It is important to note that stacked column charts plot the y-axis as a percentage by default. You can

choose to toggle Show Y-Axis as % on or off in the Configuration Options. This feature is also available

for stacked area charts.

Your search needs at least two attributes and one measure to be represented as a stacked column

chart.

ThoughtSpot Users Guide Page 97


Bar charts December 13, 2019

Bar charts
The bar chart is very similar to the column chart. The only difference is that it is oriented the other way.

Bar charts display your data using horizontal rectangular bars. The length of the bar is proportional to the

data value.

Your search needs at least one attribute and one measure to be represented as a bar chart.

ThoughtSpot Users Guide Page 98


Line charts December 13, 2019

Line charts
Summary: Line charts are good at showing trends over intervals of
time.

Like the column chart, the line chart is one of ThoughtSpot’s simplest, yet most versatile chart type.

More often than not the line chart will be chosen as your default chart type.

Line charts displays your data as a series of data points connected by straight line segments. The

measurement points are ordered by the x-axis value.

Your search needs at least one attribute and one measure to be represented as a line chart.

ThoughtSpot Users Guide Page 99


Pie charts December 13, 2019

Pie charts
The pie chart is a classic chart type that displays your search in a circle. The pie chart ThoughtSpot

shows is in the shape of a doughnut.

How pie charts divide data

Pie charts divide your data into sectors that each represent a proportion of a whole circle. You can

display the exact values of each slice, in addition to the percentage values by toggling on Additional

chart options found under Change chart configuration.

Your search needs at least one attribute and one measure to be represented as a pie chart. Also, there

must be fewer than 50 values in the attribute column.

Pie in pie charts

The pie in pie chart can be created from a regular pie chart in order to compare more than one

component of an attribute. Pie in pie charts show two concentric pie charts comparing different

measures.

To see a pie in pie chart, assign two different measures to the y-axis under Configure Chart.

ThoughtSpot Users Guide Page 100


Pie charts December 13, 2019

ThoughtSpot Users Guide Page 101


Area Charts December 13, 2019

Area Charts
The area chart is based on the line chart, but has filled in regions.

Understand area charts

Area charts display quantitative data graphically. The area between the x-axis and the line are colored in

to help you compare different portions of the chart.

Your search needs at least one attribute and one measure to be represented as an area chart.

Stacked area charts

The stacked area chart is an area chart with an attribute in the legend, which divides the area into layers.

Stacked area charts show the relative contribution to the accumulated total of a measure over time.

Stacked area charts plot the y-axis as a percentage by default. You can choose to toggle Show Y-Axis

as % on or off in the Configuration Options to create your own mountain-style charts.

ThoughtSpot Users Guide Page 102


Area Charts December 13, 2019

Your search needs at least two attributes and one measure to be represented as a stacked area chart.

ThoughtSpot Users Guide Page 103


Scatter charts December 13, 2019

Scatter charts
Summary: The scatter chart is useful for finding correlations or
outliers in your data.

Scatter charts display your data as a collection of points, which can either be evenly or unevenly

distributed. Each point is plotted based on its own axes values. This helps you determine if there is a

relationship between your searched columns.

Your search needs at least one attribute and one measure to be represented as a scatter chart.

ThoughtSpot Users Guide Page 104


Bubble charts December 13, 2019

Bubble charts
Summary: The bubble chart displays three dimensions of data with
each containing a set of values.

The bubble chart is a variation of the scatter chart, with the data points replaced with bubbles. These

bubbles add a third data dimension to your answer.

The size of each bubble depends on the measure you choose under Edit chart configuration.

ThoughtSpot Users Guide Page 105


Bubble charts December 13, 2019

Your search needs at least one attribute and two measures to be represented as a bubble chart.

ThoughtSpot Users Guide Page 106


Pareto charts December 13, 2019

Pareto charts
Summary: The pareto chart is a type of chart that contains both
columns and a special type of line chart.

The individual values of a pareto chart are represented in descending order by columns, and the

cumulative percent total is represented by the line. The y-axis on the left is paired with the columns,

while the y-axis on the right is paired with the line. By the end of the line, the cumulative percent total

reaches 100 percent.

Your search needs at least one attribute and one measure to be represented as a pareto chart.

ThoughtSpot Users Guide Page 107


Waterfall charts December 13, 2019

Waterfall charts
Summary: The waterfall chart is used to show how an initial value is
affected by a series of intermediate positive or negative values.

Waterfall charts are good for visualizing positive and negative growth, and therefore work well with the

growth over time keyword. The columns are color-coded to distinguish between positive and negative

values.

Your search needs at least one attribute and one measure to be represented as a waterfall chart.

ThoughtSpot Users Guide Page 108


Treemap charts December 13, 2019

Treemap charts
Summary: The treemap chart displays hierarchical data as a set of
nested rectangles.

Treemap charts use color and rectangle size to represent two measure values. Each rectangle, or

branch, is a value of the attribute. Some branches can contain smaller rectangles, or sub-branches. This

setup makes it possible to display a large number of items in an efficient way.

You can rearrange the columns of your search into category, color, and size under Edit chart

configuration.

ThoughtSpot Users Guide Page 109


Treemap charts December 13, 2019

Your search needs at least one attribute and two measures to be represented as a treemap chart.

ThoughtSpot Users Guide Page 110


Line column charts December 13, 2019

Line column charts


Summary: The line stacked column chart combines stacked column
and line charts.

The line column chart combines the column and line charts. Your search needs at least one attribute and

two measures to be represented as a line column chart.

Understand line column charts

Line column charts display one measure as a column chart and the other as a line chart. Each of these

measures has its own y-axis.

You can choose to enable shared y-axis by clicking the link icon found under Edit chart configuration.

ThoughtSpot Users Guide Page 111


Line column charts December 13, 2019

Line stacked column charts

This chart is similar to the line column chart, except that it divides its columns with an attribute in the

legend. There are two y-axes, one for each measure.

ThoughtSpot Users Guide Page 112


Line column charts December 13, 2019

You can choose to enable shared y-axis by clicking the link icon found under Edit chart configuration.

ThoughtSpot Users Guide Page 113


Funnel charts December 13, 2019

Funnel charts
Summary: The funnel chart shows a process with progressively
decreasing proportions amounting to 100 percent in total.

A funnel chart is similar to a stacked percent column chart, and is often used to represent stages in a

sales process. You can visualize the progression of data as it passes from one phase to another. Data in

each of these phases is represented as different proportions.

Your search needs at least one attribute and one measure to be represented as a column chart. The

attribute must contain 50 or fewer values.

ThoughtSpot Users Guide Page 114


Geo charts December 13, 2019

Geo charts
Summary: There are three geo charts that let you visualize
geographical data in ThoughtSpot.

Geo charts show data on a map by location. They are geo area, geo bubble, and geo heatmap charts.

And these geo charts can display six types of geographical data, which are:

• Country

• State

• County

• Zipcode

• Point (latitude/longitude)

• Other sub-nation regions (for international countries)

In addition to the United States, ThoughtSpot also supports maps for the Canadian province/count

maps, United Kingdom, Germany, Sweden, South Africa, and France.

Geo data that can be displayed

Here is a table that shows which GeoType data can be displayed using which geo chart type.

GeoType Geo chart type Notes

Country Geo area (default), geo bub- Can also be regions.


ble, geo heatmap

County Geo area (default), geo bub- Only for counties in the United States.
ble, geo heatmap

Point Geo bubble (default), geo Must use both latitude and longitude columns.
heatmap

State Geo area (default), geo bub- Only for states in the United States.
ble, geo heatmap

Zipcode Geo bubble (default), geo Zip codes and zip codes +4 in the United
heatmap States.

ThoughtSpot Users Guide Page 115


Geo charts December 13, 2019

GeoType Geo chart type Notes

Other sub-na- Geo area (default), geo bub- The display will depend on the type of adminis-
tion regions ble, geo heatmap trative region chosen.

For data to be displayed using geo charts, your administrator must configure it as geographical data. If

you are expecting to be able to get a map visualization, but it isn’t available, contact your administrator

so they can make the configuration.

Area charts

Geo area charts highlight the regions of interest. Point data (longitude/latitude) doesn’t work on geo area

charts. Also, only geo area charts display boundaries for counties.

Your search needs one geographical column of granularity to be represented as a geo area chart.

ThoughtSpot Users Guide Page 116


Geo charts December 13, 2019

Geo bubble charts

Geo bubble charts, like bubble charts, display the value of the measure by the size of the bubble. Zip

code data makes the most sense for geo bubble charts.

Your search needs one geographical column or a pair of latitude and longitude columns to be

represented as a geo bubble chart.

Heatmap charts

Heatmap charts are similar to treemap charts in that they both use a similar system of color-coding to

represent data values. However, the heatmap does not use size to measure data, and instead requires

an additional attribute.

ThoughtSpot Users Guide Page 117


Geo charts December 13, 2019

The value of each cell depends on the measure you choose under Edit char configuration.

ThoughtSpot Users Guide Page 118


Pivot table December 13, 2019

Pivot table
Summary: A pivot table is a chart type.

Creating a pivot table enables exploring alternate visualization of data in a wide table. It is useful

especially when improve data display when some data is best viewed horizontally, while others,

vertically. Pivot tables are a chart time table that use a drag-and-drop interface.

If a Pivot Table is available for your answer, you see this type of visualization as an option under the

visualization. Add rows, measures, and columns to the search bar:

ThoughtSpot Users Guide Page 119


Pivot table December 13, 2019

You can restructure your pivot table by moving these values under Configure Chart or by dragging and

dropping column headings on the table itself. If you right click on a the row headings, the system

displays a contextual sort menu:

Expanding or contract columns and rows

Click a column or row to expand it. Additionally, you can expand or collapse all by right clicking the

arrow on the top left of a cell.

When you pin a pivot table to a pinboard, it will retain your expansion settings.

Display totals

You can show % Row Grand Total and, % of Column Grand Total, or % of Grand Total on pivot

tables. Grand totals aggregate data of the entire pivot grid. They show values summarized across all

available data.

ThoughtSpot Users Guide Page 120


Pivot table December 13, 2019

You only see 100% value when grand total rows is enabled. This is because when it is disabled, the rows

and columns they have no parental total column and the percentage cannot be calculated. All

intermediate total (columns or rows) display the percentage values calculated with respect to their

parent. For each inner summary (column or row) the parental total values are assumed to be 100%

internally.

To see the total column make sure you also have Pivot Summaries checked.

ThoughtSpot Users Guide Page 121


Pivot table December 13, 2019

Format row headers

For row headers, you can switch between the default view and a more compact (tree) layout:

From the header menu users, change the type of total shown for an aggregated measure:

ThoughtSpot Users Guide Page 122


Pivot table December 13, 2019

You can also Remove a headline.

Heatmap of large contributors

The heatmap functionality allows you to see which measures contribute more than others (heat) within

the table.

Toggle on the Heatmap mode found under Configuration Options to add color coordination to your

data.

ThoughtSpot Users Guide Page 123


Pivot table December 13, 2019

Pivot table limitations

The pivot table chart type has these limitations:

• Only the first 10,000 data values are used. If you would like to increase this limit, please

contact ThoughtSpot Support.

• Pivot table is not available if the dataset contains more than 100,000 rows.

• Cardinality is not configurable.

• Show underlying data menu is unavailable.

• Conditional formatting is not functional.

ThoughtSpot Users Guide Page 124


Change a chart December 13, 2019

Change a chart
Summary: You can adjust the axes, labels, and view of the chart.

Every chart gives you the option to move columns between the x- and y-axes, hide or Additional chart

options, and zoom.

The configure chart option (the top icon which looks like a small bar chart) gives you the ability to edit the

chart axes and legends. Click on the icon to view the chart axes, add a legend, lock a visualization, and

more.

• Reorder labels on the axis or legend

When there are multiple columns on the x- or y-axis or legend of a chart, you can reorder

them by using the Configure Chart icon.

• Set the y-axis range

You can manually set the y-axis range by using the Edit chart configuration icon.

• Hide and show values

You can hide and show values on the chart using the legend.

• Change chart colors

You can easily change the legend colors in a chart.

• Additional chart options

You can configure charts to show the y-axis data values.

• Zoom into a chart

You can zoom into your chart by selecting an area with your mouse.

ThoughtSpot Users Guide Page 125


Reorder labels on the axis or legend December 13, 2019

Reorder labels on the axis or legend


When there are multiple columns on the x- or y-axis or legend of a chart, you can reorder them by using

the Configure Chart icon.

The order in which columns appear on the axis or legend is based on the sequence they are added. The

first field is used as the primary sorting field for the chart. Adding another field adds it after the first one

on the axis label or legend. If you want to change the order, you can remove the fields and re-add them

in the reverse order.

This example shows you how to reorder the x-axis columns.

1. While viewing your answer as a chart, click Edit chart configuration near the top right.

2. In the X-Axis box, delete the values. Then re-add them in the new preferred order.

3. Click Done.

Your chart reorganizes itself to reflect the new label order.

ThoughtSpot Users Guide Page 126


Set the y-axis range December 13, 2019

Set the y-axis range


You can manually set the y-axis range by using the Edit chart configuration icon. The chart

configuration panel includes the option to manually set the y-axis range. To set the y-axis range:

1. While viewing your answer as a chart, click Edit chart configuration near the top right.

2. Under Y-Axis Range enter your preferred start and end values.

ThoughtSpot Users Guide Page 127


Set the y-axis range December 13, 2019

Your chart will reorganize itself to reflect the new y-axis range.

ThoughtSpot Users Guide Page 128


Hide and show values December 13, 2019

Hide and show values


Summary: You can hide and show values on the chart using the
legend.

Clicking on a legend item will hide it from the chart. You can click it again to show it. To hide and show

values:

1. While viewing your answer as a chart, click Edit chart configuration on the right.

2. Make sure you have a column in the Legend field.

3. On the chart, click the legend value you would like to hide. Click the hidden legend value

again to show it.

ThoughtSpot Users Guide Page 129


Hide and show values December 13, 2019

You can also click only next to a legend value to only show that value on the chart.

ThoughtSpot Users Guide Page 130


Change chart colors December 13, 2019

Change chart colors


Summary: You can easily change the legend colors in a chart.

To change the colors used in a chart, you can use the color picker from the chart. The color you set is

used in:

• legends on charts

• tables for conditional formatting

• tags and editing the colors

To change the chart colors, you need at least one column in the chart’s legend. If the chart does not

have a legend (not all do) and it is a single-measure chart, you can apply a conditional format to change

the color. This type of conditional formatting does not work with Line charts.

Colors are maintained across searches within a session. For example, when doing a search on revenue

by state, each state will keep its color assigned to it even if you change the search or chart type.

Add a column to the legend

1. While viewing your answer as a chart, click Edit chart configuration on the right.

2. Make sure you have a column in the Legend field.

ThoughtSpot Users Guide Page 131


Change chart colors December 13, 2019

Set a color through the legend

1. On the chart, click the color icon of the legend value you would like to change the color of.

ThoughtSpot Users Guide Page 132


Change chart colors December 13, 2019

2. Use the color picker to choose a new color to represent that legend value.

You can also enter a HEX value directly.

ThoughtSpot Users Guide Page 133


Change chart colors December 13, 2019

3. Click outside of the picker to dismiss the picker.

4. Actions > Save your changes.

ThoughtSpot Users Guide Page 134


Additional chart options December 13, 2019

Additional chart options


Summary: You can configure charts to show the y-axis data values.

Some charts have additional options under Configuration Options that are covered in each chart type

topic.

Show data labels

To show data labels:

1. While viewing your answer as a chart, click Edit chart configuration.

2. Select Show Data Labels.

Add regression line


1. While viewing your answer as a chart, click Edit chart configuration.

2. Select Show regression line.

ThoughtSpot Users Guide Page 135


Additional chart options December 13, 2019

Display gridlines

Charts with X and Y axis can display gridlines. To display them:

1. Choose Edit chart configuration.

2. Select one or both of the gridline options.

Lock the chart

You can use the lock icon to prevent ThoughtSpot from recommending other chart options or

configurations. For example, you want a line chart, you can lock that display and stop TS from

recommending an alternative visualization such as a funnel/pie/column and so forth. A lock applies for all

subsequent answers that have the same column set.

ThoughtSpot Users Guide Page 136


Zoom into a chart December 13, 2019

Zoom into a chart


You can zoom into your chart by selecting an area with your mouse. To zoom into a chart:

1. While viewing your answer as a chart, click Edit chart configuration on the right.

2. Click Select an area.

3. Select an area on your chart to zoom into by clicking and dragging your mouse.

Your chart will be reconfigured to only show the selected area.

ThoughtSpot Users Guide Page 137


Zoom into a chart December 13, 2019

4. If you would like to return to the original chart view, click Reset zoom under Zoom options.

ThoughtSpot Users Guide Page 138


Understand formulas in searches December 13, 2019

Understand formulas in searches


Summary: To provide richer insights, you can add a formula to your
search.

The Formula Builder includes many types of operators, such as logical (if, then, else), math, date, and

text string functions.

You can create a formula from directly within a search. If you have the privilege that allows you to create

or edit worksheets, you can also create a formula within a worksheet. Formulas in worksheets act as

derived columns, so that anyone who uses the worksheet as a data source will see the formula as just

another column.

Adding a formula within a search works much the same way as adding a formula to a worksheet.

However, you will be able to edit the formula directly from within the answer. If you add the answer to a

pinboard and share it with the Edit privilege, other people can see the formula results, too. To make

edits to the formula, they also need to have the Edit privilege on the underlying data.

• Add a formula to a search

You can add a formula directly within a search. Some common reasons for using a formula in

a search are to perform mathematical functions, check for and replace null values, or add

if…then…else logic.

• View or edit a formula in a search

You can always go back and view or edit a formula that has been added to a search. Do this

by clicking the edit icon next to its name in the Columns listing.

• About aggregate formulas

When working with formulas, it is useful to understand the difference between regular (or row-

wise) formulas and aggregation formulas.

• About conversion formulas

Some formulas require the input to be of a particular data type. If you find that you want to

pass a value to the function, but it is of the wrong data type, you can convert it using a

conversion formula.

• About date formulas

Date formulas allow you to apply date related functions to your formulas.

• About percent (simple number) calculations

You can use simple number functions to perform useful percent calculations.

ThoughtSpot Users Guide Page 139


Understand formulas in searches December 13, 2019

• About conditional formulas (operators)

Conditional formulas, or operators, allow you to apply if / then / else conditions in your

formulas.

• About nested formulas

Nested formulas, or formula on formula, allow you to reference a formula within another

formula.

• About formula support for chasm trap schemas

You can create a formula that involves aggregated measures coming from multiple fact tables

of a chasm trap.

ThoughtSpot Users Guide Page 140


Add a formula to a search December 13, 2019

Add a formula to a search


You can add a formula directly within a search. Some common reasons for using a formula in a search

are to perform mathematical functions, check for and replace null values, or add conditional logic.

To create a formula in a search:

1. Start a new search, or choose an existing answer from a pinboard to edit.

2. If the answer shows a chart, switch to Data View.

3. In the upper right hand side of the table, click Actions and select Add formula.

ThoughtSpot Users Guide Page 141


Add a formula to a search December 13, 2019

4. Type your formula in the Formula Builder.

ThoughtSpot Users Guide Page 142


Add a formula to a search December 13, 2019

 Note: Formulas elements are color coded by type and can include the formula

operators and functions (blue), the names of columns (purple), and/or constants (black).

5. You can see a list of formula operators with examples by clicking on Formula Assistant.

6. If you want to change what your formula returns, use the Advanced settings.Depending on

your formula, you may be able to change:

• Data type

• ATTRIBUTE or MEASURE

• Aggregation type

ThoughtSpot Users Guide Page 143


Add a formula to a search December 13, 2019

7. Name the formula by clicking on its title and typing the new name. Click Save.

Related information

Formula function reference

ThoughtSpot Users Guide Page 144


View or edit a formula in a search December 13, 2019

View or edit a formula in a search


You can always go back and view or edit a formula that was added to a search. Do this by clicking the

edit icon next to its name in the Columns listing. Anyone who has edit privileges on an answer can also

edit any formulas it contains. To view or edit an existing formula in an answer:

1. Navigate to the pinboard that contains the answer with the formula, and open it.

2. Scroll down to the bottom of the Columns listing. You will see a data source called

Formulas.

3. Expand Formulas, and you’ll see a list of all the formulas in this answer.

4. Click the edit icon next to the formula name.

5. Type your formula in the Formula Builder.

ThoughtSpot Users Guide Page 145


View or edit a formula in a search December 13, 2019

 Note: Formulas elements are color coded by type and can include the formula

operators and functions (blue), the names of columns (purple), and/or constants (black).

6. Click Save to save the formula with your changes.

ThoughtSpot Users Guide Page 146


Overview of aggregate formulas December 13, 2019

Overview of aggregate formulas


When working with formulas, it is useful to understand the difference between regular (or row-wise)

formulas and aggregation formulas.

Standard and aggregation formulas

Formulas can be broken down into two types standard and aggregation formulas. Standard formulas act

on individual rows and returns one result per row. Standard formulas use functions like:

• add

• subtract

• multiply

• divide

• contains

• if...then...else

Aggregation formulas combine rows together and returns a single result for a group of rows. Aggregation

formulas use functions, some examples of functions you find in aggregation formulas are:

• average

• cumulative_sum

• moving_average

• stddev (standard deviation)

You can tell which formulas are aggregation formulas by looking at the function list in the Formula

Assistant. Aggregation functions have their own section.

ThoughtSpot Users Guide Page 147


Overview of aggregate formulas December 13, 2019

Advanced aggregation functions

Some more advanced aggregation functions are widely used in business intelligence, since they provide

better insight into data. Some of the more advanced aggregation functions are:

• Group aggregation functions apply a specific aggregate to a value, and group the results by

an attribute in the data.

• Cumulative functions measure from the start of your data to the current point. They’re often

applied on time-based data.

• Moving formulas measure within a window (usually time-based) that you define.

Data from any rows that are not included in the search result will not be incorporated, and you cannot

create a filter on aggregated data.

Using division with aggregation in a search

Whenever your search result combines rows, your formula will get aggregated automatically. For

example, if your search contains words like “region”, “monthly”, or “department”, the results will be

grouped (aggregated) by that category. The administrator can change the default aggregation that gets

applied through a configuration, and you can also change it using the dropdown list in the column

header of the search result.

ThoughtSpot Users Guide Page 148


Overview of aggregate formulas December 13, 2019

For example, this search would typically return a sum of total sales by department:

sum sales department

This search would return an average of sales by month:

average sales monthly

When you’re using division in your formula, and the search is aggregated like this, you may have to

change the order of operations to get the result you expect. This is best understood by using a real world

example.

Suppose you want to calculate the gross margin by department for a grocery store. The formula for

gross margin is:

profit / sales

But if you use that as your formula, you won’t get the expected calculation. Why? It’s because the

formula will be evaluated in this order: For each row, divide profit by sales and then total up all the

results. As you can see, the results do not look like gross margin values, which should be between 0 and

1.

ThoughtSpot Users Guide Page 149


Overview of aggregate formulas December 13, 2019

Instead, you’d need to use a formula that uses the order of operations you want:

sum (profit) / sum (sales)

Now the result is as expected, because the formula totals the profits for all rows, and then divides that

by the total of sales for all rows, returning an average gross margin:

ThoughtSpot Users Guide Page 150


Cumulative functions December 13, 2019

Cumulative functions
Summary: Cumulative formulas are aggregate formulas.

Cumulative formulas that allow you to calculate the average, max, min, or sum or your data over time.

Although we usually talk about cumulative formulas over time, you can use them over any other

sequential data. Each of the cumulative formulas accepts a measure and one or more optional grouping

by an attribute (like region or department):

formula (measure, [attribute, attribute, ...])

Only the measure value is required. If you supply both a measure and attributes, the formula returns the

aggregate of the measure accumulated by the attribute(s) in the order specified. You should experiment

with only a measure and then with an attribute to see which output best meets your use case.

The cumulative formulas are:

Function Description

cumulative_average Takes a measure and one or more attributes. Returns the average of the
measure, accumulated by the attribute(s) in the order specified. For exam-
ple: cumulative_average (revenue, order date, state)

cumulative_max Takes a measure and one or more attributes. Returns the maximum of the
measure, accumulated by the attribute(s) in the order specified. For exam-
ple: cumulative_max (revenue, state)

cumulative_min Takes a measure and one or more attributes. Returns the minimum of the
measure, accumulated by the attribute(s) in the order specified. or exam-
ple: cumulative_min (revenue, campaign)

cumulative_sum Takes a measure and one or more attributes. Returns the sum of the mea-
sure, accumulated by the attribute(s) in the order specified. For example:
cumulative_sum (revenue, order date)

ThoughtSpot Users Guide Page 151


Cumulative functions December 13, 2019

Calculate a cumulative sum

This example demonstrates using the cumulative_sum formula, also known as a running total. To use the

cumulative function in a search:

1. Start a new search.

2. In the upper right hand side of the table, click Actions and select Add formula.

ThoughtSpot Users Guide Page 152


Cumulative functions December 13, 2019

3. Enter the cumulative_sum formula, providing a measure and one or more attributes.

The example will return the sum of revenue, accumulated by the commit date.

ThoughtSpot Users Guide Page 153


Cumulative functions December 13, 2019

4. Name the formula by clicking on its title and typing the new name.

5. Click Save.

The formula will appear in the search bar and in the table as its own column.

A headline box displaying the cumulative sum within the entire table will appear at the bottom.

You can click on it to toggle between different aggregations.

ThoughtSpot Users Guide Page 154


Group aggregation functions December 13, 2019

Group aggregation functions


What if you want to aggregate a value by a specific attribute (for example, show revenue by product)?

This is known as a grouped aggregation, but some people call it a pinned measure or level-based

measure. You can do this for any aggregation using the grouping functions.

Each of the grouping functions accepts a measure and one or more optional attributes:

formula (measure, [attribute, attribute, ...])

Only the measure value is required. If you supply both a measure and an attribute, the function returns

the aggregate of the measure grouped by the attribute(s). You should experiment with only a measure

and then with an attribute to see which output best meets your use case.

List of group functions

Group aggregation functions have names with formats like group_<aggregation> . The group

aggregation functions are the following:

Function Description

group_average

Takes a measure and one or more attributes. Returns the average of the
measure grouped by the attribute(s).

group_count (revenue, customer region)

group_count

Takes a measure and one or more attributes. Returns the count of the
measure grouped by the attribute(s).

group_count (revenue, customer region)

ThoughtSpot Users Guide Page 155


Group aggregation functions December 13, 2019

Function Description

group_max

Takes a measure and one or more attributes. Returns the maximum of the
measure grouped by the attribute(s).

group_max (revenue, customer region)

group_min

Takes a measure and one or more attributes. Returns the minimum of the
measure grouped by the attribute(s).

group_min (revenue, customer region)

group_stddev

Takes a measure and one or more attributes. Returns the standard devia-
tion of the measure grouped by the attribute(s).

group_stddev (revenue, customer region)

group_sum

Takes a measure and one or more attributes. Returns the sum of the mea-
sure grouped by the attribute(s).

group_sum (revenue, customer region)

group_unique_count

Takes a column name and one or more attributes. Returns the number of
unique values in a column, grouped by the attribute(s).

group_unique_count ( product, supplier)

group_variance

Takes a measure and one or more attributes. Returns the variance of the
measure grouped by the attribute(s).

group_variance (revenue, customer region)

ThoughtSpot Users Guide Page 156


Moving functions December 13, 2019

Moving functions
Summary: Moving formulas are aggregate formulas that allow you to
calculate the average, max, min, or sum of your data over a
predetermined interval, or window, with an adjustable range.

Moving formulas can be used to smooth out any irregularities in your data to easily recognize trends. The

larger the interval you set, the more the peaks and valleys are smoothed out. While the smaller the

interval, the closer the moving averages are to the actual data points.

Each of the moving formula accepts a measure, two integers to define the window, and one or more

optional attributes.

formula (measure,integer,integer,[attribute,attribute,...])

Only the measure and integer values are required. If you supply both required and optional values, the

formula returns the aggregate of the measure over the given window. You should experiment with only a

measure and integers leaving out the attribute and then adding it back in. This will help you decide which

output best meets your use case.

The moving formulas are the following:

• moving_average , for example moving_average (revenue, 2, 1, customer region)

Takes a measure, two integers to define the window to aggregate over, and one or more

attributes. Returns the average of the measure over the given window. The attributes are the

ordering columns used to compute the moving average. The window is ( current -

Num1...Current + Num2 ) with both end points being included in the window. For example,

1,1 will have a window size of 3. To see periods in the past, use a negative number for the

second endpoint, as in the example moving_average(sales, 1, -1, date) .

• moving_max , for example moving_max (complaints, 1, 2, store name)

ThoughtSpot Users Guide Page 157


Moving functions December 13, 2019

Takes a measure, two integers to define the window to aggregate over, and one or more

attributes. Returns the maximum of the measure over the given window. The attributes are the

ordering columns used to compute the moving maximum. The window is (current -

Num1…Current + Num2) with both end points being included in the window. For example,

1,1 will have a window size of 3. To see periods in the past, use a negative number for the

second endpoint, as in the example moving_max(sales, 1, -1, date) .

• moving_min , for example moving_min (defects, 3, 1, product)

Takes a measure, two integers to define the window to aggregate over, and one or more

attributes. Returns the minimum of the measure over the given window. The attributes are the

ordering columns used to compute the moving minimum. The window is (current -

Num1…Current + Num2) with both end points being included in the window. For example,

1,1 will have a window size of 3. To see periods in the past, use a negative number for the

second endpoint, as in the example moving_min(sales, 1, -1, date) .

• moving_sum , for example moving_sum (revenue, 1, 1, order date)

Takes a measure, two integers to define the window to aggregate over, and one or more

attributes. Returns the sum of the measure over the given window. The attributes are the

ordering columns used to compute the moving sum. The window is (current - Num1…Current

+ Num2) with both end points being included in the window. For example, 1,1 will have a

window size of 3. To see periods in the past, use a negative number for the second endpoint,

as in the example moving_sum(sales, 1, -1, date) .

Calculate a moving average

This example demonstrates using the moving_average formula. To use the moving function in a

search:

1. Start a new search.

ThoughtSpot Users Guide Page 158


Moving functions December 13, 2019

2. In the upper right hand side of the table, click Actions and select Add formula.

ThoughtSpot Users Guide Page 159


Moving functions December 13, 2019

3. Enter the moving_average formula, providing a measure, a window, and one or more

attributes.

The example will return the average of revenue, within the commit date window size of 3. The

window includes the previous, current, and next rows. The attributes are the ordering columns

used to compute the moving average. The window is (current - Num1…Current + Num2) with

both end points being included in the window. For example, “1,1” will have a window size of

3. To see periods in the past, use a negative number for the second endpoint, as in the

example “moving_average(sales, 1, -1, date)”.

4. Name the formula by clicking on its title and typing the new name. Click Save.

The formula will appear in the search bar and in the table as its own column.

ThoughtSpot Users Guide Page 160


Moving functions December 13, 2019

A box displaying the moving average within the entire table will appear at the bottom.

5. Click on the box to toggle between aggregation types.

ThoughtSpot Users Guide Page 161


Filtered aggregation functions December 13, 2019

Filtered aggregation functions


Summary: You can create a filtered aggregation in the search bar.

Filters are useful for queries where the results should reflect a new, filtered value. On this page you learn

about comparative versus derivative filters, and the functions, and the keywords that you can use with

them.

Comparative and derivative filters

Comparative filters compare two segments of some whole against each in the Search bar. For example,

a company that has locations across the United States, may want to compare total revenue in the West

to the East segment. In a comparative filter, one of the segments you are comparing is filtered.

An example of a comparative filter is comparing west revenue with total revenue. In these cases, one

measure is a filtered measure, for example, revenue region = west is a filtered measure.

Derivative filters add a column to your results which is derived from other columns in the same results.

For example, you search for revenue and cost and want to calculate profit in your result.

Some examples of comparative and derivative filters in the real world are:

• revenue of this_soap versus all_soaps (Comparative filter)

• tax as a percentage of revenue (derivative)

• count revenue as a percentage of state revenue (comparative with a derivative)

If you plan to create these types of filters, you need to understand how to create filter functions.

Use filter functions

Filter functions take two arguments, the column ( measure or attribute) to aggregate and the filter

condition:

FUNCTION_NAME(condition, <column name>)

ThoughtSpot Users Guide Page 162


Filtered aggregation functions December 13, 2019

ThoughtSpot functional library will include the following functions:

• sum_if

• average_if

• count_if

• unique_count_if

• max_if

• min_if

• stddev_if

• variance_if

• vs

• all

The table below illustrates some examples of these functions in use:

Function Examples

sum_if(region=’west’, Only aggregate the revenue for the values corresponding to west re-
revenue) gion.

count_if(region Only aggregate the region for the values corresponding to west re-
=’west’, region) gion.

count_if(revenue > Count the number of times red appears when revenue was greater
100, red) than 100 (row level revenue data, not aggregated).

A condition can have multiple filters like sales region = west OR region = east . You can also just

type a value such as east as in sales east as a filter. If there are no rows matching the criteria, the

condition returns a 0 (zero). A 0 can result in situations where there are logic errors in the formula, so be

sure to double-check your work.

ThoughtSpot Users Guide Page 163


Filtered aggregation functions December 13, 2019

Once you have aggregated with a filter, you can do further comparisons with the vs and all

keywords.

Using the vs and all keywords

You can use the vs and all keywords to expand the usefulness of your comparison filters. It

compares a measure across different sets of filters and or groupings. The basic format of a comparison

search is:

<common search tokens> (A vs B) <common search tokens>

For example:

revenue region last 10 years vs all

Try this syntax on using the Superstore example data. The first vs example compares two segments

with a single search token:

ThoughtSpot Users Guide Page 164


Filtered aggregation functions December 13, 2019

The system automatically applies the sales token to both sides and groups each segment. You can

use the all keyword to break out the segments and avoid grouping.

You can also provide multiple vs instances:

Of course, you can compare across different columns as well:

ThoughtSpot Users Guide Page 165


Filtered aggregation functions December 13, 2019

Other supported formats you can try:

• sales accessory6 accessory12 vs all

• sales monthly accessory6 vs last year

• sales staples file caddy vs all monthly answers what the share of sales belonging

to the file caddy by month

• sales (germany ariel vs laundry) july 2017 time answers what is the category

share of Germany Ariel for July 17?

ThoughtSpot Users Guide Page 166


Type conversion functions December 13, 2019

Type conversion functions


Some formulas require the input to be of a particular data type. If you find that you want to pass a value

to the function, but it is of the wrong data type, you can convert it using a conversion formula.

The following are the conversion formulas:

Function Description Examples

to_bool Returns the input as a boolean (true or false). to_bool (0) = false
to_bool (married)

to_date Accepts a date represented as an integer or text to_date (date_sold, '%Y-


string, and a second string parameter that can %m-%d')
include strptime date formatting elements. Re-
places all the valid strptime date formatting ele-
ments with their string counterparts and returns
the result. Does not accept epoch formatted
dates as input.

to_double Returns the input as a double. to_double ('3.14') = 3.14


to_double (revenue * .01)

to_integer Returns the input as an integer. to_integer ('45') + 1 =


46
to_integer (price + tax -
cost)

to_string Returns the input as a text string. to_string (45 + 1) = '46'


to_string (revenue -
cost)

ThoughtSpot Users Guide Page 167


About date formulas December 13, 2019

About date formulas


Date formulas are useful when you want to compare data collected between two date periods. Date

formulas allow you to apply date related functions to your formulas. The date functions include:

Function Description Examples

add_days Returns the result of add_days (01/30/2015, 5) = 02/04/


adding the specified 2015
number of days to add_days (invoiced, 30)
the given date.

date Returns the date date (home visit)


portion of a given
date.

day Returns the number day (01/15/2014) = 15


(1-31) of the day for day (date ordered)
the given date.

day_number_of_week Returns the number day_number_of_week (01/30/2015) = 6


(1-7) of the day in a day_number_of_week (shipped)
week for the given
date with 1 being
Monday and 7 being
Sunday.

day_number_of_quarter Returns the number day_number_of_quarter (01/30/2015)


of the day in a quar-
ter for a given date.

day_number_of_week Returns the number day_number_of_week(01/15/2014) > 3


of the day in a week
for a given date.

day_number_of_year Returns the number day_number_of_year (01/30/2015) =


(1-366) of the day in 30
a year for the given day_number_of_year (invoiced)
date.

day_of_week Returns the day of day_of week (01/30/2015) = Friday


the week for the giv- day_of_week (serviced)
en date.

ThoughtSpot Users Guide Page 168


About date formulas December 13, 2019

Function Description Examples

diff_days Subtracts the sec- diff_days (01/15/2014, 01/17/2014)


ond date from the = -2
first date and returns diff_days (purchased, shipped)
the result in number
of days, rounded
down if not exact.

diff_time Subtracts the sec- diff_time (01/01/2014, 01/01/2014)


ond date from the = -86,400
first date and returns diff_time (clicked, submitted)
the result in number
of seconds.

hour_of_day Returns the hour of hour_of_day (received)


the day for the given
date.

is_weekend Returns true if the is_weekend (01/31/2015) = true


given date falls on a is_weekend (emailed)
Saturday or Sunday.

month Returns the month month (01/15/2014) = January


from the given date. month (date ordered)

month_number Returns the number month_number (09/20/2014) = 9


(1-12) of the month month_number (purchased)
for the given date.

month_number_of_quarter Returns the month month_number_of_quarter (02/20/


(1-12) number for 2018) > 9
the given date in a
quarter.

now Returns the current now ()


timestamp.

start_of_month Returns MMM yyyy start_of_month ( 01/31/2015 ) = Jan


for the first day of FY 2015
the month. Your in- start_of_month (shipped)
stallation configura-
tion can override
this setting so that it
returns a different
format such as MM/
dd/yyyy . Speak
with your
ThoughtSpot admin-
istrator for informa-
tion on doing this.

ThoughtSpot Users Guide Page 169


About date formulas December 13, 2019

Function Description Examples

start_of_quarter Returns the date for start_of_quarter ( 09/18/2015 ) =


the first day of the Q3 FY 2015
quarter for the given start_of_quarter (sold)
date.

start_of_week Returns the date for start_of_week ( 06/01/2015 ) = 05/


the first day of the 30/2015 Week
week for the given start_of_week (emailed)
date.

start_of_year Returns the date for start_of_year ( 02/15/2015 ) = FY


the first day of the 2015
year for the given start_of_year (joined)
date.

time Returns the time time (3/1/2002 10:32) = 10:32


portion of a given time (call began)
date.

week_number_of_month Returns the week week_number_of_month(03/23/2017) =


number for the given 3
date in a month.

week_number_of_quarter Returns the week week_number_of_quarter(04/03/2017)>


number for the given 2
date in a quarter.

week_number_of_year Returns the week week_number_of_year(04/03/2017) =


number for the given 20
date in a year.

year Returns the year year (01/15/2014) = 2014


from the given date. year (date ordered)

Calculate date formulas

Calculating date formulas is useful when you want to compare data from different date periods. Here are

some examples of using date formulas:

Example 1

The following example shows you how to create formulas that you can use to compare data from this

week to last week.

• The formula for this week is: week ( today () ) - week (date)

ThoughtSpot Users Guide Page 170


About date formulas December 13, 2019

• The formula for last week is: diff_days ( week ( today ) ) , week ( date ) )

Example 2

The following example shows you how to calculate the percent increase from the last date period to this

period in terms of revenue.

1. Create the formula: this week revenue = sum ( if ( this week ) then revenue else

0 )

2. Then create the formula: last week revenue = sum ( if (last week ) then revenue

else 0 )

3. Use nested formulas to calculate the percent increase by creating a parent formula: percent

increase = ( ( last week revenue - this week revenue) / last week revenue )

\* 100

ThoughtSpot Users Guide Page 171


Percent (simple number) calculations December 13, 2019

Percent (simple number) calculations


You can use simple number functions to perform useful percent calculations. Simple number functions

include addition, subtraction, multiplication, and division.

Function Description Examples

* Returns the result of multiplying both num- • 3 * 2 = 6


bers. • price * taxrate

+ Returns the result of adding both num- • 1 + 2 = 3


bers. • price + shipping

- Returns the result of subtracting the sec- • 3 - 2 = 1


ond number from the first. • revenue - tax

/ Returns the result of dividing the first num- • 6 / 3 = 2


ber by the second. • markup / retail price

Calculate percentages

Calculating percentages is useful when you want to see, for example, the percentage revenue generated

from each channel (online, stores, partner, etc.). For example, you can figure out the percentage revenue

generated from each channel (online, stores, partners, etc.).

Create a formula called Percent Revenue in the Formula Assistant:

( sum ( revenue ) / group sum ( revenue ) ) \* 100

Now you can search by each channel, using the percent revenue formula that you just created.

ThoughtSpot Users Guide Page 172


Formula operators December 13, 2019

Formula operators
Formula operators allow you to apply if / then / else conditions in your formulas. You can leverage

operators in your formulas to have them return true, false, or a predetermined value. The operators

include:

Operator Description Examples

and Returns true when both conditions (1 = 1) and (3 > 2) = true


are true, otherwise returns false. lastname = 'smith' and state
='texas'

 Note: Not available for row level


security (RLS) formulas.

if…then…else Conditional operator. if (3 > 2) then 'bigger' else


'not bigger'
if (cost > 500) then 'flag' else
'approve'

ifnull Returns the first value if it is not null, ifnull (cost, 'unknown')
otherwise returns the second.

isnull Returns true if the value is null. isnull (phone)

not Returns true if the condition is false, not (3 > 2) = false


otherwise returns false. not (state = 'texas')

or Returns true when either condition is (1 = 5) or (3 > 2) = true


true, otherwise returns false. state = 'california' or state
='oregon'

Calculate the conditional sum

Calculating the conditional sum is useful when you want to see, for example, the total revenue for a

product by region.

Conditional sum formulas follow this syntax: if (some condition) then (measure) else 0. You can use this

syntax to limit your search in cases when you don’t want to add a column filter. For example: if (

product = shoes ) then revenue else 0

ThoughtSpot Users Guide Page 173


Formula operators December 13, 2019

The following example shows you how to figure out the number of customers who bought both

products, in this case an ipad and galaxy tablet. You can then find out the revenue generated by both

products.

1. Create the following formula in the Formula Builder:

ipadcount = sum ( if ( product = 'ipad' ) then 1 else 0 ) > 0

This formula will provide you with the number of ipads that were bought.

2. You can then create another formula that looks like this:

galaxycount = sum ( if ( product = 'galaxy' then 1 else 0 ) > 0

And this formula will provide you with the number of galaxys that were bought.

3. Using nested formulas, you can combine these two formulas.

For example: f1 = ipadcount + galaxycount

4. Now, you can search using the f1 formula to find out the revenue generated by both

products.

ThoughtSpot Users Guide Page 174


Nested formulas December 13, 2019

Nested formulas
Nested formulas, or formula on formula, allow you to reference a formula within another formula. This

graphic illustrates how you would define a formula and then reference it from another:

These formulas become columns, and are even suggested within the Formula Builder. There is no limit to

the nesting depth you can create.

ThoughtSpot doesn’t allow users to create invalid formulas, such as cyclic (loops) or inconsistent

aggregation formulas. To support this, formulas have dependency awareness. For example, you cannot

delete a formula that is nested in another. Also, formula dependency awareness ensures that you do not

break any dependent formulas while editing a formula with dependent formulas. For example, common

cases of invalidating occur when users try to change a data type.

Nesting enables encapsulation and decomposition of formula logic. Meaning, you may have a staff

member create some small useful formulas that others can use. This also minimizes duplication of

formulas.

ThoughtSpot Users Guide Page 175


Formula support for chasm trap schemas December 13, 2019

Formula support for chasm trap


schemas
You can create a formula that involves aggregated measures coming from multiple fact tables of a

chasm trap.

Just as you would create any other formula, you can create a formula that spans across a chasm trap.

The Formula Builder will provide column suggestions for formulas that span across chasm traps.

ThoughtSpot Users Guide Page 176


Refine a search with a worksheet December 13, 2019

Refine a search with a worksheet


Summary: If you want to search on top of another search, try saving
your search as a worksheet. Then, you can use the saved worksheet
as a data source for a new search.

Worksheets can be created from tables or from searching. You can also create a worksheet from a

search. This is an advanced form of searching. A worksheet created from a search is called an

aggregated worksheet. Aggregated worksheets are effectively the same as any worksheet.

When you do a search on a data source, ThoughtSpot is only able to aggregate one column by one other

column. Because of this, you may come across searches you can’t do in one pass, because they are

essentially nested queries. But you can create the equivalent of nested queries using an aggregated

worksheet, which is essentially an answer that you save as a worksheet.

You can use search saved as a worksheet just like any other data source. You can even link it to other

sources by defining a relationship. When you save an answer as a worksheet, and then use it as a

source in a new search, it is similar to doing a nested query in SQL, only much easier to create.

To create a worksheet from a search, you must belong to a group that has the privilege Has

administration privileges or Can Manage Data. If you are not able to create aggregated worksheets,

contact your administrator and request the Can Manage Data privilege.

Aggregated worksheet workflow

Suppose you have created a search on the sales fact table that shows the top ten Sales Reps by

revenue for the first quarter. Then you want to do some further investigations on that set of data, like

ranking them by how much they discounted a specific product using data from the orders fact table.

Unless you save your first answer as a worksheet, certain explorations like this won’t be possible. If you

want to do this, here are the steps at a high level:

1. Create the first search, and save it as an aggregated worksheet.

2. Link your worksheet to any other data sources you’ll need.

3. Create a new search that includes your aggregated worksheet and the other sources you

linked with it.

4. You may want to create a new worksheet that includes these data sources.

ThoughtSpot Users Guide Page 177


Refine a search with a worksheet December 13, 2019

This will make it easy for people to search using the same group of aggregated worksheet

and tables that you created.

Best practices for using aggregated worksheets

Only users with administrative privileges are able to create aggregated worksheets and link them. Users

that create aggregated worksheets should keep in mind best practices for creating a worksheet and the

boundaries around the final worksheet size.

You can’t link an aggregated worksheet with a sharded table. If you do this and try to search on it, you

will get an error.

To be able to join an aggregated worksheet with a base table, your installation must be configured to

allow the behavior. The aggregated worksheet cannot have more than 5 tables involved. Moreover, the

number of rows in the final aggregated worksheet cannot be greater than 1000.

The order of the objects being linked (joined) matters, this is because joins are directional. The table/

aggregated worksheet with the foreign key needs to occur in the first (left) position. The table with the

primary key should be in the second (right) position.

For the best performance, the final aggregated worksheet should have 50 or fewer columns and no more

than 10 million rows. Exceeding these boundaries can make your worksheet creation slow or error

prone.

You can use an ETL (extract, transform, load) process to circumvent these limitations.

ThoughtSpot Users Guide Page 178


Save a search as a worksheet December 13, 2019

Save a search as a worksheet


This procedure walks you through creating a worksheet from a search. To create a worksheet from a

search (i.e. an aggregated worksheet):

1. Start a new search, or edit an existing visualization from a pinboard.

Any filters or aggregations created during this search will be reflected in the worksheet.

2. If you want to use a different aggregation than the default one for any column, set it from the

column header.

3. Save the answer as a Worksheet.

ThoughtSpot Users Guide Page 179


Save a search as a worksheet December 13, 2019

ThoughtSpot Users Guide Page 180


Search from an aggregated worksheet December 13, 2019

Search from an aggregated worksheet


After creating a worksheet from a search (also called an aggregated worksheet) and linking it to related

data, you’re ready to create your new search. To do a search on the aggregated worksheet, along with

any data sources you linked:

1. Click the search icon, and select Data Source. Choose your linked sources.

2. Do a search using columns from the linked sources, including any aggregations you created.

3. Test the result, to make sure it’s what you expect. If your search shows no data found or

doesn’t look right to you, it is possible that one of the links between your sources was made

on the incorrect column. Check the relationships you created and try linking using a different

column, to see if that gives the expected search results.

4. Once you have the expected answer, you can create a worksheet to make it easier for you

and other people to use. To do this, click the DATA icon.

5. Click the Actions icon from the upper right side of the screen

6. Select Create worksheet.

ThoughtSpot Users Guide Page 181


Search from an aggregated worksheet December 13, 2019

7. Choose both views using Choose Sources.

8. You may need to rename some columns appropriately for searching.

9. Share the worksheet with the appropriate users and groups.

ThoughtSpot Users Guide Page 182


Worksheet example scenarios December 13, 2019

Worksheet example scenarios


Here are three common examples of when you would need to use aggregated worksheets.

Example 1

The first example involves creating an aggregated worksheet with a default filter. Say you want to create

a worksheet that only shows data for a particular US state. In your search, enter customer state =

texas . Then click Actions, and select Save as worksheet. Give your worksheet a name, then click

Save to create your worksheet.

Now you have a worksheet that only contains data that pertains to Texas. You can share this worksheet

with others to search across. Another popular example of this concept includes creating a worksheet

with only active employee data.

Example 2

The second example involves joining two aggregated worksheets. Say you want to plot the revenue of

the top five states over time. Search for revenue , store state , and top 5 . Save this answer as an

aggregated worksheet called Top 5 states . Then start another search with the tokens revenue ,

store state , and date . Save this answer as an aggregated worksheet called Total monthly

purchases .

Now you want to join these two worksheets. Navigate to the DATA tab and make a relationship between

the two worksheets, involving store state.

To start a new search, select your two aggregated worksheets as data sources, selecting the appropriate

columns: store state from Top 5 State s, and date and total sales from Total monthly

Purchases . You will only see data for the top five revenue states.

Example 3

The third example involves creating a search to find customers who bought product A, but did not buy

product B. This example can also be done using conditional formulas.

ThoughtSpot Users Guide Page 183


Worksheet example scenarios December 13, 2019

First, you would have to perform searches for total sales by customer for both A and B, and create

aggregated worksheets for both. Then join these two aggregated worksheets back in an outer join

looking for conditions where the A and B join values are null.

This approach can become clunky, but depending on the requirement, can also be easily implemented.

ThoughtSpot Users Guide Page 184


Basic pinboard usage December 13, 2019

Basic pinboard usage


Summary: Create a new pinboard to group and manage related
search results. Pinboards are the ThoughtSpot term for a dashboard.

Pinboards act like live dashboards, and are collections of your related charts, tables, and headline.

What are pinboards

You can pin charts and tables to any pinboard which you created, and those that have been shared with

you with the Edit privilege. When you create a pinboard, you can share it with other people with either

the View or Edit privilege. Pinboards are interactive, allowing you to perform actions like filtering,

excluding values, and drilldown on the visualizations.

Create a pinboard

To create a pinboard:

1. Click on Pinboards, on the top navigation bar.

2. Click + New Pinboard on the pinboards list page.

3. In the New Pinboard dialog box, give your pinboard a name and description. Then click

Create.

ThoughtSpot Users Guide Page 185


Basic pinboard usage December 13, 2019

Add an answer to a pinboard

Instead of saving an answer you can add it to a pinboard by pinning it. To add an answer to a pinboard:

1. While viewing your answer of interest, click the Pin icon on the top right of the answer.

2. In the Copy to pinboard(s) dialog box, click the + icons next to the pinboards you would like

to add your answer to.

ThoughtSpot Users Guide Page 186


Basic pinboard usage December 13, 2019

You can also select Create new pinboard at the top of the list to create a new pinboard, then

add your answer to it.

Download a pinboard

You can download a pinboard as a PDF file, without having to download each visualization separately.

Downloading a pinboard works just as it would when downloading an answer. To download a pinboard:

1. Click Actions, and select Download as PDF.

ThoughtSpot Users Guide Page 187


Basic pinboard usage December 13, 2019

Details about a pinboard

You can see who authored a pinboard, when it was created, and when it was last modified by choosing

Actions > Pinboard Info.

ThoughtSpot Users Guide Page 188


Basic pinboard usage December 13, 2019

Other pinboard actions

Other pinboard actions include actions you normally perform on your search as well as actions that you

can only perform on a pinboard. Most of these actions are found under the Actions button.

ThoughtSpot Users Guide Page 189


Basic pinboard usage December 13, 2019

Other actions are available on a pinboard display itself. Some actions are static others appear only when

you over over specific locations of the pinboard. This diagram displays active action areas on a

pinboard.

ThoughtSpot Users Guide Page 190


Basic pinboard usage December 13, 2019

If you make a change to a pinboard, the system recognizes this and puts a Save changes button up in

the header to alert you. Simply press this button to make your changes permanent.

ThoughtSpot Users Guide Page 191


Edit the layout of a pinboard December 13, 2019

Edit the layout of a pinboard


Summary: Editing the layout of a pinboard lets you snap
visualizations into place, choose between set visualization sizes, and
reset your layout.

Visualizations within a pinboard are easy to move around and snap into place on a relative flow layout.

Your pinboard layout is also responsive to your browser resolution. This helps keep the layout of your

pinboard neat and organized.

Reorder the visualization

In addition, the size picker at the bottom of a visualization dropdown lets you toggle between

predetermined sizes for each visualization. Charts and graphs can be toggled between a small, medium,

and full width size, while headlines can be only one size (small). One row of the pinboard can hold a

predetermined number of visualizations of each size.

1. Click on Pinboards, on the top navigation bar.

2. On the pinboard list page, click the pinboard you would like to edit.

3. Resize your visualizations by choosing between the predetermined sizes under the

visualization dropdown menu.

ThoughtSpot Users Guide Page 192


Edit the layout of a pinboard December 13, 2019

4. Drag and drop your visualizations on the layout grid to reorder your pinboard.

5. If you are unhappy with your layout or you would like ThoughtSpot to configure your layout for

you, go ahead and reset your layout.

6. Save your pinboard by clicking Actions and Save.

ThoughtSpot Users Guide Page 193


Edit the layout of a pinboard December 13, 2019

Change the orientation of a chart or table

You can change the size of a chart or table on a pinboard. To do this:

1. Navigate to the chart or table.

2. Select the menu.

The system displays the dropdown menu.

ThoughtSpot Users Guide Page 194


Edit the layout of a pinboard December 13, 2019

The last item shows the possible orientation

3. Select a new orientation.

4. Choose Actions > Save.

Remove a visualization from your pinboard.

To delete a visualization:

1. Click on Pinboards, on the top navigation bar.

2. On the pinboard list page, click the pinboard you would like to edit.

3. Click Delete under the dropdown menu of the visualization you would like to delete.

ThoughtSpot Users Guide Page 195


Edit the layout of a pinboard December 13, 2019

4. Save your pinboard by clicking Actions and Save.

ThoughtSpot Users Guide Page 196


Edit the layout of a pinboard December 13, 2019

Other pinboard edits

Other pinboard actions include actions you normally perform on your search as well as actions that you

can only perform on a pinboard. Most of these actions are found under the Actions button.

ThoughtSpot Users Guide Page 197


Edit the layout of a pinboard December 13, 2019

Other actions are available on a pinboard display itself. Some actions are static others appear only when

you over over specific locations of the pinboard. This diagram displays active action areas on a

pinboard.

ThoughtSpot Users Guide Page 198


Edit the layout of a pinboard December 13, 2019

ThoughtSpot Users Guide Page 199


Pinboard filters December 13, 2019

Pinboard filters
Filters, including bulk filters, can be applied to pinboards just as with tables and charts. These kinds of

filters apply to an entire pinboard, making it easy to see only the data that you are interested in across

the tables and charts within a pinboard.

When to use a pinboard filter

Pinboard filters can be very useful when you want to apply the same filters to more than one related

visualization. You can narrow the focus of your pinboard for specific purposes or audiences.

When you apply a filter, the pinboard is not automatically saved with your filter applied. This is to

encourage ad hoc filtering. Therefore, people with read-only access can create pinboard filters. You

must have edit access to the pinboard, and view access (or higher) to the underlying data source in

order save a pinboard filter.

Note that pinboard filters only apply to the tables and charts that are based on worksheets. If a pinboard

also includes tables and charts that were created from underlying tables or on user uploaded data, the

filters don’t apply to them.

Create a pinboard filter

You can create a filter in the pinboard view for any pinboard. This allows you to easily manipulate the

visualizations and view the modified presentation in one place.

Here is an example that shows you how to add a single filter to a pinboard. To create a pinboard filter:

1. Click the Actions button, and click Add filters.

ThoughtSpot Users Guide Page 200


Pinboard filters December 13, 2019

2. In the populated columns menu, click the Add filter icon next to the columns you would like

to use as filters.

ThoughtSpot Users Guide Page 201


Pinboard filters December 13, 2019

3. Choose the values you are interested in by typing them in, selecting the appropriate

checkboxes, or using Add values in bulk.

4. Click Done.

When you apply a filter, the pinboard is not automatically saved with your filter applied to every object in

the pinboard that was created from a worksheet. Pinboard filters do not apply to tables and charts built

directly on top of base tables.

Edit a filter from the answer

Your applied filter will sit at the top of the pinboard, where you can edit it in place:

ThoughtSpot Users Guide Page 202


Pinboard filters December 13, 2019

Or delete it:

ThoughtSpot Users Guide Page 203


Schedule a pinboard job December 13, 2019

Schedule a pinboard job


Summary: You can schedule a pinboard job for any pinboard by
using the Add a schedule prompt page.

You can add multiple schedules with different configurations for a single pinboard. However, each job is

limited to one pinboard schedule. To add a schedule, you must have administrator or can schedule

pinboard privilege, and at least edit-only and view-only access to the pinboard.

To schedule a pinboard:

1. Log in to ThoughtSpot from a browser.

2. Click on Pinboards, on the top navigation bar.

3. Select the pinboard you would like to create a schedule for.

4. Click Actions and select Manage schedules to view all of the schedules set for the pinboard.

ThoughtSpot Users Guide Page 204


Schedule a pinboard job December 13, 2019

5. Click + Schedule to add a new schedule.

The system displays the Add a schedule for PINBORD page. On this page you configure

both the schedule

6. Set the values for your schedule.

ThoughtSpot Users Guide Page 205


Schedule a pinboard job December 13, 2019

Field Description

Repeats You can rebuild a pinboard every n minutes, hourly, daily, weekly, or
monthly. For some of these, you can also choose specific times of the day
or days of the week. Make sure to note the Server time zone which is the
timezone which will be used.

Name Provide a short name for this schedule, Monthly Report Source is an
example of a good name.

Description Enter a description to remind yourself and to inform others. For example, if
this is an important schedule for a meeting or a report, you should mention
that.

Type CSV files provide all data for tables, with one attachment per table. Use
CSV files to perform further analysis offline. PDF files show all visualiza-
tions in the pinboard. Each chart takes up a whole page in the file, while
only the first 100 rows of a table are included. Use PDF files to skim the
data.

Gating
condition
Write a statement that returns a single boolean value (true or false). For ex-
ample, sum (revenue) > 100 is a valid condition but is_weekend
(commit_date) is not. You can use any valid formula in your statement.
Other than checking your formula syntax, ThoughtSpot does not validate
your formula returns a single boolean.

At the scheduled time, ThoughtSpot checks the gating condition, and, if


the condition returns true, processes the pinboard. For a list of valid formu-
las, see the Formula function Reference.

ThoughtSpot Users Guide Page 206


Schedule a pinboard job December 13, 2019

Recipients

You are limited to 1000 recipients per job. You can add Users or groups
to enter ThoughtSpot users or groups. Use Emails to add recipients that
are not ThoughtSpot users. Any users your ThoughtSpot admin must have
set your whitelist domains. Contact ThoughtSpot Support to set your
whitelist domains.

If you experience problems with sending email, your cluster may not have
SMTP enabled. Contact your system administrator to resolve this issue.

7. Click Schedule to save your schedule configuration.

ThoughtSpot Users Guide Page 207


Search actions within a pinboard December 13, 2019

Search actions within a pinboard


You can perform many of the same search actions on individual visualizations within a pinboard as you

can within a search. You can interact directly with a visualization of a pinboard to perform ad hoc

searches or edit it. These search actions include the following:

• Editing a search - You can edit the original search and reconfigure the answer. In the

dropdown of a visualization, click Edit.

You will be taken to an edit mode, where you can view and change sources, search different

columns, change the view, save the answer as a worksheet, add a formula, and change the

chart.

ThoughtSpot Users Guide Page 208


Copy a pinboard December 13, 2019

Copy a pinboard
You can make a copy of a pinboard if you would like to make edits without changing the original

pinboard. Making a copy of a pinboard allows you to make your own edits without overwriting the

original. When saving a copy, you can type in a new name.

1. Click on Pinboards, on the top navigation bar.

2. On the pinboard list page, click the pinboard you would like to copy.

3. Click Actions and select Make a copy.

4. Give your pinboard a new name and description. Then click Save.

ThoughtSpot Users Guide Page 209


Copy a pinboard December 13, 2019

ThoughtSpot Users Guide Page 210


Copy a pinboard or visualization link December 13, 2019

Copy a pinboard or visualization link


Summary: In pinboards, there is a copy link option that lets you copy
the link to access the pinboard and visualizations directly.

You can copy and paste the copied link to include in a presentation or spreadsheet, or email or Slack it

to other people in your company. Note that when clicking the link, the person must be authenticated to

ThoughtSpot to see the visualization (e.g. by logging in or LDAP).

You can also use this link for embedding the chart or table in another Web page, Web portal, or

application when using the ThoughtSpot JavaScript API with Embedding or the REST API. For details,

read the ThoughtSpot Application Integration Guide.

To copy the link for a pinboard:

1. Click on Pinboards, on the top navigation bar.

2. On the pinboard list page, click the pinboard you would like to get a link for.

3. Click Actions and select Copy link.

ThoughtSpot Users Guide Page 211


Copy a pinboard or visualization link December 13, 2019

4. Copy the pinboard link. The highlighted portion is the pinboard ID.

5. To copy an individual visualization link, click Copy link under the dropdown menu of the

visualization you would like to get a link for.

ThoughtSpot Users Guide Page 212


Copy a pinboard or visualization link December 13, 2019

6. Copy the visualization link. The highlighted portion is the visualization ID.

ThoughtSpot Users Guide Page 213


Reset a pinboard or visualization December 13, 2019

Reset a pinboard or visualization


You can undo your edits to a pinboard of visualization by resetting it

Reset the layout of a pinboard

Reset the layout of a pinboard to undo your changes or have ThoughtSpot create a layout for you.

You can reset the layout of your pinboard if you would like to undo your edits or have ThoughtSpot

optimize your layout space for you. This action will keep the sizes of your visualizations, but not the

order.

To reset the layout of a pinboard:

1. Click on Pinboards, on the top navigation bar.

2. On the pinboard list page, click the pinboard you would like to edit.

3. Click Actions and select Auto layout.

ThoughtSpot Users Guide Page 214


Reset a pinboard or visualization December 13, 2019

4. Save your pinboard by clicking Actions and Save.

ThoughtSpot Users Guide Page 215


Reset a pinboard or visualization December 13, 2019

Reset a visualization

After performing ad hoc actions or edits to a visualization of your pinboard, you can reset the

visualization to its original form.

To reset a visualization:

1. On an altered visualization, click the reset icon.

2. Save your pinboard by clicking Actions and Save.

ThoughtSpot Users Guide Page 216


Reset a pinboard or visualization December 13, 2019

ThoughtSpot Users Guide Page 217


Start a slideshow December 13, 2019

Start a slideshow
Summary: Displaying your pinboard as a slideshow is a good way to
present its contents to others.

Presenting your pinboard displays your visualizations in order from left to right and top to bottom.

To start a slideshow:

1. Click on Pinboards, on the top navigation bar.

2. On the pinboard list page, click the pinboard you would like to present.

3. Click Present under the dropdown menu of the visualization you would like to start the

slideshow with.

ThoughtSpot Users Guide Page 218


Start a slideshow December 13, 2019

4. Use the left and right arrow keys to navigate between your pinboard’s visualizations.

5. Click the x at the top right of the screen or push the Esc key to exit the slideshow view.

ThoughtSpot Users Guide Page 219


Understand data sources December 13, 2019

Understand data sources


Summary: Use the DATA tab to manage data sources.

The DATA tab lists all of the tables and data sources available to you. There are three types of data

sources that you may see in the data list. They are tables, worksheets, and user uploaded data. You will

most likely only see worksheets and user uploaded sources. These are the most commonly used data

sources for searching.

Clicking on the name of a table or data source shows you detailed information about it. You won’t be

able to change these settings or edit the table unless it was shared with you with the Edit privilege. To

see how to edit a data source, refer to the ThoughtSpot Administrator Guide.

Use the filters at the top of the page to find the data you are interested in. From the DATA tab, you can

also delete or apply stickers to tables and data sources in bulk by selecting them and clicking the

appropriate action button.

ThoughtSpot Users Guide Page 220


Understand data sources December 13, 2019

Related information
• View your data profile

Basic column data profile information is available under Profile on the Data page.

• About sharing

Whenever you are working in ThoughtSpot, you are in your own private environment until you

share your work with others. This applies to searches, pinboards, and any data you upload.

ThoughtSpot Users Guide Page 221


Create and load a CSV file December 13, 2019

Create and load a CSV file


Summary: The simplest way to load data is to upload a CSV or Excel
file from the ThoughtSpot Web interface.

Loading data through the Web browser is recommended for smaller tables (under 50MB) with simple

relationships between them. This method is recommended for small, one time data loads. Using this

method, the data schema is created for you automatically.

Any user who belongs to a group that has the privilege Has administration privileges or Can upload

user data can upload their own data from the browser.

Your data should be in a CSV (comma separated values) before you load it. A CSV file is a text file made

up of data fields separated by a delimiter and optionally enclosed with an enclosing character. If your

data contains multiple tables, you’ll have a separate CSV for each table.

Create a CSV file

The first step in loading data is to obtain or create one or more CSV files that contain the data to be

loaded into ThoughtSpot. CSV is a common format for transferring data between databases.

ThoughtSpot requires this format.

Most applications such as Microsoft Excel or Google Sheets can output CSV formatted files. If your

source is an Excel spreadsheet or Google Sheet:

1. Save, export, or download the file in CSV format. The exact procedure you use will depend on

the source application.

2. Review the file’s format before uploading it to ThoughtSpot.

Your source data may be in another database. If this is the case, your company’s ETL

(extract, transform, load) process will typically generate CSV files. If your source is another

database:

3. Connect to the source database.

4. Extract each table you wish to import into ThoughtSpot as a CSV file.

ThoughtSpot Users Guide Page 222


Create and load a CSV file December 13, 2019

The column delimiter should be a , (comma), | (pipe), or tab.

Large organizations typically have a data administrator or department the builds ETL processes. If the

data you want is in another system, speak with your ThoughtSpot administrator about getting CSV files

extracted from this system.

Formatting the CSV

A CSV file contains a delimiter that marks the separation between fields in the data. The delimiter is

usually comma, but it can be any character. The file also contains fields optionally enclosed with double

quotes. Use these guidelines when creating the CSV file:

• If the CSV contains column headers, they must match the column names in the database

exactly.

• Often a | (pipe) or tab is used as the delimiter, because it may be less likely to occur within

the data values.

• When a field contains a double quote, it must be escaped with the character specified in the

escape character argument in tsload .

• When a field contains the delimiter, the field must be enclosed in double quotes.

ThoughtSpot supports a wide range of date and timestamp formats in the CSV file. Blank values in user

uploaded CSV files are interpreted as NULL values. These include the values (case insensitive):

• NULL

• \N

• NA

• N/A

• [space]

If you are appending data to an existing schema or table, columns in the CSV file must be in the same

order as defined in the target table.

Load the CSV File

Any user who belongs to a group that has the privilege Has administration privileges or Can upload

user data can upload their own data from the browser. To load the CSV or Excel file into ThoughtSpot:

ThoughtSpot Users Guide Page 223


Create and load a CSV file December 13, 2019

1. Log into ThoughtSpot from a browser.

2. Click on DATA, on the top navigation bar.

3. Click the Actions button in the upper right corner, and select Upload Data.

4. Upload the CSV or Excel file by doing one of these options:

a. Click on Browse your files and select the file.

b. Drag and drop the file into the drop area.

5. Answer the question Are the column names already defined in the file header?

6. Answer the question Are the fields separated by? Click Next.

7. Click on the column header names to change them to more useful names, if you’d like. Click

Next.

8. Review the automatically generated data types for each column, and make any changes you

want. There are four data types: Text, Integer, Decimal, and Date.

9. Click Import.

When an upload is complete, the system reports the results and offers you some further

actions.

ThoughtSpot Users Guide Page 224


Create and load a CSV file December 13, 2019

• Click Link to Existing Data if you want to link the data you uploaded to the data in

another table or worksheet.

• Click Search if you want to begin a new search.

• Click Auto analyze if you want to use the SpotIQ feature to find insights in your

new data.

Troubleshoot uploads

Boolean data must use TRUE / FALSE values. Other values such as Y / N are not supported.

ThoughtSpot Users Guide Page 225


Append data through the UI December 13, 2019

Append data through the UI


Summary: Use append to add more data to an existing data source.

If you have permissions to upload data and permissions to a data source, you can add to that source by

uploading more data with CSV file. You can append data to your existing system tables through the

ThoughtSpot application, even if the tables were initially loaded using Data Connect or tsload . The

CSV file must have the same structure as the table it is being loaded into, including number and type of

columns, in the same order as the target table.

To append data into ThoughtSpot:

1. Log in to ThoughtSpot from a browser.

2. Click on Data, on the top navigation bar.

3. Click the on the table you would like to append data to.

4. Click the Load data button.

5. Upload the CSV or Excel file by doing one of these options:

• Click on Browse your files and select the file.

• Drag and drop the file into the drop area.

6. Answer the question Are the column names already defined in the file header?

7. Answer the question Do you want to append to the existing data or overwrite it?

8. Answer the question Are the fields separated by? Click Next.

9. Click on the column header names to change them to more useful names, if you’d like. Click

Next.

ThoughtSpot Users Guide Page 226


Append data through the UI December 13, 2019

10. Review the automatically generated data types for each column, and make any changes you

want. There are four data types: Text , Integer , Decimal , and Date .

11. Click Import.

12. Click Link to Existing Data if you want to link the data you uploaded to the data in another

table or worksheet. Or click Search if you want to begin a new search.

ThoughtSpot Users Guide Page 227


View a data profile December 13, 2019

View a data profile


After you upload a CSV file, it is available as a table in ThoughtSpot. The Profile tab appears after you

have selected a specific table from DATA.

The data profile includes null values, min, max, average, and sum information for each table column. This

Profile view should help you get a better sense of what’s there before searching on the data.

ThoughtSpot Users Guide Page 228


Set your display language (locale) December 13, 2019

Set your display language (locale)


The language the ThoughtSpot UX displays is based off of the locale in a user’s profile. The locale

preferences control the language and data formats (date and number formats) by geographic locations.

In addition to American English (en-US), ThoughtSpot supports:

Locale Language

de-DE German

en-CA Canadian English

en-GB United Kingdom English

en-US English (United States)

es-US (beta) Spanish (United States)

fr-CA (beta) French (Canada)

fr-FR (beta) French (France)

ja Japanese

pt-BR (beta) Portuguese (Brazil)

zh-CN (beta) Chinese (S)

Date and number formats change to reflect your locale. So, if you set Japanese as your default locale in

your profile settings, then the interface will update to reflect that after you refresh your page.

Keywords, operators, and error messages are included in the translated material. Formulas, however, are

not translated. Also, all metadata remains as user inputted.

ThoughtSpot Users Guide Page 229


Set your display language (locale) December 13, 2019

For example, if you are using ThoughtSpot in the US, the number formatting should look like this:

xxx,xxx.xx . And in Europe, it should look like this: xxx.xxx,xx .

 Warning: It is possible that you set your locale but find strings in the UI still appear in English,

this indicates an untranslated string. Please notify ThoughtSpot support.

ThoughtSpot Users Guide Page 230


What is SpotIQ? December 13, 2019

What is SpotIQ?
SpotIQ is a ThoughtSpot feature that helps you find insights into your data. Insights are trends,

correlations, explanations of increases, explanations of decreases, and outliers (values unique from what

is typical in your data).

Using SpotIQ, you can find interesting answers in your data that you might not have found on your own.

SpotIQ also learns from your responses to your insights. Meaning, how you interact with SpotIQ results

helps to build better results.

Who can use SpotIQ?

The SpotIQ feature is made for users who are not data magicians; however, data magicians can use it to

do power data magic. This means SpotIQ is for everyone.

If you can see the SpotIQ on your ThoughtSpot dashboard, you have access to SpotIQ:

If you can’t see this option, ask your ThoughtSpot Administrator to give you the Has Spot IQ privilege.

Where to find SpotIQ actions

The SpotIQ page shows you the all the analysis results in the system you have access to, these results

are called SpotIQ insights. You can create your own results from several different locations in your

system:

• search results such as query, saved answer, or visualization.

• tables or worksheets

• data uploads

• SpotIQ insights

The menu items that use SpotIQ have a lozenge that indicates this:

ThoughtSpot Users Guide Page 231


What is SpotIQ? December 13, 2019

How do you use SpotIQ?

The best way to learn how to use SpotIQ is to try it for your self. The SpotIQ 101 tutorial walks you

through a simple example.

ThoughtSpot Users Guide Page 232


SpotIQ 101: Load and analyze data December 13, 2019

SpotIQ 101: Load and analyze data


This 101 walks you through a few simple, SpotIQ workflows. When you have completed the walk through

you will be able to use the core features of SpotIQ in your ThoughtSpot installation.

If you want a detailed overview of what SpotIQ does before you try it out, first read the introduction to

SpotIQ.

Prerequisites

Before you begin, make sure you can login into ThoughtSpot application. To complete this tutorial, you

need the ability to log into ThoughtSpot and the ability to upload a CSV file. You also need the ability to

use the SpotIQ application. These features require that your user account must have the following

privileges:

• Can upload user data

• Has Spot IQ privilege

Your ThoughtSpot administrator can give you these privileges. If you can see the SpotIQ option on your

ThoughtSpot dashboard, you have access to SpotIQ:

Get the sample data and some insights

You can use SpotIQ with any of the data in your system.

This tutorial uses a dataset containing a list of sales and movement data by item and department.

1. Download the FoodDollarDataReal CSV file.

2. Save or move the file to a place on your local drive..

ThoughtSpot Users Guide Page 233


SpotIQ 101: Load and analyze data December 13, 2019

Upload the data


1. If you haven’t, log into the ThoughtSpot application.

2. Click the DATA tab and choose Actions > Upload Data.

3. Browse to the sample data file you downloaded or drag the file into the upload area.

4. Choose YES for the Are the column names already defined in the file header setting.

5. Choose Comma for the Are the files separated by? setting.

6. Click Next for the Set column names page.

7. Set the category_num column to TEXT on the Set column types page.

ThoughtSpot Users Guide Page 234


SpotIQ 101: Load and analyze data December 13, 2019

8. Click Upload.

The system presents you with a few choices.

9. Choose SpotIQ Auto Analyze to build SpotIQ insights.

Building insights can take time. How long depends on the data you are analyzing. The

ThoughtSpot application displays an informational message. The message disappears after a

moment.

Work with the INSIGHTS list

Each time SpotIQ does an analysis, it generates a set of results. ThoughtSpots keeps the results until the

user that requested the analysis (or an admin), deletes them. You can run SpotIQ on the same object

multiple times. Each analysis generates new results.

1. To check for the results of your analysis, select the SpotIQ page.

The SpotIQ page allows you to see all results with data you have permission for. So the

results lists shows All results or just Yours.

ThoughtSpot Users Guide Page 235


SpotIQ 101: Load and analyze data December 13, 2019

2. Select Yours.

3. Look for results from your FoodDollarDataReal data.

SpotIQ labels each result with a NAME, DESCRIPTION, STICKERS, and MODIFIED. The

NAME comes from the object that was analyzed which is referenced again in the

DESCRIPTION. The combination of NAME, DESCRIPTION, and MODIFIED is unique.

4. Take a minute and review the DESCRIPTION and MODIFIED time.

Not every SpotIQ analysis creates results. You can see information about each analysis as

well as the results.

5. Select the analyzes link at the top of the page.

Check the STATUS and also how long the RESULT took to generate. Since you got results,

you can see that the analysis succeeded.

6. Select the Analysis for FoodDollarDataReal and choose Delete.

The information disappears from the analyzes list.

7. Choose Results.

You should still see the results for your FoodDollarDataReal run. Deleting information about

an analysis run does not delete the actual results. You must delete each individually.

ThoughtSpot Users Guide Page 236


SpotIQ 101: Load and analyze data December 13, 2019

Where to go next

At this point, you’ve created a set of insights using SpotIQ, in the next section you Review insights you

created.

ThoughtSpot Users Guide Page 237


SpotIQ 101: Do more with SpotIQ December 13, 2019

SpotIQ 101: Do more with SpotIQ


At this point, you have done the first set of SpotIQ tutorial tasks, you’ve uploaded some data and run

your first SpotIQ analysis. You should be able to look at the SpotIQ list and see when your analysis ran.

This is important knowledge because data changes, you’ll want to run multiple analyzes on the same

data.

In this section, you look at the results and see what insights SpotIQ discovered. You’ll learn about the

basic types of analysis SpotIQ runs on data.

View results of an analysis


1. If you haven’t, log into the ThoughtSpot application.

2. Select the SpotIQ > Results page.

3. Look for results from your FoodDollarDataReal analysis and click on the NAME. The

application opens the SpotIQ insights.

The first panel provides information about the analysis.

4. Click on the small i to see a summary of the SpotIQ analysis.

ThoughtSpot Users Guide Page 238


SpotIQ 101: Do more with SpotIQ December 13, 2019

You can tell that SpotIQ ran through 20 combinations and discovered 14 insights. The first

looked for an insight in a combination of the table_num and year columns in the

FoodDollarDataReal data and discovered one insight. The next to column combination

table_num and units did not reveal any insights.

5. Close the details panel and look at the corresponding insight SpotIQ produced.

You can see that SpotIQ found three sets of insights:

• 2 insights for CATEGORY_DESC have significantly higher Total imports than the

rest. Includes similar insights for Total value_added.

• Insights from Cross Correlation Analysis.

• Insights from Trend Analysis.

There is a reason there are three sets. You’ll learn the answer to that later.

Time and your insight data

You’ll notice that when you first look at an insight there is an expiration date in the upper right corner:

If the expiration time elapses, ThoughtSpot automatically removes the reports.

ThoughtSpot Users Guide Page 239


SpotIQ 101: Do more with SpotIQ December 13, 2019

Insights also take space in the ThoughtSpot installation. A lot of people creating insights can add up to a

lot of data lying around. Just as water rising in a bath tub can overflow or just cause a problem you have

to wade through, too much data can create a lot of old reports to sift through.

Another reason to expire an insight is time. Typically, business data is changing every day if not more

frequently. Any particular set of insights are valid for data during a specific period of time. This doesn’t

mean old insights can’t provide information you can use, just that you are unlikely to get the same insight

twice.

If a set of insights look good, you can Save them and they are not removed when they expire. Do this

now, click Actions > Save from the menu:

Now your insights won’t expire as you work with them!

Data outliers

SpotIQ attempts to look for three central insights. The first insight it looks for are data outliers. An outlier

is a value that is “far away” or that differs from the other data.

Outliers can result from measurement or recording errors or they could contain valuable information. For

example, one store might sell significantly more towels in one week out of the year because there was a

flood that week.

1. Scroll to the first carousel of data that SpotIQ created for you.

A carousel groups a set of visualizations on a page. You can use the arrows attached to a

carousel to “page” through its contents.

2. Count the number of items in the carousel.

ThoughtSpot Users Guide Page 240


SpotIQ 101: Do more with SpotIQ December 13, 2019

You should see that SpotIQ found two outliers.

In this case, SpotIQ is indicating that the Total Imports value is significantly higher than the

other values in your set.

Two facts about this outlier shouldn’t surprise, you. The first fact is that a total exceeds all the

other items in the data. That just makes sense so this isn’t a true outlier.

The second fact is that SpotIQ insights are not always interesting. In this case the data

included totals in the row data which caused nonsense outliers. You can use SpotIQ to fix this

issue and go further. More about this later in the tutorial.

Looking for relationships (cross-correlation analysis)

The second category of insights SpotIQ attempts to find is cross-correlations. Cross-correlation looks for

and measures relationships between two quantitive, continous information sets – in our case two fields

(columns) in our dataset. Usually, you’ll see a cross-correlation in your insights if your data includes time

or date data.

The result of a correlation analysis shows how strong and in what direction a relationship between two

data sets moves. The range is -1 to 1, the closer the cross-correlation value is to 1, the more closely the

information fields (data elements) are correlated.

1. Scroll down your insight page, till you find the correlation results:

2. Page through the correlation category to the third insight:

ThoughtSpot Users Guide Page 241


SpotIQ 101: Do more with SpotIQ December 13, 2019

You can see that the over all total and the total category number values correlate very

strongly. The correlation also looks for a lag value.

In the business world the dependence of a variable Y (the dependent variable) on another

variable X (the explanatory variable) is rarely instantaneous. Often, Y responds to X after a

certain lapse of time. Such a lapse of time is called a lag. Good Data Help.

Trends over time

The third set of insights SpotIQ looks for is a trendline. A trendline is a straight or curved line that

indicates the general pattern or direction of a time series data (information in sequence over time). As

you may have guessed, trendlines rely on your data having a date or time column.

You can use a trendline to determine the general direction of a trend in your data. Are sales are climbing

or are customers are declining over time?

1. Scroll down to the Insights from Trend Analysis section.

2. Look for the Total imports by year result.

ThoughtSpot Users Guide Page 242


SpotIQ 101: Do more with SpotIQ December 13, 2019

At this point, you may have noticed that SpotIQ grouped each type of insights. Outliers, correlations, and

this last one, trendlines. This grouping makes it easier to locate and review similar types of insights.

Where to go next

In this section, you explored some of the functionality of the SpotIQ page. You learned that SpotIQ

combines columns in your data to look for three categories of insights:

• outliers

• cross-correlations

• trendlines

In the next section, you’ll learn how to schedule SpotIQ to deliver insights on a regular basis.

ThoughtSpot Users Guide Page 243


SpotIQ 101: Review insights December 13, 2019

SpotIQ 101: Review insights


You’ve finished the second part of the tutorial. In this, the third and final part, you’ll learn how you can

modify a SpotIQ analysis to extend or customize the analysis. You’ll edit an insight to customize the

chart it uses or modify the Search syntax behind it.

Customize an analysis

In the second part of the tutorial, you reviewed the first output from SpotIQ. The outlier insights weren’t

really that useful. Let’s try to dig deeper into that.

1. Scroll down to the outlier section.

2. Select the first insight.

3. Choose the menu and select Auto Analyze.

The system responds by starting a new insight run based on the single chart. Each time you

request a change to the analysis settings, it starts another run.

4. Return to the SpotIQ page and select your new analysis.

ThoughtSpot Users Guide Page 244


SpotIQ 101: Review insights December 13, 2019

5. Open the analysis and review the analysis details.

If you recall, the first run against this data SpotIQ ran through 20 combinations and

discovered 14 insights. In this second run against one table, SpotIQ ran 49 combinations and

developed 17 insights. Only 4 insights were discovered.

Running SpotIQ again does not necessarily result in fewer runs or even, as in this case a

reduced number of insights. It changes the analysis though, by selecting the single insight

from your first run, you gave SpotIQ information it could use to focus the next run.

Continue with the customization.

6. Choose Customize Analysis.

The Customize Analysis dialog appears.

7. Select the Customize algorithms tab.

8. Uncheck the Outlier Detection using Z-Score option.

9. Click ANALYZE.

SpotIQ starts a new analysis.

10. Open the new analysis from the SpotIQ page.

ThoughtSpot Users Guide Page 245


SpotIQ 101: Review insights December 13, 2019

You’ll find that the new analysis has the same name as the last one you ran. The new results

include an outlier and a cross-correlation. You’ll discover with these new charts a definite

outlier 6/30/2005 .

The changes you make in this step persist on the underlying data for all your future analyses. You can

unset these values by going back into the dialog and removing what you set.

A temporary customization for a single insight

Finally, you might have noticed the thumbs at the bottom of each insight. Use the thumbs up to tell

SpotIQ you like the data insight. Clicking thumb’s down display an Improve Analysis dialog:

ThoughtSpot Users Guide Page 246


SpotIQ 101: Review insights December 13, 2019

You can exclude a value from this individual analysis and rerun the analysis. Unlike the Customize

Analysis action, this action works only on this analysis and does not persist.

Try this for yourself later at some point.

Modify an insight search and visualization

The lines used in the cross-correlation are somewhat ambiguous. A different visualization may help in

this case. You can also modify the charts you see in your results. Try this now.

1. Select the menu on the Total imports, Total value_added by year chart.

2. Click on the chart menu and choose Edit.

The Edit Visualization appears. The layout is familiar to any user that has run a ThoughtSpot

search or worked with a result. This is dialog reveals the Search syntax used to generate the

insight. You can use this dialog to do all the things you would normally do with a search.

ThoughtSpot Users Guide Page 247


SpotIQ 101: Review insights December 13, 2019

3. Edit the search bar and remove table_num from the search.

The table_num isn’t strictly necessary in the data.

4. Select the chart icon and choose Line Column to change the visualization.

5. Choose Actions > Update.

6. Close the dialog by pressing the Close.

The chart with your changes now appears in the SpotIQ list. The outlier stands out very

clearly now in both charts.

ThoughtSpot Users Guide Page 248


SpotIQ 101: Review insights December 13, 2019

Present your insights

You can present SpotIQ insights in several ways. You can present an individual result or all of them at

once. You can package all the insights in a PDF. This is useful for passing a packet of results. Since any

insight reflects the data at a specific point in time, always consider saving the insight as a PDF.

1. Locate the Actions menu on the corner of the SpotIQ page.

2. Choose Actions > Download as PDF from the menu.

The system downloads a file containing all the insights. Keep in mind this file can be very

large if there are a lot of insights found in your data.

You can use the Present action to view visualizations that appear in a carousel, and present them as a

group.

1. Scroll down to the first carousel with your new charts.

2. Roll over the right corner of the menu to reveal the menu.

3. Choose Present from the menu.

Click through the carousel with the next / previous arrow buttons, or use the left side menu of

chart names.

ThoughtSpot Users Guide Page 249


SpotIQ 101: Review insights December 13, 2019

Also, each individual chart has a Download, Present, or Copy link action you can take.

Schedule a recurring analysis

If you find an analysis configuration that is useful. You can run that configuration periodically. This is a

good thing to do of course as, in a business, data changes all the time.

1. Go to the SpotIQ page.

2. Choose the Analysis tab.

3. Click on the latest Total imports by CATEGORY_DESC analysis.

The Customize Analysis dialog appears.

4. Choose the Job Schedule option.

5. Fill out the schedule to run the job Monthly.

ThoughtSpot Users Guide Page 250


SpotIQ 101: Review insights December 13, 2019

Every month SpotIQ will update your analysis with new data.

Keep in mind that SpotIQ jobs take resources in your system. So, you really don’t want to leave casual

jobs running in the system. Go ahead and delete this latest job. Now that you know how to schedule a

job, it isn’t needed anymore.

1. Click the checkbox for the job you just scheduled.

2. Click Delete to remove it.

Congratulations!

Congratulations, at this point you’ve learned the basics of SpotIQ with ThoughtSpot. Throughout the

application, you’ll find the SpotIQ icon on search answers, pinboards, visualizations, and data. Wherever

you see this option, you can click to run suggested or custom analyses, and get new insights on the

SpotIQ page.

ThoughtSpot Users Guide Page 251


Best SpotIQ Practices December 13, 2019

Best SpotIQ Practices


The SpotIQ feature works without you having to do anything but pushing a button. However, like any

other feature, there things you can do to optimize the feature. This page contains some best practices

you can use to make SpotIQ more effective when you use it.

When to invoke SpotIQ

If you followed the tutorial, you know that right after uploading data is a good time to run Auto Analyze.

SpotIQ can very quickly help you find insights in your data.

Start from a Search. Enter a single measure in the bar; one you want to explore of course! Then, choose

Actions > Auto Analyze on the results. Choosing the single measure focuses SpotIQ.

Use Custom Analyze to focus or tweak the SpotIQ results. While you are tempted to keep all the

columns, eliminating some can also result in a better analysis.

Do your data modeling

You can increase the SpotIQ’s effectiveness by ensuring you are practicing good data modeling. This is

true if you are user uploading the occasional data file or a data management professional. Modeling data

requires that you can:

1. Click on the DATA icon, to get to the data management listing.

2. Click on a data source you own or can edit. This brings up the Columns screen, where you’ll

make your modeling settings.

3. Modify one or more column settings.

4. Save your changes.

If you worked through the SpotIQ tutorial, you can try experiment on the FoodDollarDataReal

data you uploaded.

Make sure you set the INDEX PRIORITY for columns in your data source. Use a value between 8-10 for

important columns to improve their search ranking. Use 1-3 for low priority columns. INDEX PRIORITY

impacts user-based ranking which helps SpotIQ focus its analysis.

ThoughtSpot Users Guide Page 252


Best SpotIQ Practices December 13, 2019

SpotIQ uses measures for correlations. For trendlines and outliers, if SpotIQ has a measure, it then drills

by attributes in turn.

You should also set AGGREGATION on your columns. SpotIQ applies the default aggregations from

your data when it pulls measures for analysis.

Situations to avoid

Like any AI, some situations SpotIQ is not yet equip to handle. You should know what these are so you

can avoid them. If your data contains a measure that uses a MOVING_* or GROUP_* formula, SpotIQ

may return results that simply aren’t meaningful. When doing a correlation analysis, SpotIQ may not find

meaningful data if you have a measure with anything other than SUM .

Set SpotIQ preferences

You can set preferences for SpotIQ in your user profile. These preferences allow you to control how you

receive analysis notifications. They also allow you to exclude nulls or zero value measures from analysis.

ThoughtSpot Users Guide Page 253


Best SpotIQ Practices December 13, 2019

The exclusions impact each SpotIQ analysis. It eliminates points with such values during statistical

calculations for example, for mean, standard deviation SpotIQ excludes values from any equation and

uses only the remaining points.

ThoughtSpot Users Guide Page 254


Custom SpotIQ analysis December 13, 2019

Custom SpotIQ analysis


Everywhere in ThoughtSpot where you can Auto Analyze with ThoughtSpot, you can also configure a

customized SpotIQ analysis. The customized analysis can be a one-time customization or can apply to

all future analysis of that particular data source.

Finding customization controls

Every menu or location where you can Auto Analyze with ThoughtSpot, you can also choose Custom

Analyze. It looks like this:

Regardless of where you are in the ThoughtSpot UI, the SpotIQ Customize Analysis dialog has the

same layout. The columns, of course, are specific to the data you launched the dialog from.

This dialog has three tabs, Included columns, Excluded columns , and Customize Algorithms. The

Customize Algorithms is by far the most advanced panel.

ThoughtSpot Users Guide Page 255


Custom SpotIQ analysis December 13, 2019

The SpotIQ insights page has an option for this dialog and also an option to customize a single analysis.

ThoughtSpot Users Guide Page 256


Custom SpotIQ analysis December 13, 2019

The Improve Analysis dialog always excludes a value from all future analysis.

Finally, you can also set some analysis options from your user Profile.

You’ll notice only one of these options is actually related to analysis. The others relate to how you

receive notifications about SpotIQ operations.

ThoughtSpot Users Guide Page 257


Custom SpotIQ analysis December 13, 2019

Eliminate null values

Null values should be eliminated from your analysis.

From next analysis From future analyses

Set Exclude null values from my analy-


sis on your user Profile to exclude them
In the Search bar, add a filter column!= Null to the
from any future SpotIQ analyses you do.
search bar. Or choose Exclude null values from cur-
rent analysis, using the Customize algorithms panel.

Exclude uninteresting column(s) in insight

You should always exclude columns you are not interested from your analysis.

From next analysis From future analyses

Choose Also exclude from all my future analysis on the


Excluded columns tab of the Customize Analysis panel.
Exclude a column using Improve
Alternatively, exclude using the Improve Analysis dialog on
Analysis on a visualization. Or set the
an insight that uses the column you want to exclude.
value through the Excluded columns
tab of the Customize Analysis panel.

Include an interesting column

You can always includes columns that interest you in your analysis.

From next analysis From future analyses

Ensure **Index Priority** is between 8-10 on


the column through data modeling.
Choose Customize Analysis and select to Include
columns that you want to appear.

ThoughtSpot Users Guide Page 258


Custom SpotIQ analysis December 13, 2019

Remove known date outliers

Your data may contain known outliers. For example, you are in the middle of a quarter and only want to

analyize the previous quarter. Anything from the present quarter could contain an outlier.

From next analysis From future


analyses

Not applicable.

In the Search bar, add a filter date< last time period to the search
bar.

Too few insights

Your SpotIQ analysis may not provide you as many insights as you think it should.

From next analysis From future


analyses

Not applica-
ble.
Choose Customize Analysis and Customize algorithms Decrease the Multiplier
for Outlier Detection to a value closer to zero.

ThoughtSpot Users Guide Page 259


Advanced R Customizations December 13, 2019

Advanced R Customizations
Admins and users with the Has SpotIQ privilege can run an R script using the Custom Analysis feature

of SpotIQ. This means you can run an R script from any point in ThoughtSpot where you find the

Custom Analysis menu option.

The R language is an open source programming language used for statistical computing. As such,

knowledgable users can use R to perform sophisticated analysis in a ThoughtSpot environment.

This section explains the feature and how to use it. It is not meant as an R primer. To learn more about R

and how to use it, visit the R Project for Statistical Computing.

Understand R script requirements in ThoughtSpot

ThoughtSpot provides R running as a service within a ThoughtSpot cluster. Permissions are restricted.

This means the R script does not have permission to issue system commands.

The ThoughtSpot cluster has pre-installed the basic R packages. If your script requires a specific

package, you must request your ThoughtSpot cluster admin to install the package on your behalf.

ThoughtSpot internally transforms and binds an R script prior to sending it to the cluster’s R service. The

system expects each script have a well-defined structure which is the following:

####R SCRIPT####
<Fill script body>
####COLUMN BINDINGS (ONE PER LINE)####
<Fill column bindings here>

The scripts contains the column bindings with the answer results appearing as parameters in the R

script. ThoughtSpot expects for each .param n in R your script must provide a corresponding binding.

The following pseudo code illustrates an R script in a form suitable for ThoughtSpot:

ThoughtSpot Users Guide Page 260


Advanced R Customizations December 13, 2019

####R SCRIPT####
df <- data.frame(.param0,.param1, ...);
...
write.csv(..., file=#output_csv#, ...);

Notice that .param0 refers to first column in column binding and .param1 refers to the second.

Should you need a third binding, you would use .param2 and so forth.

The output of the script is either PNG or CSV. This example script uses #output_csv# to emit data in a

CSV (tabular) format. Use #output_png# to emit data in PNG format.

Presently, error reporting is limited for R scripts in SpotIQ. You should validate your R script independent

of your ThoughtSpot environment. Once you are sure they are free of syntax or other errors, then try the

script in ThoughtSpot.

Try a Custom Analysis with R

The following illustrates how to run an R analysis on data that has a sales column and a zip code

column.

1. Log into ThoughtSpot and go to the Search bar.

2. Use Choose Sources to locate a source with sales and zip code data. This example uses

Phone Sales data.

3. Enter sales zip code in the search bar.

If your source contains the proper data, you should see something similar to the following:

4. Choose Actions > Custom Analyze.

ThoughtSpot Users Guide Page 261


Advanced R Customizations December 13, 2019

ThoughtSpot opens the Customize Analysis dialog.

5. Choose the Customize algorithms tab.

6. In the Select Algorithms section, click the Custom R Script box.

Selecting this option unsets all the other options on this tab and displays the Refine

Parameters field.

ThoughtSpot Users Guide Page 262


Advanced R Customizations December 13, 2019

7. Enter this sample script in the field.

####R SCRIPT####
library(ggplot2)
set.seed(20)
df <- data.frame(.param0, .param1)
cluster <- kmeans(df[1:2], 3, nstart = 20)
cluster$cluster <- as.factor(cluster$cluster)
png(file=#output_file#,width=400,height=350,res=72)
print(ggplot(df, aes(.param0, .param1, color = cluste
r$cluster)) + geom_point())
####COLUMN BINDINGS (ONE PER LINE)####
Sales
Zip Code

This script binds .param0 to Sales and .param1 to the Zip Code column. You can see

from the script that the output should be PNG ( #output_png# ).

ThoughtSpot Users Guide Page 263


Advanced R Customizations December 13, 2019

8. Check your work.

9. Click Trigger Analysis.

SpotIQ runs your analysis in the background.

10. Go to the SpotIQ page and click on the results of your newly triggered analysis.

You should see the results in PNG format similar to the following:

ThoughtSpot Users Guide Page 264


Advanced R Customizations December 13, 2019

You can run another R script directly on this result to get CSV results. Try this on your own. Here is the

script to give you CSV output:

ThoughtSpot Users Guide Page 265


Advanced R Customizations December 13, 2019

####R SCRIPT####
set.seed(20);
df <- data.frame(.param0,.param1);
cluster <- kmeans(df[1:2], 3, nstart = 20);
df$Cluster <- as.factor(cluster$cluster);
colnames(df)[1] <- 'Sales';
colnames(df)[2] <- 'Zip Code';
write.csv(df, file=#output_csv#, row.names=FALSE);
####COLUMN BINDINGS (ONE PER LINE)####
Sales
Zip Code

Syntax help in the dialog

Use the i icon to see help for the R syntax.

ThoughtSpot Users Guide Page 266


Overview of sharing December 13, 2019

Overview of sharing
Whenever you are working in ThoughtSpot, you are in your own private environment until you share your

work with others. Sharing applies to searches, pinboards, and any data you upload.

What you can share

This is a list of objects a regular, non-administrator user can share. Administrators have more granular

control over data security.

You can share with groups and with individual people. You can share several different types of objects:

Object Description Default security model


type

Uploaded Data that was Only the user who uploaded the data (and any user with administrator
data uploaded us- privileges) has access to it by default. They can share a table (or se-
ing a Web lected columns) with other people or groups. See Share uploaded data
browser.

Pinboards A pinboard of Anyone who can view a pinboard can share it. See share a pinboard
saved search
results.

Answers The result of Anyone who can view an answer can share it. See share answers
a single
search.

Who can share and to whom

You do not have to be an administrator or the owner, to share saved answers or pinboards. Any user can

share them, based on the access levels the user has.

If you upload a spreadsheet, you can share Can View or Can Edit privileges with other people, who can

further share them with others. This last point is important. Like sharing a secret, sharing an object or

your data can quickly spread in ths way to people you do not intend it to. So, if your data or work is

sensitive to your business be thoughtful in how you share it.

ThoughtSpot Users Guide Page 267


Overview of sharing December 13, 2019

Finally, you can revoke access to an object (table, worksheet, or pinboard) that you have previously

shared. Unsharing an object is very similar to sharing it.

ThoughtSpot Users Guide Page 268


Share a pinboard December 13, 2019

Share a pinboard
Summary: Whenever you view a pinboard you have the option of
sharing it with others.

When you share a pinboard what you are really sharing is a live link to the pinboard, when you click

Share with…. So whenever someone else views it, they will see the most recently saved version with the

most recent data. You do not have to be an administrator or the owner to share saved pinboards. Any

user can share them, based on the access levels the user has.

To share a pinboard:

1. Configure the pinboard to look as you’ll want it to appear when shared.

2. Click the Share icon.

3. Click + Add users or groups and select users or groups that you want to share with.

ThoughtSpot Users Guide Page 269


Share a pinboard December 13, 2019

4. Configure the level of access by selecting from the dropdown list. You will only see options

available, based on your own access level. For example, if you have only View access, you

cannot share as Edit. You can select:

• Can View to provide read-only access. If the person doesn’t have access to the

underlying data, they can only view a shared pinboard. If they change anything on

the pinboard, their changes are not saved. In order to persist the changes, the user

would need to make a copy of the modified pinboard.

• Can Edit to allow modification. Enables renaming or deleting the shared pinboard.

If a person with edit privileges modifies a shared pinboard, their changes will be

saved to it.

5. Click Add and Save.

6. Click Add Permissions.

ThoughtSpot Users Guide Page 270


Share answers December 13, 2019

Share answers
Summary: You do not have to be an administrator or the owner to
share saved answers. Any user can share them, based on the access
levels the user has.

Whenever you view an answer, you have the option of sharing it with others. It will be shared in its

current state, so if you have modified the answer by interacting with the table or chart, the modified

version is what will be shared.

1. Configure the answer to look as you’ll want it to appear when shared.

2. Save the answer by clicking Actions and Save.

3. Click Actions and then Share.

4. Click + Add users or groups and select users or groups that you want to share with.

ThoughtSpot Users Guide Page 271


Share answers December 13, 2019

5. Configure the level of access by selecting from the dropdown list. You can select:

• Can View to provide read-only access. If the user doesn’t have access to the

underlying worksheet, they can only view the shared answer.

• Can Edit to allow modification. Enables renaming or deleting the shared answer. If

a user with edit privileges modifies a shared answer, their changes will be saved to

it.

6. Click Add and Save.

7. Click Done.

ThoughtSpot Users Guide Page 272


Share uploaded data December 13, 2019

Share uploaded data


If you upload a spreadsheet, you can share Can View or Can Edit privileges with other people, who can

further share them with others.

Understand data sharing

Data that you uploaded from a Web browser is only visible to you and to the administrator. You can

share the entire uploaded table, or only some of its columns.

By default, if you share only some table columns, users with access to those columns cannot see the

other column’s data in their searches. However, the data can become visible if a worksheet or pinboard

that also contain those columns is shared with these users.

If you want to prevent shares of these types from also revealing the columns, you can ask your

administrator to enable a stricter behavior.

How to share data

Share uploaded data by following these steps:

1. Click on DATA, on the top navigation bar.

2. Click on the name of the uploaded data you want to share.

3. Click the Share icon.

ThoughtSpot Users Guide Page 273


Share uploaded data December 13, 2019

4. Select Entire Table or Specific Columns.

5. If you selected Specific Columns, select the column(s) to share.

6. Click + Add users or groups and select the users and groups that you want to share with.

ThoughtSpot Users Guide Page 274


Share uploaded data December 13, 2019

7. Configure the level of access by selecting from the dropdown list. You can select:

• Can View to provide read-only access. This enables viewing the table data and

defining worksheets on the table.

• Can Edit to allow modification. This enables renaming, modifying, or deleting the

entire table and adding or removing its columns.

8. Click Add and Save.

9. Click Done.

ThoughtSpot Users Guide Page 275


Revoke access (unshare) December 13, 2019

Revoke access (unshare)


You may need to revoke access to an object (table, worksheet, or pinboard) that you have previously

shared. Unsharing an object is very similar to sharing it.

To unshare one or more objects:

1. Go to the area where the object(s) you want to unshare is located. From the top menu bar:

• If the object is a table or worksheet, click DATA.

• If the object is a pinboard, click Pinboards.

• If the object is an answer, click Answers.

2. Find the object(s) in the list, and check the corresponding box(es).

3. Click the Share icon.

4. Click the X next to the users and groups that you want to remove from sharing.

ThoughtSpot Users Guide Page 276


Revoke access (unshare) December 13, 2019

5. Click Done.

ThoughtSpot Users Guide Page 277


Slack and Spot December 13, 2019

Slack and Spot


Slack is an enterprise software platform that allows teams to communicate effectively through a

messaging application. Slack also allows users to communicate with applications like ThoughtSpot

through chat.

Spot is a ThoughtSpot integration with Slack.

Does your Slack have Spot?

Spot has to be integrated with your Slack team before you can use it. Your team admin or ThoughtSpot

admin can do this. To test if your Slack team has a Spot integration, mention @spot and see if he barks

back:

In this particular channel, @spot is there for you but like his brothers @spot-east-credit is not in the

channel. Scroll down to Frequently asked questions to get started with Spot.

If @spot doesn’t come when you “call” you are spotless. Ask your administrator to see if you can get

one.

ThoughtSpot Users Guide Page 278


How to use Spot December 13, 2019

How to use Spot


To get help, first grant access to the Spot app to a Slack channel to post messages and authorize

yourself as a Spot trainer.

Use Spot for help


1. Launch Slack if you haven’t already.

2. Go to a channel where you want to invite the Spot app.

3. Invite @spot like you would invite anyone else.

Type @spot and press RETURN .

4. Click invite them to join.

5. Ask Spot for help.

If this is the first time you’ve commanded the app, Spot tells you:

6. Take the clicking here link.

Spot takes you out of Slack and to the ThoughtSpot application.

7. Enter your username and password.

ThoughtSpot Users Guide Page 279


How to use Spot December 13, 2019

If you do this successfully, the application tells you:

8. Go back to Slack and ask Spot to list what he does by typing @spot help.

Spot can run a query directly that’s the **1. ** command.

9. Try simply listing your subscriptions.

ThoughtSpot Users Guide Page 280


How to use Spot December 13, 2019

 Note: Spot only looks for objects with the spot sticker on them. Work your way from

a pinboard to asking for a particular chart.

10. Work your way from a pinboard to asking for a particular chart.

At this point, you should go onto explore your Spot’s talents on your own!

Frequently Asked Questions

Whenever possible, Spot answers questions for you directly in channel. Here, though, are some frequent

questions owners ask.

ThoughtSpot Users Guide Page 281


How to use Spot December 13, 2019

Can I name my Spot whatever I want?

Sure. This is done by your administrator when the integration is created. Um, I guess the answer is really

“ask your parents?”

Spot isn’t fetching what I want, why?

Spot can only fetch “toys” that are have the spot sticker. Your administrator should do this when he sets

up ThoughtSpot.

My spot looks different, why is that?

The screenshots in this document were taken on desktop integration of Slack. If you are using mobile

device, your interactions with Spot will look different.

How does Spot know you?

The first time you message Spot, it will send back a link which you can click to link your ThoughtSpot

account to Slack account. Once the accounts are linked all charts you query from Spot will be tied to

your permissions/authorization.

How to subscribe to charts posted to a channel?

Any chart retrieved using spot can be subscribed to, and can have any number of channel/user

subscribers.

How do I get the list of Spot commands?

Messaging help to spot gives you a list of commands and how to use them.

ThoughtSpot Users Guide Page 282


More help and support December 13, 2019

More help and support


Summary: There are many locations on the web where you can find
help for ThoughtSpot.

There are multiple locations inside and outside the ThoughtSpot application where you can get more

help. This page describes some of the ways to get more help inside or outside of the application

interface.

Each version of ThoughtSpot has its own documentation set. ThoughtSpot releases new documentation

sets for every major release version ( x.y ) of ThoughtSpot. Documentation features added with minor

versions ( x.y.z ) are added to the corresponding major release. This means, for example, that new

documentation for 4.4.1 minor release version appears in the 4.4 major version documentation.

 Tip: ThoughtSpot supplies release notes for every major release and every minor release

version (x.y.z).

Help menu

You can navigate directly to this site on the web by entering docs.thoughtSpot.com in your browser’s

address bar. By default, the latest version (4.4) is presented first. ThoughtSpot versions prior to 4.4

have documentation located at help.thoughtSpot.com.

You can navigate to this documentation from inside the ThoughtSpot application as well. In this case,

the application links directly to the documentation version that matches your product version.

ThoughtSpot Users Guide Page 283


More help and support December 13, 2019

From this dialog you can get to the following:

Link Takes you to ...

How search works a short video that explains how to use the Search bar

Keywords a product keyword reference

Release notes The notes for the ThoughtSpot version.

Documentation this documentation set

Downloads a list of software downloads such as connectors

Along the bottom of the Help dialog you’ll see a link to contact Support as well as the version of

ThoughtSpot you are using.

Learn

Choosing Learn from the Help menu takes a you to the Learn center. The center contains one or more

example queries. You can only play replay on data that you have access to.

Click on a item in Learn to replay it in ThoughtSpot. During a reply, you can click Pause or Resume or

click ESC to exit the replay.

ThoughtSpot Users Guide Page 284


More help and support December 13, 2019

Any administrator can add to the items in the Learn center. To add a replay, do the following:

1. Search in your search bar.

2. Choose the pin from the answer that results. The system lists the pinboards you can pin to.

3. Select Learn how to use ThoughtSpot pinboard.

4. Navigate to the Learn center to replay your search.

ThoughtSpot Users Guide Page 285


More help and support December 13, 2019

Support contact information

If you still can’t find what you’re looking for, you can contact support.

ThoughtSpot Users Guide Page 286


More help and support December 13, 2019

ThoughtSpot Users Guide Page 287


Keyword reference December 13, 2019

Keyword reference
You can use keywords when asking a question to help define your search. This reference lists the

various keywords. You can also see this list of keywords and examples from within the help center.

Keywords in Other Languages

Currently, we have the following keyword translations, and plan to add more soon.

日本語 Deutsche

General

Keyword Examples

top • top sales rep by count sales for average revenue > 10000
• sales rep average revenue for each region top

bottom • bottom revenue average


• bottom revenue by state
• customer by revenue for each sales rep bottom

n top 10 sales rep revenue

n bottom 25 customer by revenue for each sales rep

sort by • revenue by state sort by average revenue


• revenue by customer sort by region

Date

Keyword Examples

after order date after 10/31/2014

ThoughtSpot Users Guide Page 288


Keyword reference December 13, 2019

Keyword Examples

before order date before 03/01/2014

between … and ... order date between 01/30/2012 and 01/30/2014

daily year-over-year growth of revenue by order date daily year-over-year

daily shipments by region daily

day count monday restaurant

day of week revenue by day of week last 6 months

day of week count shipments Monday

n days for each month sales last 2 days for each month

n days for each quar- revenue last 15 days for each quarter
ter

n days for each week total sold last 2 days for each week

n days for each year revenue last 300 days for each year

growth of … by … dai- growth of sales by order date daily


ly

growth of … by … growth of sales by date shipped monthly sales > 24000


monthly

growth of … by … growth of sales by date shipped quarterly


quarterly

growth of … by … growth of sales by receipt date weekly for pro-ski2000


weekly

growth of … by … growth of sales by date closed yearly


yearly

growth of … by ... growth of sales by order date

n hours for each day sales last 2 hours for each day

last day by customers last day by referrer

last month by customers last month by day

last n days visitors last 7 days

last n quarters visitors last 2 quarters by month by campaign

last n weeks visitors last 10 weeks by day

ThoughtSpot Users Guide Page 289


Keyword reference December 13, 2019

Keyword Examples

last quarter customers last quarter sale > 300

last week customers last week by store

last year top 10 customers last year by sale by store for region west

last n years visitors last 5 years by revenue for sum revenue > 5000

month to date sales by product month to date sales > 2400

month year commission by sales rep February 2014

month commission January

month revenue by month last year

monthly year-over- growth of revenue by receipt date monthly year-over-year


year

monthly commission > 10000 monthly

n months for each cost last 2 months for each quarter


quarter

n months for each last 8 months for each year


year

n days ago sales 2 days ago

n months ago sales 2 months ago by region

n months visitors last 6 months for homepage visits > 30 by month

n quarters ago sales 4 quarters ago by product name contains deluxe

n weeks ago sales 4 weeks ago by store

n years ago sales 5 years ago by store for region west

n years opportunities next 5 years by revenue

next day shipments next day by order

next month appointments next month by day

next n days shipments next 7 days

next n months openings next 6 months location

next n quarters opportunities next 2 quarters by campaign

ThoughtSpot Users Guide Page 290


Keyword reference December 13, 2019

Keyword Examples

next n weeks shipments next 10 weeks by day

next quarter opportunities next quarter amount > 30000

next week shipments next week by store

next year opportunities next year by sales rep

quarter to date sales by product quarter to date for top 10 products by


sales

quarterly year-over- growth of revenue by date shipped quarterly year-over-year


year

quarterly sales quarterly for each product

n quarters for each last 2 quarters for each year


year

today sales today by store

week to date sales by order date week to date for pro-ski200

week revenue by week last quarter

weekly year-over-year growth of revenue by date shipped weekly year-over-year

weekly revenue weekly

n weeks for each sales last 3 weeks for each month


month

n weeks for each last 2 weeks for each quarter


quarter

n weeks for each year last 3 weeks for each year

year to date sales by product year to date

year revenue by product 2014 product name contains snowboard

yearly shipments by product yearly

yesterday sales yesterday for pro-ski200 by store

ThoughtSpot Users Guide Page 291


Keyword reference December 13, 2019

Time

Keyword Examples

detailed ship time detailed

last minute count homepage views last minute

last hour count unique visits last hour

n minutes count visitors last 30 minutes

n hours count visitors last 12 hours

hourly visitors by page name hourly

n minutes sum inventory by product 10 minutes ago


ago

n hours ago sum inventory by product by store 2 hours ago

Text

Keyword Examples

begins with product name begins with 'pro'

contains product name contains "alpine" description contains "snow shoe"

ends with product name ends with 'deluxe'

not begins product name not begins with "tom's"


with

not contains product color not contains 'tan' product color not contains 'red'

ThoughtSpot Users Guide Page 292


Keyword reference December 13, 2019

Keyword Examples

not ends product name not ends with "trial"


with

similar to course name similar to 'hand'

not similar course name not similar to 'hand'


to

Number

Function Examples

sum sum revenue

average average revenue by store

count count visitors by site

max max sales by visitor by site

min min revenue by store by campaign for cost > 5000

standard standard deviation revenue by product by month for date after


deviation 10/31/2010

unique unique count visitor by product page last week


count

variance variance sale amount by visitor by product for last year

Comparative

Function Examples

all all

between... and revenue between 0 and 1000

vs, versus revenue east vs west

ThoughtSpot Users Guide Page 293


Keyword reference December 13, 2019

Function Examples

> sum sale amount by visitor by product for last year


sale amount > 2000

< unique count visitor by product by store for sale


amount < 20

>= count calls by employee lastname >= m

<= count shipments by city latitude <= 0

= unique count visitor by store purchased products = 3


for last 5
days

!= sum sale amount region != canada region != mexico

Location

Keyword Examples

near revenue store name county near san francisco

near... within n miles|km|meters revenue store name county near alameda within 50
miles

farther than n miles|km|meters average hours worked branch farther than 80 km from
from scarborough

Location keywords only work for searches where the data source includes latitude/longitude data.

Period

Keyword Example

quarter (date) quarter (purchase date)

quarter of year (date) quarter of year (purchase date)

month of quarter (date) month of quarter (purchase date)

week of year (date) week of year (ship date)

ThoughtSpot Users Guide Page 294


Keyword reference December 13, 2019

week of quarter (date) week of quarter (ship date)

week of month (date) week of month (ship date)

day of year (date) day of year (ship date)

day of quarter (date) day of quarter (ship date)

day (date) day (ship date)

day of month (date) day of month (order date)

day of week (date) day of week (order date)

hour (datetime) hour (timestamp)

ThoughtSpot Users Guide Page 295


TQL reference December 13, 2019

TQL reference
TQL is the ThoughtSpot language for entering SQL commands. This reference lists TQL commands you

can use to do things like creating a schema or verifying a data load.

About using TQL

You can use TQL either through the ThoughtSpot application’s web interface or the command line

interface in the Linux shell.

Use --query_results_apply_top_row_count <number> flag to limit the number of result rows

returned by a query. For example:

$ tql --query_results_apply_top_row_count 100

As a best practice, you should enclose object names (database, schema, table, and column) in double

quotes, and column values in single quotes. When referring to objects using fully qualified object names,

the syntax is:

"database"."schema"."table"

To get help on SQL when using TQL, enter help on the command line.

You can use TQL to view and modify schemas and data in tables. Remember to add a semicolon after

each command. Commands are not case sensitive but are capitalized here for readability.

 Note: Worksheets and pinboards in ThoughtSpot are dependent upon the data in the

underlying tables. Use caution when modifying tables directly. If you change or remove a schema

on which those objects rely, the objects could become invalid.

ThoughtSpot Users Guide Page 296


TQL reference December 13, 2019

View schemas and data

Syntax Description

SHOW DATABASES Lists all available databases.

Examples:

SHOW DATABASES;

Switches the context to the specified database. This is required if queries


do not use fully qualified names (database.schema.table) for specifying ta-
USE <database>
bles.

Examples:

USE "fruit_database";

SHOW SCHEMAS

Lists all schemas within the current database. For example:

SHOW SCHEMAS;

SHOW TABLES Lists all tables within the current database by schema. For example:

SHOW TABLES;

SHOW TABLE Lists all the columns for a table. For example:
<table>

SHOW TABLE "locations";

SCRIPT SERVER Generates the TQL schema for all tables in all databases on the server. For
example:

SCRIPT SERVER;

ThoughtSpot Users Guide Page 297


TQL reference December 13, 2019

Syntax Description

SCRIPT DATABASE Generates the TQL schema for all tables in a database. For example:
<database>

SCRIPT DATABASE "fruit_database";

SCRIPT TABLE Generates the TQL schema for a table. For example:
<table>

SCRIPT TABLE "vendor";

ThoughtSpot Users Guide Page 298


TQL reference December 13, 2019

Syntax Description

Shows specified set of table data.

SELECT
<cols_or_expr> If you do not specify the TOP number of rows to select, the top 50 rows will
FROM be returned by default. The number of rows to return can be set using the
<table_list> TQL command line flag:
[WHERE <predi-
cates>]
--query_results apply_top_row_count
[GROUP BY <ex-
pr>]
[ORDER BY <ex- You can use the following aggregation functions:
pr>]
• sum
• count
• count distinct
• stddev
• avg
• variance
• min
• max

You can use the following date functions:


• absyear
• absmonth
• absday
• absquarter
• date
• time

For example:

SELECT TOP 10 "quantity" FROM "sales_fact";

SELECT COUNT(*) FROM "vendor";

SELECT "vendor", SUM("quantity") FROM "sales_fact" GROUP BY


"vendor";

SELECT "vendor", SUM("amount") FROM "vendor", "sales_fact"


WHERE "sales_fact"."vendorid" = "vendor"."vendorid"
AND "amount" > 100 GROUP BY "vendor" ORDER BY "amount"
DESC;

SELECT "vendor", SUM("quantity") FROM "sales_fact"


GROUP BY "vendor" LIMIT 10;

ThoughtSpot Users Guide Page 299


TQL reference December 13, 2019

Schema creation

Syntax Description

CREATE DATABASE Creates a database. For example:


<data-
base>
CREATE DATABASE "fruit_database";

CREATE SCHEMA Creates a schema within the current database. For example:
<schema>

CREATE SCHEMA "fruit_schema";

CREATE TABLE Creates a table with the specified column definitions and constraints.
<table> (<column_def-
initions>
Use PARTITION BY HASH to shard a table across all nodes. If no KEY
[<con-
is specified, the table will be randomly sharded.
straints>]) [PARTI-
TION BY HASH (<num-
ber>) [KEY Do not specify relationship constraints ( FOREIGN KEY or RELATION-
("<col- SHIP ) in the CREATE TABLE statement. Instead, define these using AL-
umn>")]]) TER TABLE statements at the end of your TQL script, after creating your
tables. This method guarantees that tables are created before they are
referenced in the constraint definitions. For example:

CREATE TABLE "vendor" ("vendorid" int, "name" var-


char(255));

CREATE TABLE "sales_fact" ("saleid" int, "locationid" int,


"vendorid" int,
"quantity" int, "sale_amount" double, "fruitid" int,
CONSTRAINT PRIMARY KEY("saleid")) PARTITION BY HASH(96) KEY
("saleid");

ThoughtSpot Users Guide Page 300


TQL reference December 13, 2019

Schema modification

Syntax Description

DROP DATABASE Drops a database and all of its schemas and tables. For example:
<data-
base>
DROP DATABASE "fruit_database";

DROP SCHEMA Drops a schema within the current database, and drops all of the tables in
<schema> the schema. For example:

DROP SCHEMA "fruit_schema";

DROP TABLE Drops a table. For example:


<table>

DROP TABLE "location";

TRUNCATE TABLE
<table>
Removes all data from a table, but preserves its metadata, including all
GUIDs, relationships, etc. This can be used to force a new schema for a
table without losing the metadata.

However, this operation removes all existing data from the table and must
be used with caution. You must reload the data following a TRUNCATE , or
all dependent objects (worksheets and pinboards) in ThoughtSpot will be-
come invalid. For example:

TRUNCATE TABLE "location";

ThoughtSpot Users Guide Page 301


TQL reference December 13, 2019

Syntax Description

Alters a table to add, drop, or rename a column.

ALTER TABLE
<table> When you add a column to an existing table, you must provide a default
ADD|DROP|RENAME value to use for existing rows. For example:
COLUMN
<column>
ALTER TABLE "cart" ADD COLUMN "nickname" varchar(255) DE-
FAULT 'no
nickname';

ALTER TABLE "cart" DROP COLUMN "nickname";

ALTER TABLE "cart" RENAME COLUMN "nickname" TO "shortname";

ALTER TABLE Drops the primary key from a table.


<table> DROP CON-
STRAINT PRIMARY
Note that if you then add a new primary key, the same upsert behavior will
KEY;
be applied as with adding any primary key. This can result in data deletion,
so make sure you understand how the upsert will affect your data ahead of
time. For example:

ALTER TABLE "sales" DROP CONSTRAINT PRIMARY KEY;

ALTER TABLE "sales" ADD CONSTRAINT PRIMARY KEY ("PO_num-


ber");

ALTER TABLE Drops the named foreign key or relationship between two tables. For ex-
<table> DROP CON- ample:
STRAINT [FOREIGN
KEY| RELATIONSHIP]
ALTER TABLE "sales_fact" DROP CONSTRAINT FOREIGN KEY
<name>;
"FK_PO_number";

ALTER TABLE "fruit_dim" DROP RELATIONSHIP "REL_dates";

ThoughtSpot Users Guide Page 302


TQL reference December 13, 2019

Syntax Description

You must use this syntax when dropping relationships between tables cre-
ated before ThoughtSpot version 3.2. This is because relationships could
ALTER TABLE
not be named in older versions.
<table> DROP [CON-
Drops the foreign key or relationship between two tables where you cannot
STRAINT FOREIGN
reference it by relationship name. If the relationship was created without a
KEY
name, use:
• the name of the referenced table, for a foreign key.
[<table_name>] |
• the name of the related table, for a relationship.
RELATIONSHIP
[WITH
<table_name>]; If you drop a foreign key without specifying the referenced table, all foreign
keys from the table you are altering will be dropped.

Examples:

ALTER TABLE "shipments" DROP CONSTRAINT FOREIGN KEY "or-


ders";

ALTER TABLE "wholesale_buys" DROP RELATIONSHIP WITH "re-


tail_sales";

Drops all relationships that have wholesale_buys as a source.

ALTER TABLE "wholesale_buys" DROP RELATIONSHIP;

Drops all foreign keys from wholesale_buys.

ALTER TABLE "wholesale_buys" DROP CONSTRAINT FOREIGN KEY;

ThoughtSpot Users Guide Page 303


TQL reference December 13, 2019

Syntax Description

ALTER TABLE Changes the partitioning on a table by doing one of:


<table> [SET DI-
MENSION | SET • re-sharding a sharded table
FACT [PARTITION BY • changing a replicated table to a sharded table
HASH • changing a sharded table to a replicated (unsharded) table
[(<shards>)]
[KEY(<column>)]]] By default, ThoughtSpot does not shard dimension tables.

To change the partitioning on a table, or to change a dimension table to a


sharded table, use ALTER TABLE...SET FACT PARTITION BY HASH...;

To make a sharded table into a dimension table (replicated on every node),


use ALTER TABLE...SET DIMENSION; command.

Examples of this statement:

ALTER TABLE "sales_fact" SET FACT PARTITION BY HASH (96) KEY


("PO_number");
ALTER TABLE "fruit_dim" SET DIMENSION;

ALTER TABLE Changes the data type of a column. This can have implications on sharding
<table> MODIFY and primary key behavior. See About data type conversion. For example:
COLUMN <column>
<new_data_type>;
ALTER TABLE fact100 MODIFY COLUMN product_id int;

Modify data

Syntax Description

INSERT INTO Inserts values into a table. Only use this for testing. Do not use INSERT on
<table> VALUES ... a production system. For example:

INSERT INTO "vendor" VALUES ('helen rose', 'jacob norse',


'eileen ruff',
'manny gates');

ThoughtSpot Users Guide Page 304


TQL reference December 13, 2019

Syntax Description

ALTER TABLE Sets the load priority for a table. Load priority determines the order in
<table> SET LOAD which a table is loaded on a cluster restart. You can set any value from
PRIORITY <value> 1-100 . The system default for all tables is 50 . For example:
<new_da-
ta_type>;
ALTER TABLE 'sales_facts' SET LOAD PRIORITY 1;

UPDATE <table> Updates rows in a table that match optionally provided predicates. Predi-
... SET ... cates have the form column = value connected by the AND keyword.
[WHERE ...] Sets the column values to the specified values. For example:

UPDATE "location" SET "borough" = 'staten island', "city" =


'new york'
WHERE "borough" = 'staten isl' AND city = 'NY';

DELETE FROM Deletes rows from a table that match optionally provided predicates. Predi-
<table> [WHERE...] cates have the form column = value connected by the AND keyword.
For example.

DELETE FROM "vendor" WHERE "name" = 'Joey Smith' AND "ven-


dorid" =
'19463';

Constraints and relationships

Constraints and relationships in ThoughtSpot are used to define the relationships between tables (i.e.

how they can be joined). However, constraints are not enforced, as they would be in a transactional

database. You can define the following constraints when creating a table with CREATE TABLE , or add

them to an existing table using the ADD CONSTRAINT syntax:

ThoughtSpot Users Guide Page 305


TQL reference December 13, 2019

Syntax Description

PRIMARY KEY Designates a unique, non-null value as the primary key for a table. This can
be one column or a combination of columns. If values are not unique, an
upsert will be performed if a row includes a primary key that is already pre-
sent in the data. Some examples: </p>

CREATE TABLE "schools" ( "schoolID" varchar(15), "schoolName"


varchar(255), "schoolCity" varchar(55), "schoolState" var-
char(55), "schoolNick"
varchar(55), CONSTRAINT PRIMARY KEY ("schoolID") ) ;

ALTER TABLE "cart" ADD CONSTRAINT PRIMARY KEY ("cart_id");

ALTER TABLE "cart" DROP CONSTRAINT PRIMARY KEY "cart_id";

FOREIGN KEY

Defines a relationship where the value(s) in the table are used to join to a
second table. Uses an equality operator. The foreign key must match the
primary key of the table that is referenced in number, column type, and or-
der of columns.

When creating a foreign key, give it a name. You can reference the foreign
key name later, if you want to remove it.

Examples of this statement:

ALTER TABLE "batting" ADD CONSTRAINT "FK_player" FOREIGN KEY


("playerID")
REFERENCES "players" ("playerID");

ALTER TABLE "batting" ADD CONSTRAINT "FK_lg_team" FOREIGN


KEY ("lgID" ,"teamID")
REFERENCES "teams" ("lgID" ,"teamID");

ALTER TABLE "shipment" ADD CONSTRAINT "FK_PO_vendor" FOREIGN


KEY ("po_number",
"vendor") REFERENCES "orders" ("po_number", "vendor");

ALTER TABLE "shipment" DROP CONSTRAINT "FK_PO_vendor";

ThoughtSpot Users Guide Page 306


TQL reference December 13, 2019

Syntax Description

RELATIONSHIP

Defines a relationship where the value(s) in the table can be used to join to
a second table, using an equality condition (required) and one or more
range conditions (optional). These conditions act like a WHERE clause
when the two tables are joined. They are applied using AND logic, such
that all conditions must be met for a row to be included.

You may add multiple relationships between tables. When creating a rela-
tionship, give it a name. You can reference the relationship name later, if
you want to remove it.

Examples of this statement:

ALTER TABLE "wholesale_buys" ADD RELATIONSHIP "REL_fruit"


WITH
"retail_sales" AS "wholesale_buys"."fruit" = "re-
tail_sales"."fruit" AND
("wholesale_buys"."date_order" < "retail_sales"."date_sold"
AND
"retail_sales"."date_sold" < "wholesale_buys"."expire_date");

ALTER TABLE "wholesale_buys" DROP RELATIONSHIP "REL_fruit";

Data types

ThoughtSpot supports a simplified list of data types:

Syntax Description Examples

Character • VARCHAR(n) Specify the maximum number of characters, as


in VARCHAR(255). The size limit is 1GB for VAR-
CHAR values.

Floating point • DOUBLE DOUBLE is recommended.


• FLOAT

Boolean • BOOL Can be true or false .

ThoughtSpot Users Guide Page 307


TQL reference December 13, 2019

Syntax Description Examples

Integer • INT INT holds 32 bits.


• BIGINT

BIGINT holds 64 bits.

Date or time • DATE


• DATETIME
DATETIME, TIMESTAMP, and TIME are stored
• TIMESTAMP
at the granularity of seconds
• TIME
.

TIMESTAMP is identical to DATETIME, but is in-


cluded for syntax compatibility.

ThoughtSpot Users Guide Page 308


tsload flag reference December 13, 2019

tsload flag reference


For recurring data loads and for scripting loads, use tsload (the ThoughtSpot Loader). This reference

section lists all the flags that can be used to modify the behavior of tsload .

General tsload flags

Flag Description Notes

--target_database <data- Specifies the pre-existing


base> target database into which
tsload should load the data.

--target_schema <schema> Specifies the target schema. Default is “falcon_default_schema”.

--target_table <table> Specifies the tables that you The tables must exist in the database speci-
want to load into the data- fied by --target_database .
base.

--empty_target Specifies that any data in If supplied, any rows that exist in the table
the target table is to be re- specified by --target_database and --
moved before the new data target table will be deleted before this
is loaded. data load. To perform an “upsert” on the ex-
isting data, omit this flag or specify --
noempty_target .

--max_ignored_rows <num- Specifies the maximum If the number of ignored rows exceeds this
ber> number of rows that can be limit, the load will be aborted.
ignored if they fail to load.

--bad_records_file Specifies the file to use for Input rows that do not conform to the de-
<path_to_file>/<file_name> storing rows that failed to fined schema in ThoughtSpot will be ignored
load. and inserted into this file.

--date_format <date_for- Specifies the format string The default format is yearmonthday e.g.
matmask> for date values. “Dec 30th, 2001” and is represented as
20011230 . Use the date format specifica-
tions supported in the strptime library func-
tion.

--date_time_format Specifies the format string The default is yearmonthday


<date_formatmask> for datetime values. hour:minute:second e.g. Dec 30th, 2001
<time_formatmask> 1:15:12 and is represented as 20011230
01:15:12. Use the datetime format specifica-
tions supported in the strptime library func-
tion.

--time_format <time_for- Specifies the format string The default is hour:minute:second. Use the
matmask> for time values. time format specifications supported in the
strptime library function.

ThoughtSpot Users Guide Page 309


tsload flag reference December 13, 2019

Flag Description Notes

--v=[0|1|2|3 Specifies the verbosity of Provide a value for verbosity level. By de-
log messages. fault, verbosity is set to the minimum, which
is 0. This value is similar to a volume control.
At higher levels your log receives more mes-
sages and that log more frequently. This is
used for debugging. You should not change
this value unless instructed by ThoughtSpot
Support.

--skip_second_fraction Skips fractional seconds If supplied, the upserts logic may be affect-
when loading data. ed, especially if the date time being loaded
is a primary key, and the data has millisec-
ond granularity. Load the data twice, once
as a string with a primary key, and again
with second granularity date time. There is
no support to store fractional seconds in the
ThoughtSpot system.

File loading tsload flags

The following flags are used when loading data from an input file:

Flag Description Notes

--source_file Specifies the location of the


<path_to_file>/<file_name> file to be loaded.

--source_data_format Specifies the data file for- Optional. The default is csv.
[csv|delimited] mat.

--field_separator "<delim- Specifies the field delimiter


iter>" used in the input file.

-- trailing_field_separa- Specifies that the field sepa- Example row with trailing field separator:
tor rator appears after every a,b,c,The default is false.
field, including the last field
per row.

--null_value "<null_repre- Specifies how null values These values will be converted to NULL up-
sentation>" are represented in the input on loading.
file.

--date_converted_to_epoch Specifies whether the “date”


[true|false] or “datetime” values in the
input file are represented as
epoch values.

ThoughtSpot Users Guide Page 310


tsload flag reference December 13, 2019

Flag Description Notes

--boolean_representation Specifies the format in The default is T_F. You can also use this flag
[true_false | 1_0 | T_F | which boolean values are to specify other values. For example, if your
Y_N] represented in the input file. data used Y for true and NULL for false, you
could specify: --boolean_representa-
tion Y_NULL

--has_header_row Indicates that the input file If supplied, the first row of the file is ignored.
contains a header row. If not supplied, the first row of the file is
loaded as data.

--escape_character "<char- Specifies the escape char- If no value is specified, the default is “(dou-
acter>" acter used in the input file. ble quotes).

--enclosing_character Specifies the enclosing If the enclosing character is double quotes,


"<character>" character used in the input you need to escape it, as in this example:
file. --enclosing_character "\""

--use_bit_boolean_values Specifies how boolean val- If supplied, the input CSV file uses a bit for
= [true | false] ues are represented in the boolean values, i.e. the false value is repre-
input file. sented as 0x0 and true as 0x1. If omitted or
set to false, boolean values are assumed to
be T_F, unless you specify something else
using the flag --boolean_representa-
tion [true_false | 1_0 | T_F | Y_N] .

ThoughtSpot Users Guide Page 311


tscli command reference December 13, 2019

tscli command reference


The tscli command line interface is an administration interface for the ThoughtSpot instance. Use

tscli to take snapshots (backups) of data, apply updates, stop and start the services, and view

information about the system. This reference defines each subcommand and what you can accomplish

with it.

The command returns 0 upon success and a non-zero exit code upon failure. Because the tscli

command is typically running a command on multiple codes, an error may be called at different points.

As much as possible, the command attempts to save errors to the stderr directory as configured on a

node.

How to use the tscli command

The tscli command has the following syntax:

tscli [-h] [--helpfull] [--verbose] [--noautoconfig]


[--autoconfig] [--yes] [--cluster <cluster>]
[--zoo <zookeeper>] [--username username] [--identit
y_file identity_file]
{alert,backup,backup-policy,callhome,cluster,comman
d,dr-mirror,etl,event,
feature,fileserver,firewall,hdfs,ldap,logs,map-til
es,monitoring,nas,node,
os,saml,scheduled-pinboards,smtp,snapshot,snapsho
t-policy,spot,ssl,storage,
support}

The tscli command has several subcommands such as alert , backup , and so forth. You issue a

subcommand using the following format:

tscli [subcommand ]

Subcommands have their own additional options and actions such as tscli backup create or

tscli backup delete for example. To view help for a subcommand:

ThoughtSpot Users Guide Page 312


tscli command reference December 13, 2019

tscli [subcommand] -h

A subcommand itself may have several options.

tscli subcommands

This section lists each subcommand and its syntax.

alert subcommand

tscli alert [-h] {count,info,list,off,on,refresh,silence,statu


s,unsilence}

Use this subcommand to do the following:

• tscli alert info Lists all alerts.

• tscli alert list Lists the generated alerts.

• tscli alert off Disables all alerts from the cluster in the cluster’s timezone.

• tscli alert on Enables alerts from the cluster.

• tscli alert silence --name <alert_name>

Silences the alert with alert_name . For example, DISK_ERROR. Silenced alerts are still

recorded in postgres, however emails are not sent out.

• tscli alert status Shows the status of cluster alerts.

• tscli alert unsilence-name alert_name

Unsilences the alert with * alert_name * . For example, DISK_ERROR .

backup subcommand

tscli backup [-h] {create,delete,ls,restore}

ThoughtSpot Users Guide Page 313


tscli command reference December 13, 2019

Use this subcommand to do the following:

• tscli backup create [-h] [--mode {full,light,dataless}] [--type

{full,incremental}] [--base BASE] [--storage_type {local,nas}] [--remote]

name out

Pulls a snapshot and saves it as a backup where:

• --mode {full,light,dataless}

Mode of backups. To understand these diffrent modes see Understand backup

modes.

• --type {full,incremental} Type of backup.(Incremental incremental is not

implemented yet) (default: full)

• --base BASE

Based snapshot name for incremental backup. (Not Implemented yet) (default:

None)

• --storage_type {local,nas}

Storage type of output directory. (default: local)

• --remote

Take backup through orion master. (default: True)

• tscli backup delete * name * Deletes the named backup.

• tscli backup ls List all backups taken by the system.

• tscli backup restore Restore cluster using backup.

backup-policy

tscli backup-policy [-h] {create,delete,disable,enable,ls,sho


w,status,update}

ThoughtSpot Users Guide Page 314


tscli command reference December 13, 2019

Use this subcommand to do the following:

• tscli backup-policy create Prompts an editor for you to edit the parameters of the

backup policy.

• tscli backup-policy delete name Deletes the backup policy with name .

• tscli backup-policy disable name Disables the policy name .

• tscli backup-policy enable name Enables the policy name .

• tscli backup-policy ls List backup policies.

• tscli backup-policy show name Show the policy name .

• tscli backup-policy status name Enables the policy name .

• tscli backup-policy update * name * Prompts an editor for you to edit the policy

name .

callhome

tscli callhome [-h] {disable,enable,generate-bundle}

Use this subcommand to do the following:

• tscli callhome disable Turns off the periodic call home feature.

• tscli callhome enable --customer_name customer_name `

Enables the “call home” feature, which sends usage statistics to ThoughtSpot This feature is

enabled by default.

The parameter customer_name takes the form Shared/*`customer_name`*/stats .

• tscli callhome generate-bundle –d directory --since DAYS

• --d D Dest folder where tar file will be created. (default: None)

• --since DAYS

Grab callhome data from this time window in the past. Should be a human

readable duration string, e.g. 4h (4 hours), 30m (30 minutes), 1d (1 day).

(default: None) Generates a tar file of the cluster metrics and writes it to the

ThoughtSpot Users Guide Page 315


tscli command reference December 13, 2019

specified directory where DAYS is how far back you’d like to generate the tar file

from in days. For example, 30 . If this parameter is not specified, the command

will collect the stats from the last 7 days by default.

cluster

tscli cluster [-h] {abort-reinstall-os,check,create,get-confi


g,load,reinstall-os,report,restore,resume-reinstall-os,resume-u
pdate,set-config,set-min-resource-spec,show-resource-spec,star
t,status,stop,update,update-hadoop}

Use this subcommand to do the following:

• tscli cluster abort-reinstall-os Abort in-progress reinstall.

• tscli cluster check --includes {all,disk,zookeeper,hdfs,orion-cgroups,orion-

oreo} check the status nodes in the cluster.

You must specify a component to check.

• tscli cluster create release

Creates a new cluster from the release file specified by * release * . This command is used

by ThoughtSpot Support when installing a new cluster, for example, tscli cluster create

2.0.4.tar.gz

• tscli cluster get-config Get current cluster network and time configuration. Prints

JSON configuration to stdout. If for some reason the system cannot be connected to all

interfaces, the command returns an error but continues to function.

• tscli cluster load Load state from given backup onto existing cluster

• tscli cluster reinstall-os Reinstall OS on all nodes of the cluster.

• tscli cluster report Generate cluster report.

• tscli cluster restore --release release_tarball backupdir `

Restores a cluster using the backup in the specified directory backupdir . If you’re restoring

from a dataless backup, you must supply the release tarball for the corresponding software

release.

ThoughtSpot Users Guide Page 316


tscli command reference December 13, 2019

• tscli cluster resume-reinstall-os Resume in-progress reinstall.

• tscli cluster resume-update Resume in-progress updates.

• tscli cluster set-config Set cluster network and time configuration. Takes JSON

configuration from stdin.

• tscli cluster set-min-resource-spec Sets min resource configuration of the cluster

• tscli cluster show-resource-spec Prints default or min.

• tscli cluster start Start cluster.

• tscli cluster status Gives the status of the cluster, including release number, date last

updated, number of nodes, pending tables time, and services status.

• tscli cluster stop Pauses the cluster (but does not stop storage services).

• tscli cluster update Update existing cluster.

• tscli cluster update-hadoop Updates Hadoop/Zookeeper on the cluster.

command

tscli command [-h] {run}

Command to run a command on all nodes.

tscli command run [-h] [--nodes NODES ] --dest_dir DEST_DIR [--copyfirst

COPYFIRST ] [--timeout TIMEOUT ] command

• --nodes NODES Space separated IPs of nodes where you want to run the command.

(default: all )

• --dest_dir DEST_DIR Directory to save the files containing output from each nodes.

(default: None)

• --copyfirst COPYFIRST Copy the executable to required nodes first. (default: False )

• --timeout TIMEOUT Timeout waiting for the command to finish. (default: 60 )

dr-mirror

tscli dr-mirror [-h] {start,status,stop}

• tscli dr-mirror start Starts a mirror cluster which will continuously recover from a

primary cluster.

ThoughtSpot Users Guide Page 317


tscli command reference December 13, 2019

• tscli dr-mirror status Checks whether the current cluster is running in mirror mode.

• tscli dr-mirror stop Stops mirroring on the local cluster.

etl

tscli etl [-h] {change-password,disable-lw,download-agent,enabl


e-lw,show-lw}

• tscli etl change-password --admin_username admin_user --username

Informatica_user `

Changes the Informatica Cloud account password used by ThoughtSpot Data Connect.

Required parameters are:

• --admin_username admin_user specifies the Administrator username for

ThoughtSpot.

• --username Informatica_user specifies the username for the Informatica

Cloud.

• tscli etl disable-lw Disables ThoughtSpot Data Connect.

• tscli etl download-agent Downloads the ThoughtSpot Data Connect agent to the

cluster.

• tscli etl enable-lw [-h] --username USERNAME --thoughtspot_url

THOUGHTSPOT_URL --admin_username ADMIN_USERNAME [--groupname GROUPNAME ]

--org_id ORG_ID [--pin_to PIN_TO ] [--proxy_host PROXY_HOST ] [--

proxy_port PROXY_PORT ] [--proxy_username PROXY_USERNAME ] [--max_wait

MAX_WAIT ]

You should contact ThoughtSpot Support for assistance in setting this up. Required

parameters are:

• --username USERNAME Username for Informatica Cloud (default: None)

• --thoughtspot_url THOUGHTSPOT_URL URL to reach thoughtspot. (default:

None)

• --admin_username ADMIN_USERNAME Admin username for ThoughtSpot

(default: None)

ThoughtSpot Users Guide Page 318


tscli command reference December 13, 2019

• --groupname GROUPNAME

• --org_id ORG_ID specifies the Informatica id of the organization (company).

For ThoughtSpot, this is 001ZFA . org_id shouldn’t include the prefix Org . For

example, if on Informatica cloud, the orgid is Org003XYZ , then use only

• --pin_to PIN_TO specifies the IP address to pin to. If you specify an IP to pin

to, that node becomes sticky to the Informatica agent, and will always be used.

Defaults to the public IP address of the localhost where this command was run.

• --proxy_host PROXY_HOST Proxy server host for network access (default: )

• --proxy_port PROXY_PORT Proxy server port (default: )

• --proxy_username PROXY_USERNAME Proxy server username (default: )

• --max_wait MAX_WAIT Maximum time in seconds to wait for Data Connect

agentto start (default: None)

• tscli etl show-lw Shows the status of ThoughtSpot Data Connect. It also returns the

Informatica username and OrgId.

event

tscli event [-h] {list}

This subcommand has the following actions:

tscli event list [-h] [--include INCLUDE ] [--since SINCE ] [--from FROM ] [--to

TO ] [--limit LIMIT ] [--detail] [--summary_contains SUMMARY_CONTAINS ] [--

detail_contains DETAIL_CONTAINS ] [--attributes ATTRIBUTES ]

• --include INCLUDE Options are all, config, notification. Default config. (default: config)

• --since SINCE Grab events from this time window in the past. Should be a human

readable duration string, e.g. 4h (4 hours), 30m (30 minutes), 1d (1 day). (default: None)

• --from FROM Begin timestamp, must be of the form: yyyymmdd-HH:MM (default: None)

• --to TO End timestamp, must be of the form: yyyymmdd-HH:MM (default: None)

• --limit LIMIT Max number of events to fetch. (default: 0)

• --detail Print events in detail format. This is not tabular. Default is a tabular summary.

(default: False)

• --summary_contains SUMMARY_CONTAINS Summary of the event will be checked for this

string. Multiple strings to check for can be specified by separating them with | (event

ThoughtSpot Users Guide Page 319


tscli command reference December 13, 2019

returned if it matchesALL). Put single quotes around the param value to prevent undesired

glob expansion (default: None)

• --detail_contains DETAIL_CONTAINS Details of the event will be checked for this string.

Multiple strings to check for can be specified by separating them with | (event returned if it

matches ALL). Put single quotes around the param value to prevent undesired glob expansion

(default: None)

• --attributes ATTRIBUTES Specify attributes to match as key=value. Multiple attributes to

check for can be specified by separating them with | (event returned if it matches ALL). Put

single quotes around the param value to prevent undesired glob expansion (default: None)

feature

tscli feature [-h] {get-all-config}

This subcommand has the following actions:

tscli feature get-all-config Gets the configured features in a cluster. The command will return a

list of features, such as custom branding, Data Connect, and call home, and tell you whether they are

enabled or disabled.

fileserver

tscli fileserver [-h] {configure,download-release,purge-confi


g,show-config,upload}

This subcommand has the following actions:

• tscli fileserver configure [-h] --user USER [--password PASSWORD ]

Configures the secure file server username and password for file upload/download and the

call home feature. You only need to issue this command once, to set up the connection to the

secure file server. You only need to reissue this command if the password changes. The

parameter PASSWORD is optional. If a password is not specified, you will be prompted to

enter it.

• tscli fileserver download-release [-h] [--user USER ] [--password

PASSWORD ] release Downloads the specified release file and its checksum. Specify the

ThoughtSpot Users Guide Page 320


tscli command reference December 13, 2019

release by number, to the second decimal point (e.g. 3.1.0, 3.0.5, etc.). You may optionally

specify the --user and --password to bypass the credentials that were specified when

configuring the file server connection with tscli fileserver configure . Before using this

command for the first time, you need to set up the file server connection using tscli

fileserver configure .

• tscli fileserver purge-config Removes the file server configuration.

• tscli fileserver show-config Shows the file server configuration.

• tscli fileserver upload [-h] [--user USER ] [--password PASSWORD ] --

file_name FILE_NAME* –server_dir_path * SERVER_DIR_PATH`

Uploads the file specified to the directory specified on the secure file server. You may

optionally specify the --user and --password to bypass the credentials that were

specified when configuring the file server connection with tscli fileserver configure .

Before using this command for the first time, you need to set up the file server connection

using tscli fileserver configure .

Accepts these flags

• --user USER Username of fileserver (default: None)

• --password PASSWORD Password of fileserver (default: None). This is required

and the command prompts you for it if you do not supply it.

• --file_name FILE_NAME Local file that needs to be uploaded (default: None)

• --server_dir_path SERVER_DIR_PATH Directory path on fileserver. (default:

None) The SERVER_DIR_PATH parameter specifies the directory to which you want

to upload the file. It is based on your customer name, and takes the form

/Shared/support/* customer_name * .

firewall

tscli firewall [-h] {close-ports,disable,enable,open-ports,stat


us}

• tscli firewall close-ports

ThoughtSpot Users Guide Page 321


tscli command reference December 13, 2019

Closes given ports through firewall on all nodes. Takes a list of ports to close, comma

separated. Only closes ports which were previously opened using “open-ports”. Ignores ports

which were not previously opened with “open-ports” or were already closed.

• tscli firewall disable Disable firewall.

• tscli firewall enable Enable firewall.

• tscli firewall open-ports --ports ports

Opens given ports through firewall on all nodes. Takes a list of ports to open, comma

separated. Ignores ports which are already open. Some essential ports are always kept open

(e.g. ssh ), they are not affected by this command or by close-ports .

• tscli firewall status Shows whether firewall is currently enabled or disabled.

hdfs

tscli hdfs [-h] {leave-safemode}

This subcommand has the following actions:

tscli hdfs leave-safemode Command to get HDFS namenodes out of safemode.

ldap

tscli ldap [-h] {add-cert,configure,purge-configuration}

This subcommand has the following actions:

• tscli ldap add-cert name certificate

Adds an SSL certificate for LDAP. Use only if LDAP has been configured without SSL and you

wish to add it. Use * name * to supply an alias for the certificate you are installing.

• tscli ldap configure

ThoughtSpot Users Guide Page 322


tscli command reference December 13, 2019

Configures LDAP using an interactive script. You can see detailed instructions for setting up

LDAP in About LDAP integration.

• tscli ldap purge-configuration Purges (removes) any existing LDAP configuration.

logs

tscli logs [-h] {collect,runcmd}

This subcommand has the following actions:

• tscli logs collect [-h] [--include INCLUDE ] [--exclude EXCLUDE ] [--

since SINCE ] [--from FROM ] [--to TO ] [--out OUT ] [--maxsize

MAXSIZE ] [--sizeonly] [--nodes NODES ]

Extracts logs from the cluster. Does not include any logs that have been deleted due to log

rotation.

These parameters have the following values:

• --include INCLUDE

Specifies a comma separated list of logs to include. Each entry is either a

“selector” or a glob for matching files.Selectors must be among: all , orion ,

system , ts . Anything starting with / is assumed to be a glob pattern and

interpreted via find(1) . Other entries are ignored. Put single quotes around the

param value to prevent undesired glob expansion (default: all )

• --exclude EXCLUDE

Comma separated list of logs to exclude. Applies to the list selected by –include.

Params are interpreted just like in –include (default: None)

• --since SINCE

ThoughtSpot Users Guide Page 323


tscli command reference December 13, 2019

Grab logs from this time window in the past. Should be a human readable duration

string, e.g. 4h (4 hours), 30m (30 minutes), 1d (1 day). (default: None)

• --from FROM Timestamp where collection begins, must be of the form:

yyyymmdd-HH:MM (default: None)

• --to TO Timestamp where collection ends, must be of the form: yyyymmdd-

HH:MM (default: None)

• --out OUT Tarball path for dumping logs from each node (default: /tmp/

logs.tar.gz )

• --maxsize MAXSIZE Only fetch logs if size is smaller that this value. Can be

specified in megabytes/gigabytes, e.g. 100MB, 10GB. (default: None)

• --sizeonly Do not collect logs. Just report the size. (default: False)

• --nodes NODES Comma separated list of nodes from where to collect logs. Skip

this to use all nodes. (default: None)

• tscli logs runcmd [-h] --cmd CMD [--include INCLUDE ] [--exclude

EXCLUDE ] [--since SINCE ] [--from FROM ] [--to TO ] [--outfile

OUTFILE ] [--outdir OUTDIR ] [--cmd_infmt CMD_INFMT ] [--cmd_outfmt

CMD_OUTFMT ] [--nodes NODES ]

Runs a Unix command on logs in the cluster matching the given constraints. Results are

reported as text dumped to standard out, the specified output file, or as tarballs dumped into

the specified directory.

• --cmd CMD

Unix-Command to be run on the selected logs. Use single quotes to escape

spaces etc. Language used to specify CMDSTR has following rules.

• A logfile and its corresponding result file can be referred by keywords

SRCFILE & DSTFILE . eg. cp SRCFILE DSTFILE

• Without any reference to DSTFILE in CMDSTR, > DSTFILE will be

appended to CMDSTR for output redirection. eg du -sch SRCFILE

gets auto- transtalted to du -sch SRCFILE > DSTFILE

ThoughtSpot Users Guide Page 324


tscli command reference December 13, 2019

• Without any reference to SRCFILE, content of log is streamed to

CMDSTR via pipe. eg. tail -n100 | grep ERROR gets auto-

transtalted to cat SRCFILE | tail -n100 | grep ERROR >

DSTFILE (default: None)

• --include INCLUDE

Comma separated list of logs to include,each entry is either a “selector” or a glob

for matching files.Selectors must be among: all , orion , system , ts .

Anything starting with / is assumed to be a glob pattern and interpreted via

find(1) . Other entries are ignored. TIP: put single quotes around the param

value to prevent undesired glob expansion (default: all)

• --exclude EXCLUDE

Comma separated list of logs to exclude. Applies to the list selected by --

include . Params are interpreted just like in --include (default: None)

• --since SINCE

Grab logs from this time window in the past. Should be a human readable duration

string, e.g. 4h (4 hours), 30m (30 minutes), 1d (1 day). (default: None)

• --from FROM Timestamp where collection begins, must be of the form:

yyyymmdd-HH:MM (default: None)

• --to TO Timestamp where collection ends, must be of the form: yyyymmdd-

HH:MM (default: None)

• --outfile OUTFILE File path for printing all the results. By default printed to

stdout (default: None)

• --outdir OUTDIR Directory path for dumping results with original dir structure

from each node. Used as an alternative to printing output to outfile/stdout (default:

None)

ThoughtSpot Users Guide Page 325


tscli command reference December 13, 2019

• --cmd_infmt CMD_INFMT Specify if the inputfile should be compressed/

uncompressed before running CMD . C =compressed, U =uncompressed. Don’t

use this flag if CMD works on both (default: None)

• --cmd_outfmt CMD_OUTFMT Specify if OUTFILE generated by CMD will be

compressed/uncompressed. C =compressed, U =uncompressed. Don’t use this

flag if output file will be of same format as input file (default: None)

• --nodes NODES Comma separated list of nodes where to run command. Skip

this to use all nodes. (default: None)

map-tiles

tscli map-tiles [-h] {disable,enable}

This subcommand supports the following actions:

• tscli map-tiles enable [-h] [--online] [--offline] [--tar TAR] [--md5 MD5]

Enables ThoughtSpot’s map tiles, which are used when constructing geomap charts. If you

don’t have Internet access, you must download the map tiles tar and md5 files. Then you

must append the following to the tscli command.

• --online Download maptiles tar from internet. (default: True)

• --offline Using maptiles tar from local disk. (default: False)

• --tar TAR Specified tar file for map-tiles. (default: )

• --md5 MD5 Specified md5 file for map-tiles. (default: )

• tscli map-tiles disable Disable map-tiles functionality.

monitoring

tscli monitoring [-h] {set-config,show-config}

ThoughtSpot Users Guide Page 326


tscli command reference December 13, 2019

This subcommand has the following actions:

• tscli monitoring set-config [-h] [--email EMAIL] [--clear_email] [--

heartbeat_interval HEARTBEAT_INTERVAL] [--heartbeat_disable] [--

report_interval REPORT_INTERVAL] [--report_disable] Sets the monitoring

configuration.

• --email EMAIL Comma separated list (no spaces) of email addresses where the

cluster will send monitoring information.

• --clear_email Disable emails by clearing email configuration. (default: False)

• --heartbeat_interval HEARTBEAT_INTERVAL Heartbeat email generation

interval in seconds. Should be greater than 0.

• --heartbeat_disable Disable heartbeat email generation. (default: False)

• --report_interval REPORT_INTERVAL Cluster report email generation interval

in seconds. Should be greater than 0.

• --report_disable Disable cluster report email generation. (default: False)

• tscli monitoring show-config Shows the monitoring configuration.

nas

tscli nas [-h] {ls,mount-cifs,mount-nfs,unmount}

This subcommand has the following actions:

• tscli nas ls [-h] List mounts managed by NAS mounter service.

• tscli nas mount-cifs [-h] --server SERVER [--path_on_server

PATH_ON_SERVER ] --mount_point MOUNT_POINT --username USERNAME --

password PASSWORD [--uid UID ] [--gid GID ] [--options OPTIONS ]

Mounts a CIFS device on all nodes.

• --server SERVER IP address or DNS name of CIFS service. For example,

10.20.30.40 (default: None)

ThoughtSpot Users Guide Page 327


tscli command reference December 13, 2019

• --path_on_server PATH_ON_SERVER Filesystem path on the CIFS server to

mount (source). For example: /a (default: / )

• --mount_point MOUNT_POINT

Directory on all cluster nodes where the NFS filesystem should be mounted

(target). This directory does not need to already exist. If this directory already

exists, a new directory is not created and the existing directory is used for

mounting. For example: /mnt/external (default: None)

• --username USERNAME Username to connect to the CIFS filesystem as (default:

None)

• --password PASSWORD CIFS password for --username (default: None)

• --uid UID

UID that will own all files or directories on the mounted filesystem when the server

does not provide ownership information. See man mount.cifs for more details.

(default: 1001 )

• --gid GID

Gid that will own all files or directories on the mounted filesystem when the server

does not provide ownership information. See man mount.cifs for more details.

(default: 1001 )

• --options OPTIONS Other command-line options to forward to mount.cifs

command (default: noexec )

• tscli nas mount-nfs [-h] --server SERVER [--protocol PROTO --path_on_server

PATH_ON_SERVER] --mount_point MOUNT_POINT [--options OPTIONS]

Mounts a NFS device on all nodes. Parameters are:

• --server SERVER IP address or DNS name of NFS service. For example,

10.20.30.40 (default: None)

• --path_on_server PATH_ON_SERVER Filesystem path on the NFS server to

mount (source). For example: /a/b/c/d (default: / )

ThoughtSpot Users Guide Page 328


tscli command reference December 13, 2019

• --mount_point MOUNT_POINT

Directory on all cluster nodes where the NFS filesystem should be mounted

(target). This directory does not need to already exist. If this directory already

exists, a new directory is not created and the existing directory is used for

mounting. For example: /mnt/external (default: None)

• --options OPTIONS Command-line options to forward to mount command

(default: noexec ).

• --protocol PROTO One of nfs or nfs4 . The default is nfs .

• tscli nas unmount [-h] --dir DIR

Unmounts all devices from the specified DIR (directory) location. This command returns an

error if nothing is currently mounted on this directory via tscli nas mount (default: None)

node

tscli node [-h] {check,ls,reinstall-os,resume-reinstall-os,stat


us} ...

This subcommand has the following actions:

• tscli node check [-h] [--select {reinstall-preflight}] [--secondary

SECONDARY ]

Run checks per node. Takes the following parameters:

• --select {reinstall-preflight} Select the type of node check (default:

reinstall-preflight )

• --secondary SECONDARY Secondary drive for reinstall-preflight (default:

sdd )

• tscli node ls [-h] [--type {all,healthy,not-healthy}] Filter by node state

(default: all )

ThoughtSpot Users Guide Page 329


tscli command reference December 13, 2019

• tscli node reinstall-os [-h] [--secondary SECONDARY ] [--cluster] Reinstall

OS on a node. This takes the following parameters:

• --secondary SECONDARY Secondary drive to be used to carry to reinstall

(default: sdd )

• --cluster Is the node part of a cluster (default: False )

• tscli node resume-reinstall-os Resume in-progress reinstall

rpackage

tscli rpackage [-h] {add,delete,list} ...

Manages R packages available to SpotIQ.

• tscli rpackage add [-h] [--repo REPO ] [--timeout TIMEOUT ] [--dest_dir

DEST_DIR ] [--nodes NODES ] package_name Command to add an R package_name

to the cluster. This command has the following options:

• --repo REPO Specify the url of a specific repo to download packages

• --timeout REPO Timeout waiting for the R Package to be installed (default: 60)

• --dest_dir REPO Directory where output of this command will be placed

(default: None)

• --nodes NODES Space separated IPs of nodes where you want to run the

command. (default: all).

• tscli rpackage add [-h] [--timeout TIMEOUT ] [--dest_dir DEST_DIR ] [--

nodes NODES ] package_name Command to delete an installed R package from the

cluster. This command has the following options:

• --timeout REPO Timeout waiting for the R Package to be removed (default: 60)

• --dest_dir REPO Directory where output of this command will be placed

(default: None)

• --nodes NODES Space separated IPs of nodes where you want to run the

command. (default: all).

ThoughtSpot Users Guide Page 330


tscli command reference December 13, 2019

• tscli rpackage list [-h] [--detailed] List all R packages installed on the cluster.

saml

tscli saml [-h] {configure,purge-configuration}

This subcommand has the following actions:

• tscli saml configure [-h] Configures SAML. To see a list of prerequisites refer to

Configure SAML.

• tscli saml purge-configuration Purges any existing SAML configuration.

scheduled-pinboards

tscli scheduled-pinboards [-h] {disable,enable}

This subcommand has the following actions:

• tscli scheduled-pinboards disable [-h] Disable scheduled pinboards for this cluster.

• tscli scheduled-pinboards enable [-h] Enables scheduled pinboards, which is

disabled in prod clusters by default.

 Note: When you enable scheduled pinboards, you should also configure a whitelist of intended

email domains. Contact ThoughtSpot Support for help configuring a whitelist.

smtp

tscli smtp [-h] {reset-canonical-mapping,set-canonical-mappin


g,set-mailfromname,set-mailname,set-relayhost,show-canonical-ma
pping,show-mailfromname,show-mailname,show-relayhost}

This subcommand takes supports the following actions:

• tscli smtp reset-canonical-mapping Deletes the current postmap mapping.

ThoughtSpot Users Guide Page 331


tscli command reference December 13, 2019

• tscli smtp set-canonical-mapping [-h] new_key new_value Sets a new Postmap

mapping.

• tscli smtp set-mailfromname mailfromname Sets the name, an email address, from

which email alerts are sent, for the cluster.

• tscli smtp set-mailname mailname Sets the mailname, a domain, where email alerts

are sent, for the cluster.

• tscli smtp set-relayhost [-h] [--force FORCE] relayhost Sets the Relay Host for

SMTP (email) sent from the cluster.

• --force FORCE Set even if relay host is not accessible. (default: False )

• tscli smtp show-canonical-mapping Shows the current postmap mapping.

• tscli smtp show-mailfromname Shows the mailname, from which email alerts are sent, for

the cluster.

• tscli smtp show-mailname Shows the mailname, where email alerts are sent, for the

cluster.

• tscli smtp show-relayhost Shows the for SMTP (email) sent from the cluster. If there is

no Relay Host configured, the command returns NOT FOUND .

snapshot

tscli snapshot [-h] {backup,create,delete,ls,restore,update-tt


l}

Learn more about snapshots and backups see the Understand the backup strategies documentation.

This subcommand supports the following actions:

• tscli snapshot backup [-h] [--mode {full,light,dataless}] [--type

{full,incremental}] [--base BASE ] [--storage_type {local,nas}] [--remote]

name out

Pull snapshot out as a backup. This takes the following parameters:

• --mode {full,light,dataless} Mode of backups. (default: full )

• name Name of snapshot to pull out as a backup. To list all snapshots, run tscli

snapshot ls .

ThoughtSpot Users Guide Page 332


tscli command reference December 13, 2019

• out Directory where backup will be written, must not already exist.

• --type {full,incremental} Type of backup.(Incremental backup is not

implemented yet) (default: full )

• --base BASE Based snapshot name for incremental backup. (Not Implemented

yet) (default: None)

• --storage_type {local,nas} Storage type of output directory. (default:

local )

• --remote Take backup through Orion master. (default: True )

• tscli snapshot create [-h] name reason ttl

Creates a new snapshot with the name and reason provided. This command does not

accept . (periods), but does accept - (dashes). The ttl parameters is the number of

days after which this snapshot will be automatically deleted. A value of -1 disables

automatic deletion.

• tscli snapshot delete [-h] name Deletes the named snapshot.

• tscli snapshot ls [-h] List available snapshots.

• tscli snapshot restore [-h] [--allow_release_change] [--only_service_state]

name Restore cluster to an existing snapshot. This takes the following parameters:

• --allow_release_change Allow restoration to a snapshot at a different release.

(default: False )

• --only_service_state Restore only service state. (default: False )

• tscli snapshot update-ttl [-h] [--disable DISABLE ] name ttl

Updates manual snapshot garbage collection policy.

• name Specifies which snapshot to update.

• ttl Extends the manual snapshot ttl (time-to-live) value. Use a positive value

to increase ttl . Use negative value to decrease it.

• --disable DISABLE Disable manual snapshot garbage collection. Setting this

value to True will override any ttl value. (default: False)

ThoughtSpot Users Guide Page 333


tscli command reference December 13, 2019

snapshot-policy

tscli snapshot-policy [-h] {disable,enable,show,update}

This subcommand supports the following actions:

• tscli snapshot-policy disable [-h] Disable snapshot policy.

• tscli snapshot-policy enable -h Enable specified snapshot policy.

• tscli snapshot-policy show [-h] Show snapshot policy.

• tscli snapshot-policy update [-h] [--config CONFIG ] Update periodic snapshot

config. This takes the following parameter:

• --config CONFIG Text format of periodic backup policy config (default: None)

spot

tscli spot [-h] {enable}

Enables Spot integration. This subcommand supports the following actions:

tscli spot enable [-h] --token TOKEN --thoughtspot_url THOUGHTSPOT_URL [--

cache_timeout CACHE_TIMEOUT ]

• --token TOKEN Slack authroization token for Spot bot. This is required. You receive this

token when your Slack administrator adds the Spot application.

• --thoughtspot_url THOUGHTSPOT_URL URL for the ThoughtSpot application. This is

required.

• --cache_timeout CACHE_TIMEOUT Internal cache timeout (default: 60000 )

ThoughtSpot Users Guide Page 334


tscli command reference December 13, 2019

ssl

tscli ssl [-h] {add-cert,clear-min-tls-version,off,on,rm-cert,s


et-min-tls-version,status,tls-status}

This subcommand supports the following actions:

• tscli ssl add-cert [-h] key certificate Adds an SSL certificate, key pair.

• tscli ssl clear-min-tls-version [-h] Clears any customizations for the minimum TLS

version to support.

• tscli ssl off

Disables SSL. Disabling SSL will stop users from seeing a security warning when accessing

ThoughtSpot from a browser if there is no SSL certificate installed.

• tscli ssl on [-h] If SSL is enabled and there is no certificate, users will see a security

warning when accessing ThoughtSpot from a browser.

• tscli ssl rm-cert Removes the existing SSL certificate, if any.

• tscli ssl set-min-tls-version [-h] {1.0,1.1,1.2} Sets the minimum supported TLS

version. Sets the minimum SSL version to be supported by the ThoughtSpot application.

Please ensure that client browsers are enabled for this version or newer.

• tscli ssl status Shows whether SSL authentication is enabled or disabled.

• tscli ssl tls-status [-h] Prints the status of TLS support.

storage

tscli storage [-h] gc df

This subcommand supports the following actions:

• tscli storage gc [-h] [--log_age LOG_AGE ] [--force] [--localhost_only]

ThoughtSpot Users Guide Page 335


tscli command reference December 13, 2019

Garbage collect unused storage. Before issuing this command, you must stop the cluster

using tscli cluster stop . After garbage collection has completed, you can restart the

cluster with tscli cluster start . The command frees space in these directories:

• /tmp

• /usr/local/scaligent/logs/

• /export/logs/orion

• /export/logs/oreo

• /export/logs/hadoop

• /export/logs/zookeeper

• cores

Accepts these optional flags:

• --log_age LOG_AGE

Delete logs older than these many hours. Use a non-zero value ideally. A zero value

will cause all temporary files to be deleted, including say those which are just

temporarily closed while they are being passed from one component to the next.

(default: 4 )

• --force Forces deletion of all logs and temporary files regardless of age. This

must only be run on a stopped cluster. (default: False)

• --localhost_only If used, only the logs on the localhost will be removed. If not

specified, the command acts on the entire cluster.

• tscli storage df [--mode disk|hdfs]

Checks the disk usage on the relevant mounts. Returns output similar to the Linux system

command df -h <directory> .

ThoughtSpot Users Guide Page 336


tscli command reference December 13, 2019

support

tscli support [-h]


{restart-remote,rm-admin-email, rm-admin-phone, rm-feedback-ema
il, set-admin-email, set-admin-phone, set-feedback-email, set-r
emote, show-admin-email, show-admin-phone, show-feedback-emai
l, show-remote, start-remote, stop-remote}

This subcommand supports the following actions:

• tscli support bundle [-h] [--include INCLUDE] [--exclude EXCLUDE] [--

list_selectors] [--since SINCE] [--from FROM] [--to TO] [--out OUT] [--nodes

NODES]

• --include INCLUDE Comma separated list of selectors to include, each entry is

either a “selector” or a glob for matching files. To see the list of valid selectors, run

this command with --list_selectors . You may also specify: “ all to get all

selectors and logs, and “basic” to get only the basic selectors. Selectors may also

be selectors meant for logs collect: all, orion, system, ts, or the name of a service.

Anything starting with / is assumed to be a glob pattern and interpreted via find(1).

Other entries are ignored. TIP: put single quotes around the param value to prevent

undesired glob expansion. Use “all” to collect all selectors and all logs (default:

all_but_logs)

• --exclude EXCLUDE Comma separated list of selectors to exclude. Applies to

the list selected by --include . Params are interpreted just like in --include .

Use the special keyword “logs” to exclude logs collection all together. (default:

None)

• --list_selectors List the selectors available for --include and --exclude ,

and then exit. (default: False )

ThoughtSpot Users Guide Page 337


tscli command reference December 13, 2019

• --since SINCE Grab logs from this time window in the past. Should be a

human readable duration string, e.g. 4h (4 hours), 30m (30 minutes), 1d (1 day).

(default: None)

• --from FROM Timestamp where collection begins, must be of the form:

yyyymmdd-HH:MM (default: None)

• --to TO Timestamp where collection ends, must be of the form: yyyymmdd-

HH:MM (default: None)

• --out OUT Tarball path for dumping the support bundle (default: /tmp/

support_bundle.tar.gz )

• --nodes NODES Comma separated list of nodes from where to collect logs. Skip

this to use all nodes. (default: None)

• tscli support restart-remote Restarts remote support.

• tscli support rm-admin-email Removes the email address for contacting the customer

administrator. Replaces it with the default ThoughtSpot Support email address.

• tscli support rm-feedback-email Removes the email address for product feedback.

Replaces it with the default ThoughtSpot Support email address.

• tscli support rm-admin-phone Removes the phone number for contacting the customer

administrator. Replaces it with the default ThoughtSpot Support phone number.

• tscli support rm-feedback-email Removes the email for sending feedback out of the

system. If you would like to set a blank email address, issue the command tscli support

set-feedback-email ' ' .

• tscli support set-admin-email email Sets the email address for contacting the

customer administrator. If you would like to display a blank email address, issue the

command tscli support set-admin-email ' ' .

• tscli support set-feedback-email email Sets the email address for sending

feedback. If you would like to display a blank email address, issue the command tscli

support set-feedback-email ' ' .

• tscli support set-admin-phone phone_number Sets the phone number for contacting

the customer administrator. Specify a phone number using any value (e.g. +1 800-508-7008

Ext. 1 ). If you would like to display a blank phone number, issue the command tscli

support set-admin-phone .

ThoughtSpot Users Guide Page 338


tscli command reference December 13, 2019

• tscli support set-remote [-h] [--addr ADDR ] [--user USER ] Configures the

cluster for remote support through SSH tunneling, where ADDR is the address of support,

e.g. t unnel.thoughtspot.com , and USER is the support username.

• tscli support show-admin-email Shows the email address for customer administrator, if

set.

• tscli support show-feedback-email Shows the email address for product feedback, if

set.

• tscli support show-admin-phone Shows the phone number for customer administrator, if

set.

• tscli support show-remote Shows the status and configuration of remote support.

• tscli support start-remote Starts remote support.

• tscli support stop-remote Stops remote support.

tokenauthentication

tscli cli tokenauthentication [-h] {disable,enable}

• tscli cli tokenauthentication enable Generates a token.

• tscli cli tokenauthentication disable Purges token login configuration.

ThoughtSpot Users Guide Page 339


Date and time formats reference December 13, 2019

Date and time formats reference


This is a references for the date and time contexts and formats you can use with ThoughtSpot. You

define data formats in specific contexts and, depending on the context, your choices in data formatting

differ. You must understand date and time when you load data in these contexts:

• using data upload from the browser

• through tsload command

• through data connect or another extract, transform, load (ETL) tool

Data loading formats do not change how data is displayed in tables and charts.

The context where you can control date and time formats is data modeling. Data modeling controls how

data is displayed in search and their resulting answers.

Data loading formats via tsload

When loading via the tsload command you must specify date and timestamp formats using the

format specifications defined in thestrptime library function. Data is imported based on the timezone of

the node from which tsload is run.

For date data types, the default format is %Y%m%d which translates to yearmonthday For example,

Dec 30th, 2001 is represented as 20011230 . For time and datetime data types, the default is

%Y%m%d %H:%M:%S which translates to yearmonthday hour:minute:second , for example, Dec

30th, 2001 1:15:12 is represented as 20011230 01:15:12 .

Data modeling formats for browser data upload

These date and time formats are supported in a CSV file when uploading via the browser. You cannot

specify the date format; ThoughtSpot will pick the format that fits your data best:

• 1/30/2014

• 2014-01-30

• 2014-1-30

• 30-Jan-2014

• 2014-Jan-30

ThoughtSpot Users Guide Page 340


Date and time formats reference December 13, 2019

• 2014-01-30 10:32 AM

• 2014-01-30 14:52

• 2014-01-30 10:32:22

• 2014-01-30 10:32:22 AM

• 2014-01-30 10:32:22.0

• 2014-01-30 10:32:22.0 AM

• 2014-01-30 10:32:22.000

• 2014-01-30 10:32:22.000 AM

• 1/30/2014

• 30-Jan-14

• 01-Mar-02 (assumes 2002)

• 30/1/2014 10:32 AM

• 30/1/2014 14:52

• 30/1/2014 10:32:22

• 30/1/2014 10:32:22 AM

• 30/1/2014 10:32:22.0

• 30/1/2014 10:32:22.0 AM

• 30/1/2014 10:32:22.000

• 30/1/2014 10:32:22.000 AM

• 30-Jan-14 10:32 AM

• 30-Jan-14 14:52

• 30-Jan-14 10:32:22

• 30-Jan-14 10:32:22 AM

• 30-Jan-14 10:32:22.0

• 30-Jan-14 10:32:22.0 AM

• 30-Jan-14 10:32:22.000

• 30-Jan-14 10:32:22.000 AM

• Fri Jan 30 2014 3:26 PM

• Fri Jan 30 2014 13:46

• Fri Jan 30 2014 10:32:22

• Fri Jan 30 2014 10:32:22 AM

• Fri Jan 30 2014 10:32:22.0

• Fri Jan 30 2014 10:32:22.0 AM

• Fri Jan 30 2014 10:32:22.000

• Fri Jan 30 2014 10:32:22.000 AM

• 14:52

ThoughtSpot Users Guide Page 341


Date and time formats reference December 13, 2019

• 10:32 AM

• 10:32:22

• 10:32:22 AM

• 10:32:22.0

• 10:32:22.000

• 10:32:22.0 AM

• 10:32:22.000 AM

Data loading formats via data connect or another ETL


tool

Data that is loaded via ETL arrives through ODBC or JDBC connection. After you extract the data from

the source and before you load it into ThoughtSpot, you must transform any date or timestamp into a

valid format for ThoughtSpot. Once transformed, no explicit data masking is required. See the data

integration guide for more details of loading data via ODBC and JDBC.

Data modeling formats

A user with administrative rights can configure data modeling for data on one or all files. You can set

number, date, and currency display formats. These formats define how these value types display in

tables and charts. See the Admin Guide for more information about data modeling settings. The

following format strings are available for use:

Format mask Description

YYYY or yyyy four digit year such as 2017

YY or yy last two digits of year such as 17

M month with no leading zero 1 - 12

MM Two digit month 01 - 12

MMM Three letter month such as Jan

D Day of year without a leading zero 0 - 365

DD Day of year with up to one leading zero 01 - 365

DDD Day of year with up to two leading zeroes 001 - 365

ThoughtSpot Users Guide Page 342


Date and time formats reference December 13, 2019

Format mask Description

d Day of month with no leading zero 1 - 31

dd Two digit day of month 01 - 31

HH Two digit 24 hour representation of hour 00 - 23

hh Two digit 12 hour representation of hour 01 - 12

H 24 hour representation of hour with no leading zero 0 - 23

h 12 hour representation of hour with no leading zero 1 - 12

mm Minutes 00 - 59

m Minutes with no leading zero 0 - 59

ss Seconds 00 - 59

s Seconds with no leading zero 0 - 59

a AM/PM indicator

Valid delimiters include most non-alphabet characters. This includes but is not limited to:

• \ (forward slash)

• / (backward slash)

• | (pipe symbol)

• : (colon)

• - (dash)

• _ (underscore)

• = (equal sign)

Examples of valid format masks you can produce for display are as follows:

• MM/dd/yyyy

• MMM

• DD/MM/yyyy

• MM/dd/yyyy HH:mm

• DD/MM/yyyy HH:mm

ThoughtSpot Users Guide Page 343


Row level security rules reference December 13, 2019

Row level security rules reference


ThoughtSpot allows you to create row level security rules using expressions. If an expression evaluates

to “true” for a particular row and group combination, that group will be able to see that row. This

reference lists the various operators and functions you can use to create rules.

For information on how to use the row level security functions and operators, see About Rule-Based

Row Level Security. There is a special variable called ts_groups, which you can use when creating row

level security rules. It fetches a list of the groups that the currently logged in user belongs to. For each

row, f the expression in the rule evaluates to ‘true’ for any one of these groups, that row will be shown to

the user.

You can also see this list of operators and examples from within the Rule Builder by selecting Rule

Assistant.

Conversion functions

These functions can be used to convert data from one data type to another. Conversion to or from date

data types is not supported.

Function Description Examples

to_bool Returns the input as a boolean (true or false). to_bool (0) = false
to_bool (married)

to_date Accepts a date represented as an integer or text to_date (date_sold, '%Y-


string, and a second string parameter that can %m-%d')
include strptime date formatting elements. Re-
places all the valid strptime date formatting ele-
ments with their string counterparts and returns
the result. Does not accept epoch formatted
dates as input.

to_double Returns the input as a double. to_double ('3.14') = 3.14


to_double (revenue * .01)

to_integer Returns the input as an integer. to_integer ('45') + 1 =


46
to_integer (price + tax -
cost)

ThoughtSpot Users Guide Page 344


Row level security rules reference December 13, 2019

Function Description Examples

to_string Returns the input as a text string. to_string (45 + 1) = '46'


to_string (revenue -
cost)

Date functions

Function Description Examples

add_days Returns the result of add_days (01/30/2015, 5) = 02/04/


adding the specified 2015
number of days to add_days (invoiced, 30)
the given date.

date Returns the date date (home visit)


portion of a given
date.

day Returns the number day (01/15/2014) = 15


(1-31) of the day for day (date ordered)
the given date.

day_number_of_week Returns the number day_number_of_week (01/30/2015) = 6


(1-7) of the day in a day_number_of_week (shipped)
week for the given
date with 1 being
Monday and 7 being
Sunday.

day_number_of_quarter Returns the number day_number_of_quarter (01/30/2015)


of the day in a quar-
ter for a given date.

day_number_of_week Returns the number day_number_of_week(01/15/2014) > 3


of the day in a week
for a given date.

day_number_of_year Returns the number day_number_of_year (01/30/2015) =


(1-366) of the day in 30
a year for the given day_number_of_year (invoiced)
date.

day_of_week Returns the day of day_of week (01/30/2015) = Friday


the week for the giv- day_of_week (serviced)
en date.

ThoughtSpot Users Guide Page 345


Row level security rules reference December 13, 2019

Function Description Examples

diff_days Subtracts the sec- diff_days (01/15/2014, 01/17/2014)


ond date from the = -2
first date and returns diff_days (purchased, shipped)
the result in number
of days, rounded
down if not exact.

diff_time Subtracts the sec- diff_time (01/01/2014, 01/01/2014)


ond date from the = -86,400
first date and returns diff_time (clicked, submitted)
the result in number
of seconds.

hour_of_day Returns the hour of hour_of_day (received)


the day for the given
date.

is_weekend Returns true if the is_weekend (01/31/2015) = true


given date falls on a is_weekend (emailed)
Saturday or Sunday.

month Returns the month month (01/15/2014) = January


from the given date. month (date ordered)

month_number Returns the number month_number (09/20/2014) = 9


(1-12) of the month month_number (purchased)
for the given date.

month_number_of_quarter Returns the month month_number_of_quarter (02/20/


(1-12) number for 2018) > 9
the given date in a
quarter.

now Returns the current now ()


timestamp.

start_of_month Returns MMM yyyy start_of_month ( 01/31/2015 ) = Jan


for the first day of FY 2015
the month. Your in- start_of_month (shipped)
stallation configura-
tion can override
this setting so that it
returns a different
format such as MM/
dd/yyyy . Speak
with your
ThoughtSpot admin-
istrator for informa-
tion on doing this.

ThoughtSpot Users Guide Page 346


Row level security rules reference December 13, 2019

Function Description Examples

start_of_quarter Returns the date for start_of_quarter ( 09/18/2015 ) =


the first day of the Q3 FY 2015
quarter for the given start_of_quarter (sold)
date.

start_of_week Returns the date for start_of_week ( 06/01/2015 ) = 05/


the first day of the 30/2015 Week
week for the given start_of_week (emailed)
date.

start_of_year Returns the date for start_of_year ( 02/15/2015 ) = FY


the first day of the 2015
year for the given start_of_year (joined)
date.

time Returns the time time (3/1/2002 10:32) = 10:32


portion of a given time (call began)
date.

week_number_of_month Returns the week week_number_of_month(03/23/2017) =


number for the given 3
date in a month.

week_number_of_quarter Returns the week week_number_of_quarter(04/03/2017)>


number for the given 2
date in a quarter.

week_number_of_year Returns the week week_number_of_year(04/03/2017) =


number for the given 20
date in a year.

year Returns the year year (01/15/2014) = 2014


from the given date. year (date ordered)

Mixed functions

These functions can be used with text and numeric data types.

Function Description Examples

!= Returns true if the first value is not 3 != 2 = true


equal to the second value. revenue != 1000000

< Returns true if the first value is less 3 < 2 = false


than the second value. revenue < 1000000

ThoughtSpot Users Guide Page 347


Row level security rules reference December 13, 2019

Function Description Examples

<= Returns true if the first value is less 1 <= 2 = true


than or equal to the second value. revenue <= 1000000

= Returns true if the first value is equal to 2 = 2 = true


the second value. revenue = 1000000

> Returns true if the first value is greater 3 > 2 = true


than the second value. revenue > 1000000

>= Returns true if the first value is greater 3 >= 2 = true


than or equal to the second value. revenue >= 1000000

greatest Returns the larger of the values. greatest (20, 10) = 20


greatest (q1 revenue, q2 revenue)

least Returns the smaller of the values. least (20, 10) = 10


least (q1 revenue, q2 revenue)

Number functions

Function Description Examples

* Returns the result of multiplying 3 * 2 = 6


both numbers. price * taxrate

+ Returns the result of adding both 1 + 2 = 3


numbers. price + shipping

- Returns the result of subtracting 3 - 2 = 1


the second number from the first. revenue - tax

/ Returns the result of dividing the 6 / 3 = 2


first number by the second. markup / retail price

^ Returns the first number raised to 3 ^ 2 = 9


the power of the second. width ^ 2

abs Returns the absolute value. abs (-10) = 10


abs (profit)

acos Returns the inverse cosine in de- acos (0.5) = 60


grees. acos (cos-satellite-angle)

asin Returns the inverse sine (speci- asin (0.5) = 30


fied in degrees). asin (sin-satellite-angle)

ThoughtSpot Users Guide Page 348


Row level security rules reference December 13, 2019

Function Description Examples

atan Returns the inverse tangent in atan (1) = 45


degrees. atan (tan-satellite-angle)

atan2 Returns the inverse tangent in atan2 (10, 10) = 45


degrees. atan2 (longitude, latitude)

cbrt Returns the cube root of a num- cbrt (27) = 3


ber. cbrt (volume)

ceil Returns the smallest following in- ceil (5.9) = 6


teger. ceil (growth rate)

cos Returns the cosine of an angle cos (63) = 0.45


(specified in degrees). cos (beam angle)

cube Returns the cube of a number. cube (3) = 27


cube (length)

exp Returns Euler’s number (~2.718) exp (2) = 7.38905609893


raised to a power. exp (growth)

exp2 Returns 2 raised to a power. exp2 (3) = 8


exp2 (growth)

floor Returns the largest previous inte- floor (5.1) = 5


ger. floor (growth rate)

ln Returns the natural logarithm. ln (7.38905609893) = 2


ln (distance)

log10 Returns the logarithm with base log10 (100) = 2


10. log10 (volume)

log2 Returns the logarithm with base 2 log2 (32) = 5


(binary logarithm). log2 (volume)

mod Returns the remainder of first mod (8, 3) = 2


number divided by the second mod ( revenue , quantity )
number.

pow Returns the first number raised to pow (5, 2) = 25


the power of the second number. pow (width, 2)

random Returns a random number be- random ( ) = .457718


tween 0 and 1. random ( )

round Returns the first number rounded round (35.65, 10) = 40


to the second number (the de- round (battingavg, 100)
fault is 1).

ThoughtSpot Users Guide Page 349


Row level security rules reference December 13, 2019

Function Description Examples

safe_divide Returns the result of dividing the safe_divide (12, 0) = 0


first number by the second. If the safe_divide (total_cost,
second number is 0, returns 0 in- units)
stead of NaN (not a number).

sign Returns +1 if the number is sign (-250) = -1


greater than zero, -1 if less than sign (growth rate)
zero, 0 if zero.

sin Returns the sine of an angle sin (35) = 0.57


(specified in degrees). sin (beam angle)

spherical_distance Returns the distance in km be- spherical_distance


tween two points on Earth. (37.465191, -122.153617,
37.421962, -122.142174) =
4,961.96
spherical_distance (start_lat-
itude, start_longitude,
start_latitude, start_longi-
tude)

sq Returns the square of a numeric sq (9) = 81


value. sq (width)

sqrt Returns the square root. sqrt (9) = 3


sqrt (area)

tan Returns the tangent of an angle tan (35) = 0.7


(specified in degrees). tan (beam angle)

Operators

Operator Description Examples

and Returns true when both conditions (1 = 1) and (3 > 2) = true


are true, otherwise returns false. lastname = 'smith' and state
='texas'

 Note: Not available for row level


security (RLS) formulas.

ThoughtSpot Users Guide Page 350


Row level security rules reference December 13, 2019

Operator Description Examples

if…then…else Conditional operator. if (3 > 2) then 'bigger' else


'not bigger'
if (cost > 500) then 'flag' else
'approve'

ifnull Returns the first value if it is not null, ifnull (cost, 'unknown')
otherwise returns the second.

isnull Returns true if the value is null. isnull (phone)

not Returns true if the condition is false, not (3 > 2) = false


otherwise returns false. not (state = 'texas')

or Returns true when either condition is (1 = 5) or (3 > 2) = true


true, otherwise returns false. state = 'california' or state
='oregon'

Text functions

Function Description Examples

concat Returns the one or more values concat ( 'hay' , 'stack' )


as a concatenated text string. = 'haystack'
Be sure to use single quotes concat (last_name ,
instead of double quotes first_name )
around each of the strings.

contains Returns true if the first string contains ('broomstick',


contains the second string, 'room') = true
otherwise returns false. contains (product, 'trial
version')

edit_distance Accepts two text strings. Re- edit_distance ('attorney',


turns the edit distance (mini- 'atty') = 4
mum number of operations re- edit_distance (color,
quired to transform one string 'red')
into the other) as an integer.
Works with strings under 1023
characters.

ThoughtSpot Users Guide Page 351


Row level security rules reference December 13, 2019

Function Description Examples

edit_distance_with_cap Accepts two text strings and edit_distance_with_cap


an integer to specify the upper ('pokemon go', 'minecraft
limit cap for the edit distance pixelmon', 3) = 4
(minimum number of opera- edit_distance_with_cap
tions required to transform one (event, 'burning man', 3)
string into the other). If the edit
distance is less than or equal
to the specified cap, returns
the edit distance. If it is higher
than the cap, returns the cap
plus 1. Works with strings un-
der 1023 characters.

similar_to Accepts a document text string similar_to ('hello world',


and a search text string. Re- 'hello swirl') = true
turns true if relevance score similar_to (current team,
(0-100) of the search string drafted by)
with respect to the document
is greater than or equal to 20.
Relevance is based on edit dis-
tance, number of words in the
query, and length of words in
the query which are present in
the document.

similarity Accepts a document text string similarity ('where is the


and a search text string. Re- burning man concert', 'burn-
turns the relevance score ing man') = 46
(0-100) of the search string similarity (tweet1, tweet2)
with respect to the document.
Relevance is based on edit dis-
tance, number of words in the
query, and length of words in
the query which are present in
the document. If the two
strings are an exact match, re-
turns 100.

spells_like Accepts two text strings. Re- spells_like ('thouhgtspot',


turns true if they are spelled 'thoughtspot') = true
similarly and false if they are spells_like (studio, dis-
not. Works with strings under tributor)
1023 characters.

strlen Returns the length of the text. strlen ('smith') = 5


strlen (lastname)

ThoughtSpot Users Guide Page 352


Row level security rules reference December 13, 2019

Function Description Examples

strpos Returns the numeric position strpos ('haystack_with_nee-


(starting from 0) of the first oc- dles', 'needle') = 14
currence of the second string strpos (complaint,
in the first string, or -1 if not 'lawyer')
found.

substr Returns the portion of the giv- substr ('persnickety', 3,


en string, beginning at the lo- 7) = snicket
cation specified (starting from substr (lastname, 0, 5)
0), and of the given length.

Variables

These variables can be used in your expressions.

Function Description Examples

ts_groups Returns a list of all the groups the current logged ts_groups = 'east'
in user belongs to. For any row, if the expression
evaluates to true for any of the groups, the user
can see that row.

ts_username Returns the user with the matching neame. ts_username != 'mark'

ThoughtSpot Users Guide Page 353


Formula function reference December 13, 2019

Formula function reference


ThoughtSpot allows you to create derived columns in worksheets using formulas. You create these

columns by building formulas using the Formula Assistant. An individual formula is constructed from n

combination of operators and functions.

This reference lists the various operators and functions you can use to create formulas.

Operators

Operator Description Examples

and Returns true when both conditions (1 = 1) and (3 > 2) = true


are true, otherwise returns false. lastname = 'smith' and state
='texas'

 Note: Not available for row level


security (RLS) formulas.

if…then…else Conditional operator. if (3 > 2) then 'bigger' else


'not bigger'
if (cost > 500) then 'flag' else
'approve'

ifnull Returns the first value if it is not null, ifnull (cost, 'unknown')
otherwise returns the second.

isnull Returns true if the value is null. isnull (phone)

not Returns true if the condition is false, not (3 > 2) = false


otherwise returns false. not (state = 'texas')

or Returns true when either condition is (1 = 5) or (3 > 2) = true


true, otherwise returns false. state = 'california' or state
='oregon'

Aggregate functions

These functions can be used to aggregate data.

ThoughtSpot Users Guide Page 354


Formula function reference December 13, 2019

Function Description Examples

average Returns the average of all the values of a average (revenue)


column.

average_if Returns the average of all the columns that average_if(city =


meet a given criteria. "San Francisco", rev-
enue)

count Returns the number of rows in the table count (product)


containing the column.

count_if Returns the number of rows in the table count_if(region


containing the column. =’west’, region)

cumulative_average Takes a measure and one or more attribut- cumulative_average


es. Returns the average of the measure, ac- (revenue, order date,
cumulated by the attribute(s) in the order state)
specified.

cumulative_max Takes a measure and one or more attribut- cumulative_max (rev-


es. Returns the maximum of the measure, enue, state)
accumulated by the attribute(s) in the order
specified.

cumulative_min Takes a measure and one or more attribut- cumulative_min (rev-


es. Returns the minimum of the measure, enue, campaign)
accumulated by the attribute(s) in the order
specified.

cumulative_sum Takes a measure and one or more attribut- cumulative_sum (rev-


es. Returns the sum of the measure, accu- enue, order date)
mulated by the attribute(s) in the order
specified.

group_average Takes a measure and one or more attribut- group_average (rev-


es. Returns the average of the measure enue, customer re-
grouped by the attribute(s). gion, state)

group_count Takes a measure and one or more attribut- group_count (revenue,


es. Returns the count of the measure customer region)
grouped by the attribute(s).

group_max Takes a measure and one or more attribut- group_max (revenue,


es. Returns the maximum of the measure customer region)
grouped by the attribute(s).

group_min Takes a measure and one or more attribut- group_min (revenue,


es. Returns the minimum of the measure customer region)
grouped by the attribute(s).

ThoughtSpot Users Guide Page 355


Formula function reference December 13, 2019

Function Description Examples

group_stddev Takes a measure and one or more attribut- group_stddev (rev-


es. Returns the standard deviation of the enue, customer region)
measure grouped by the attribute(s).

group_sum Takes a measure and one or more attribut- group_sum (revenue,


es. Returns the sum of the measure customer region)
grouped by the attribute(s).

group_unique_count Takes a measure and one or more attribut- group_unique_count


es. Returns the unique count of the mea- (product , supplier)
sure grouped by the attribute(s).

group_variance Takes a measure and one or more attribut- group_variance (rev-


es. Returns the variance of the measure enue, customer region)
grouped by the attribute(s).

max Returns the maximum value of a column. max (sales)

max_if Returns the maximum value among max_if( (revenue >


columns that meet a criteria. 10) , customer region
)

min Returns the minimum value of a column. min (revenue)

min_if Returns the minimum value among columns min_if( (revenue <
that meet a criteria. 10) , customer region
)

moving_average Takes a measure, two integers to define the moving_average (rev-


window to aggregate over, and one or more enue, 2, 1, customer
attributes. The window is (current - region)
Num1…Current + Num2) with both end
points being included in the window. For
example, “1,1” will have a window size of 3.
To define a window that begins before Cur-
rent, specify a negative number for Num2.
Returns the average of the measure over
the given window. The attributes are the or-
dering columns used to compute the mov-
ing average.

ThoughtSpot Users Guide Page 356


Formula function reference December 13, 2019

Function Description Examples

moving_max Takes a measure, two integers to define the moving_max (com-


window to aggregate over, and one or more plaints, 1, 2, store
attributes. The window is (current - name)
Num1…Current + Num2) with both end
points being included in the window. For
example, “1,1” will have a window size of 3.
To define a window that begins before Cur-
rent, specify a negative number for Num2.
Returns the maximum of the measure over
the given window. The attributes are the or-
dering columns used to compute the mov-
ing maximum.

moving_min Takes a measure, two integers to define the moving_min (defects,


window to aggregate over, and one or more 3, 1, product)
attributes. The window is (current -
Num1…Current + Num2) with both end
points being included in the window. For
example, “1,1” will have a window size of 3.
To define a window that begins before Cur-
rent, specify a negative number for Num2.
Returns the minimum of the measure over
the given window. The attributes are the or-
dering columns used to compute the mov-
ing minimum.

moving_sum Takes a measure, two integers to define the moving_sum (revenue,


window to aggregate over, and one or more 1, 1, order date)
attributes. The window is (current -
Num1…Current + Num2) with both end
points being included in the window. For
example, “1,1” will have a window size of 3.
To define a window that begins before Cur-
rent, specify a negative number for Num2.
Returns the sum of the measure over the
given window. The attributes are the order-
ing columns used to compute the moving
sum.

stddev Returns the standard deviation of all values stddev (revenue)


of a column.

stddev_if Returns a standard deviation values filtered stddev_if( (revenue >


to meet a specific criteria. 10) , (revenue/10.0) )

sum Returns the sum of all the values of a col- sum (revenue)
umn.

sum_if Returns sum values filtered by a specific sum_if(region=’west’,


criteria. revenue)

ThoughtSpot Users Guide Page 357


Formula function reference December 13, 2019

Function Description Examples

unique count Returns the number of unique values of a unique count (cus-
column. tomer)

unique_count_if Returns the number of unique values of a unique_count_if( (rev-


column provided it meets a criteria. enue > 10) , order
date )

variance Returns the variance of all the values of a variance (revenue)


column.

variance_if Returns the variance of all the values of a variance_if( (revenue


column provided it meets a criteria.. > 10) , (revenue/
10.0) )

Conversion functions

These functions can be used to convert data from one data type to another. Conversion to or from date

data types is not supported.

Function Description Examples

to_bool Returns the input as a boolean (true or false). to_bool (0) = false
to_bool (married)

to_date Accepts a date represented as an integer or text to_date (date_sold, '%Y-


string, and a second string parameter that can %m-%d')
include strptime date formatting elements. Re-
places all the valid strptime date formatting ele-
ments with their string counterparts and returns
the result. Does not accept epoch formatted
dates as input.

to_double Returns the input as a double. to_double ('3.14') = 3.14


to_double (revenue * .01)

to_integer Returns the input as an integer. to_integer ('45') + 1 =


46
to_integer (price + tax -
cost)

to_string Returns the input as a text string. to_string (45 + 1) = '46'


to_string (revenue -
cost)

ThoughtSpot Users Guide Page 358


Formula function reference December 13, 2019

Date functions

Function Description Examples

add_days Returns the result of add_days (01/30/2015, 5) = 02/04/


adding the specified 2015
number of days to add_days (invoiced, 30)
the given date.

date Returns the date date (home visit)


portion of a given
date.

day Returns the number day (01/15/2014) = 15


(1-31) of the day for day (date ordered)
the given date.

day_number_of_week Returns the number day_number_of_week (01/30/2015) = 6


(1-7) of the day in a day_number_of_week (shipped)
week for the given
date with 1 being
Monday and 7 being
Sunday.

day_number_of_quarter Returns the number day_number_of_quarter (01/30/2015)


of the day in a quar-
ter for a given date.

day_number_of_week Returns the number day_number_of_week(01/15/2014) > 3


of the day in a week
for a given date.

day_number_of_year Returns the number day_number_of_year (01/30/2015) =


(1-366) of the day in 30
a year for the given day_number_of_year (invoiced)
date.

day_of_week Returns the day of day_of week (01/30/2015) = Friday


the week for the giv- day_of_week (serviced)
en date.

diff_days Subtracts the sec- diff_days (01/15/2014, 01/17/2014)


ond date from the = -2
first date and returns diff_days (purchased, shipped)
the result in number
of days, rounded
down if not exact.

ThoughtSpot Users Guide Page 359


Formula function reference December 13, 2019

Function Description Examples

diff_time Subtracts the sec- diff_time (01/01/2014, 01/01/2014)


ond date from the = -86,400
first date and returns diff_time (clicked, submitted)
the result in number
of seconds.

hour_of_day Returns the hour of hour_of_day (received)


the day for the given
date.

is_weekend Returns true if the is_weekend (01/31/2015) = true


given date falls on a is_weekend (emailed)
Saturday or Sunday.

month Returns the month month (01/15/2014) = January


from the given date. month (date ordered)

month_number Returns the number month_number (09/20/2014) = 9


(1-12) of the month month_number (purchased)
for the given date.

month_number_of_quarter Returns the month month_number_of_quarter (02/20/


(1-12) number for 2018) > 9
the given date in a
quarter.

now Returns the current now ()


timestamp.

start_of_month Returns MMM yyyy start_of_month ( 01/31/2015 ) = Jan


for the first day of FY 2015
the month. Your in- start_of_month (shipped)
stallation configura-
tion can override
this setting so that it
returns a different
format such as MM/
dd/yyyy . Speak
with your
ThoughtSpot admin-
istrator for informa-
tion on doing this.

start_of_quarter Returns the date for start_of_quarter ( 09/18/2015 ) =


the first day of the Q3 FY 2015
quarter for the given start_of_quarter (sold)
date.

ThoughtSpot Users Guide Page 360


Formula function reference December 13, 2019

Function Description Examples

start_of_week Returns the date for start_of_week ( 06/01/2015 ) = 05/


the first day of the 30/2015 Week
week for the given start_of_week (emailed)
date.

start_of_year Returns the date for start_of_year ( 02/15/2015 ) = FY


the first day of the 2015
year for the given start_of_year (joined)
date.

time Returns the time time (3/1/2002 10:32) = 10:32


portion of a given time (call began)
date.

week_number_of_month Returns the week week_number_of_month(03/23/2017) =


number for the given 3
date in a month.

week_number_of_quarter Returns the week week_number_of_quarter(04/03/2017)>


number for the given 2
date in a quarter.

week_number_of_year Returns the week week_number_of_year(04/03/2017) =


number for the given 20
date in a year.

year Returns the year year (01/15/2014) = 2014


from the given date. year (date ordered)

Mixed functions

These functions can be used with text and numeric data types.

Function Description Examples

!= Returns true if the first value is not 3 != 2 = true


equal to the second value. revenue != 1000000

< Returns true if the first value is less 3 < 2 = false


than the second value. revenue < 1000000

<= Returns true if the first value is less 1 <= 2 = true


than or equal to the second value. revenue <= 1000000

= Returns true if the first value is equal to 2 = 2 = true


the second value. revenue = 1000000

ThoughtSpot Users Guide Page 361


Formula function reference December 13, 2019

Function Description Examples

> Returns true if the first value is greater 3 > 2 = true


than the second value. revenue > 1000000

>= Returns true if the first value is greater 3 >= 2 = true


than or equal to the second value. revenue >= 1000000

greatest Returns the larger of the values. greatest (20, 10) = 20


greatest (q1 revenue, q2 revenue)

least Returns the smaller of the values. least (20, 10) = 10


least (q1 revenue, q2 revenue)

Number functions

Function Description Examples

* Returns the result of multiplying 3 * 2 = 6


both numbers. price * taxrate

+ Returns the result of adding both 1 + 2 = 3


numbers. price + shipping

- Returns the result of subtracting 3 - 2 = 1


the second number from the first. revenue - tax

/ Returns the result of dividing the 6 / 3 = 2


first number by the second. markup / retail price

^ Returns the first number raised to 3 ^ 2 = 9


the power of the second. width ^ 2

abs Returns the absolute value. abs (-10) = 10


abs (profit)

acos Returns the inverse cosine in de- acos (0.5) = 60


grees. acos (cos-satellite-angle)

asin Returns the inverse sine (speci- asin (0.5) = 30


fied in degrees). asin (sin-satellite-angle)

atan Returns the inverse tangent in atan (1) = 45


degrees. atan (tan-satellite-angle)

atan2 Returns the inverse tangent in atan2 (10, 10) = 45


degrees. atan2 (longitude, latitude)

ThoughtSpot Users Guide Page 362


Formula function reference December 13, 2019

Function Description Examples

cbrt Returns the cube root of a num- cbrt (27) = 3


ber. cbrt (volume)

ceil Returns the smallest following in- ceil (5.9) = 6


teger. ceil (growth rate)

cos Returns the cosine of an angle cos (63) = 0.45


(specified in degrees). cos (beam angle)

cube Returns the cube of a number. cube (3) = 27


cube (length)

exp Returns Euler’s number (~2.718) exp (2) = 7.38905609893


raised to a power. exp (growth)

exp2 Returns 2 raised to a power. exp2 (3) = 8


exp2 (growth)

floor Returns the largest previous inte- floor (5.1) = 5


ger. floor (growth rate)

ln Returns the natural logarithm. ln (7.38905609893) = 2


ln (distance)

log10 Returns the logarithm with base log10 (100) = 2


10. log10 (volume)

log2 Returns the logarithm with base 2 log2 (32) = 5


(binary logarithm). log2 (volume)

mod Returns the remainder of first mod (8, 3) = 2


number divided by the second mod ( revenue , quantity )
number.

pow Returns the first number raised to pow (5, 2) = 25


the power of the second number. pow (width, 2)

random Returns a random number be- random ( ) = .457718


tween 0 and 1. random ( )

round Returns the first number rounded round (35.65, 10) = 40


to the second number (the de- round (battingavg, 100)
fault is 1).

safe_divide Returns the result of dividing the safe_divide (12, 0) = 0


first number by the second. If the safe_divide (total_cost,
second number is 0, returns 0 in- units)
stead of NaN (not a number).

ThoughtSpot Users Guide Page 363


Formula function reference December 13, 2019

Function Description Examples

sign Returns +1 if the number is sign (-250) = -1


greater than zero, -1 if less than sign (growth rate)
zero, 0 if zero.

sin Returns the sine of an angle sin (35) = 0.57


(specified in degrees). sin (beam angle)

spherical_distance Returns the distance in km be- spherical_distance


tween two points on Earth. (37.465191, -122.153617,
37.421962, -122.142174) =
4,961.96
spherical_distance (start_lat-
itude, start_longitude,
start_latitude, start_longi-
tude)

sq Returns the square of a numeric sq (9) = 81


value. sq (width)

sqrt Returns the square root. sqrt (9) = 3


sqrt (area)

tan Returns the tangent of an angle tan (35) = 0.7


(specified in degrees). tan (beam angle)

Text functions

Function Description Examples

concat Returns the one or more values concat ( 'hay' , 'stack' )


as a concatenated text string. = 'haystack'
Be sure to use single quotes concat (last_name ,
instead of double quotes first_name )
around each of the strings.

contains Returns true if the first string contains ('broomstick',


contains the second string, 'room') = true
otherwise returns false. contains (product, 'trial
version')

ThoughtSpot Users Guide Page 364


Formula function reference December 13, 2019

Function Description Examples

edit_distance Accepts two text strings. Re- edit_distance ('attorney',


turns the edit distance (mini- 'atty') = 4
mum number of operations re- edit_distance (color,
quired to transform one string 'red')
into the other) as an integer.
Works with strings under 1023
characters.

edit_distance_with_cap Accepts two text strings and edit_distance_with_cap


an integer to specify the upper ('pokemon go', 'minecraft
limit cap for the edit distance pixelmon', 3) = 4
(minimum number of opera- edit_distance_with_cap
tions required to transform one (event, 'burning man', 3)
string into the other). If the edit
distance is less than or equal
to the specified cap, returns
the edit distance. If it is higher
than the cap, returns the cap
plus 1. Works with strings un-
der 1023 characters.

similar_to Accepts a document text string similar_to ('hello world',


and a search text string. Re- 'hello swirl') = true
turns true if relevance score similar_to (current team,
(0-100) of the search string drafted by)
with respect to the document
is greater than or equal to 20.
Relevance is based on edit dis-
tance, number of words in the
query, and length of words in
the query which are present in
the document.

similarity Accepts a document text string similarity ('where is the


and a search text string. Re- burning man concert', 'burn-
turns the relevance score ing man') = 46
(0-100) of the search string similarity (tweet1, tweet2)
with respect to the document.
Relevance is based on edit dis-
tance, number of words in the
query, and length of words in
the query which are present in
the document. If the two
strings are an exact match, re-
turns 100.

spells_like Accepts two text strings. Re- spells_like ('thouhgtspot',


turns true if they are spelled 'thoughtspot') = true
similarly and false if they are spells_like (studio, dis-
not. Works with strings under tributor)
1023 characters.

ThoughtSpot Users Guide Page 365


Formula function reference December 13, 2019

Function Description Examples

strlen Returns the length of the text. strlen ('smith') = 5


strlen (lastname)

strpos Returns the numeric position strpos ('haystack_with_nee-


(starting from 0) of the first oc- dles', 'needle') = 14
currence of the second string strpos (complaint,
in the first string, or -1 if not 'lawyer')
found.

substr Returns the portion of the giv- substr ('persnickety', 3,


en string, beginning at the lo- 7) = snicket
cation specified (starting from substr (lastname, 0, 5)
0), and of the given length.

ThoughtSpot Users Guide Page 366


Alerts code reference December 13, 2019

Alerts code reference


This reference identifies the messages that can appear in the System Health > Overview > Critical

Alerts and in the Alerts dashboard.

Informational alerts

TASK_TERMINATED

Msg: Task {{.Service}}.{{.Task}} terminated on machine {{.Machine}}

Type: INFO

This alert is raised when a task terminates.

DISK_ERROR

Msg: Machine {{.Machine}} has disk errors

Type: INFO

Raised when a machine has disk errors.

ZK_AVG_LATENCY

Msg: Average Zookeeper latency is more than {{.Num}} msec

Type: INFO

Raised when average Zookeeper latency is above a threshold.

ZK_MAX_LATENCY

Msg: Max Zookeeper latency is more than {{.Num}} msec

Type: INFO

ThoughtSpot Users Guide Page 367


Alerts code reference December 13, 2019

Raised when max Zookeeper latency is above a threshold.

ZK_MIN_LATENCY

Msg: Min Zookeeper latency is more than {{.Num}} msec

Type: INFO

Raised when min Zookeeper latency is above a threshold.

ZK_OUTSTANDING_REQUESTS

Msg: Number of outstanding Zookeeper requests exceeds {{.Num}}

Type: INFO

Raised when there are too many outstanding Zookeeper requests.

ZK_NUM_WATCHERS

Msg: Number of Zookeeper watchers exceeds {{.Num}}

Type: INFO

Raised when there are too many Zookeeper watchers.

MASTER_ELECTION

Msg: {{.Machine}} elected as Orion Master

Type: INFO

Raised when a new Orion Master is elected.

PERIODIC_BACKUP

Msg: {{.Process}} periodic backup for policy {{.Name}} failed.

Type: INFO

ThoughtSpot Users Guide Page 368


Alerts code reference December 13, 2019

Raised when periodic backup fails.

PERIODIC_SNAPSHOT

Msg: {{.Process}} periodic snapshot {{.Name}} failed.

Type: INFO

Raised when a periodic snapshot fails.

HDFS_CORRUPTION

Msg: HDFS root directory is in a corrupted state.

Type: INFO

Raised when HDFS root directory is corrupted.

APPLICATION_INVALID_STATE

Msg: {{.Service}}.{{.Task}} on {{.Machine}} at location {{.Location}}

Type: INFO

Raised when Application raises invalid state alert.

UPDATE_START

Msg: Starting update of ThoughtSpot cluster {{.Cluster}}

Type: INFO

Raised when update starts.

UPDATE_END

Msg: Finished update of ThoughtSpot cluster {{.Cluster}} to release {{.Release}}

Type: INFO

ThoughtSpot Users Guide Page 369


Alerts code reference December 13, 2019

Raised when update completes.

Errors

TIMELY_JOB_RUN_ERROR

Msg: Job run {{.Message}}

Type: ERROR

Raised when a job run fails.

TIMELY_ERROR

Msg: Job manager {{.Message}}

Type: ERROR

Raised when a job manager runs into an inconsistent state.

Warnings

DISK_SPACE

Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free

Type: WARNING

Raised when a disk is low on available disk space. Valid only in the 3.2 version of ThoughtSpot.

ROOT_DISK_SPACE

Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free on root partition

Type: WARNING

Raised when a machine is low on available disk space on root partition.

ThoughtSpot Users Guide Page 370


Alerts code reference December 13, 2019

BOOT_DISK_SPACE

Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free on boot partition

Type: WARNING

Raised when a machine is low on available disk space on boot partition.

UPDATE_DISK_SPACE

Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free on update

partition

Type: WARNING

Raised when a machine is low on available disk space on update partition.

EXPORT_DISK_SPACE

Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free on export

partition

Type: WARNING

Raised when a machine is low on available disk space on export partition.

HDFS_NAMENODE_DISK_SPACE

Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free on HDFS namenode

drive

Type: WARNING

Raised when a machine is low on available disk space on HDFS namenode drive.

ThoughtSpot Users Guide Page 371


Alerts code reference December 13, 2019

MEMORY

Msg: Machine {{.Machine}} has less than {{.Perc}}% memory free

Type: WARNING

Raised when a machine is low on free memory.

OS_USERS

Msg: Machine {{.Machine}} has more than {{.Num}} logged in users

Type: WARNING

Raised when a machine has too many users logged in.

OS_PROCS

Msg: Machine {{.Machine}} has more than {{.Num}} processes

Type: WARNING

Raised when a machine has more too many processes.

SSH

Msg: Machine {{.Machine}} doesn't have an active SSH server

Type: WARNING

Raised when a machine has more than 600 processes.

DISK_ERROR_EXTERNAL

Msg: Machine {{.Machine}} has disk errors

Type: WARNING

ThoughtSpot Users Guide Page 372


Alerts code reference December 13, 2019

Raised when more than 2 disk errors happen in a day.

ZK_FD_COUNT

Msg: Zookeeper has more than {{.Num}} open file descriptors

Type: WARNING

Raised when there are too many open Zookeeper files.

ZK_EPHEMERAL_COUNT

Msg: Zookeeper has more than {{.Num}} ephemeral files

Type: WARNING

Raised when there are too many Zookeeper ephemeral files.

HOST_DOWN

Msg: {{.Machine}} is down

Type: WARNING

Raised when a host is down.

TASK_UNREACHABLE

Msg: {{.ServiceDesc}} on {{.Machine}} is unreachable over HTTP

Type: WARNING

Raised when a task is unreachable over HTTP.

TASK_NOT_RUNNING

Msg: {{.ServiceDesc}} is not running

Type: WARNING

ThoughtSpot Users Guide Page 373


Alerts code reference December 13, 2019

Raised when a service task is not running on any machine in the cluster.

Critical alerts

TASK_FLAPPING

Msg: Task {{.Service}}.{{.Task}} terminated {{._actual_num_occurrences}} times in last

{{._earliest_duration_str}}

Type: CRITICAL

This alert is raised when a task is crashing repeatedly. The service is evaluted across the whole cluster.

So, if a service crashes 5 times in a day across all nodes in the cluster, this alert is generated.

OREO_TERMINATED

Msg: Oreo terminated on machine {{.Machine}}

Type: CRITICAL

This alert is raised when the Oreo daemon on a machine terminates due to an error. This typically

happens due to an error accessing Zookeeper, HDFS, or a hardware issue.

HDFS_DISK_SPACE

Msg: HDFS has less than {{.Perc}}% space free

Type: CRITICAL

Raised when a HDFS cluster is low on total available disk space.

ZK_INACCESSIBLE

Msg: Zookeeper is not accessible

Type: CRITICAL

Raised when Zookeeper is inaccessible.

ThoughtSpot Users Guide Page 374


Alerts code reference December 13, 2019

PERIODIC_BACKUP_FLAPPING

Msg: Periodic backup failed {{._actual_num_occurrences}} times in last

{{._earliest_duration_str}}

Type: CRITICAL

This alert is raised when a periodic backup failed repeatedly.

PERIODIC_SNAPSHOT_FLAPPING

Msg: Periodic snapshot failed {{._actual_num_occurrences}} times in last

{{._earliest_duration_str}}

Type: CRITICAL

This alert is raised when periodic snapshot failed repeatedly.

APPLICATION_INVALID_STATE_EXTERNAL

Msg: {{.Service}}.{{.Task}} on {{.Machine}} at location {{.Location}}

Type: CRITICAL

Raised when Application raises invalid state alert.

ThoughtSpot Users Guide Page 375


User action code reference December 13, 2019

User action code reference


This reference identifies the user action codes that can appear in the System Health pages and in logs

or other reports.

answer_unsaved User makes a change to tokens in the search


bar.

answer_saved User opens an existing saved answer and makes


changes to tokens in the search bar.

answer_pinboard_context User opens an existing saved pinboard, edits a


context viz and makes a change to tokens in the
search bar.

answer_aggregated_worksheet User opens an existing saved aggregated work-


sheet and makes changes to tokens in the
search bar.

answer_upgrade Requests made for the sole purpose of upgrade.

pinboard_view User opens an existing saved pinboard.

pinboard_filter User adds, removes or applies values to a pin-


board filter.

pinboard_ad_hoc User drills down in a pinboard viz.

data_chart_config Request for new data being generated following


a chart config change.

data_show_underlying_row Request to show underlying data for a data


row(s).

data_export Request to export data.

pinboard_tspublic_runtime_filter Request to TSPublic/pinboarddata with runtime


filters.

answer_aggregated_worksheet_save User updates aggregated worksheet.

answer_add_new_filter User adds a filter using the UI.

data_show_underlying_viz Request to show underlying data for a data


row(s).

answer_view User opens an existing, saved answer.

ThoughtSpot Users Guide Page 376


User action code reference December 13, 2019

answer_viz_context_view User opens an existing saved pinboard, edits a


context viz.

pinboard_insight_view User opens SpotIQ tab pinboards.

pinboard_admin_view User opens admin tab pinboards.

pinboard_embed_view User opens embed pinboard from a URL.

pinboard_homepage_view On loading of homepage pinboard.

pinboard_learn_view On loading learn pinboard.

pinboard_tspublic_no_runtime_filter Request to TSPublic/pinboard data without run-


time filters.

ThoughtSpot Users Guide Page 377


Error code reference December 13, 2019

Error code reference


Summary: List of error codes and messages.

This section lists error codes that can appear in ThoughtSpot, with summary information and actions to

take. Error codes and messages are shown in ThoughtSpot when something goes wrong. These

messages can appear in the application and in logs.

When you see an error code, you will also see a message with a brief summary of what has happened. If

there is a remediation action you can take, it will be listed in this references. If there is no action listed,

please contact ThoughtSpot Support.

 Tip: Only the base code number is listed for each error. So keep this in mind when searching

through these codes. For example, error code TS-00125 is simply listed as 125.

Metadata Errors (100 - 499)|

Code Severity Summary Details Action

TS-00100 INFO Success. {1} has None None


been added to {2}.
\# {1} – name of vi-
sualization \# {2} –
{name/link to pin-
board}

TS-00101 ERROR Failure adding {1} to Visualization could None


{2} not be added to {2}
\# {1} – name of vi-
sualization \# {2} –
name/link to pin-
board

TS-00102 ERROR Failure adding {1} to {1} could not be Please try again after
{2} due to corrup- added to {2} as the removing the invalid
tion pinboard has one or visualization(s) from
more invalid visual- {2} \# {1} – name of vi-
izations sualization \# {2} –
name/link to pinboard

ThoughtSpot Users Guide Page 378


Error code reference December 13, 2019

TS-00103 INFO Success. Visualiza- None None


tion has been delet-
ed from {1}. 1 –
name/link to pin-
board

TS-00104 ERROR Failure deleting vi- Visualization could None


sual from {1} not be deleted from
the pinboard. 1 –
name/link to pin-
board

TS-00105 ERROR Failure deleting vi- Visualization could Please try again after
sual from {1} due to not be deleted from removing the invalid
corruption {1} as the pinboard visualization(s) from
has one or more in- the pinboard
valid visualizations.
1 – name/link to pin-
board

TS-00106 INFO Success. {1} creat- None None


ed successfully. 1 –
name/link to pin-
board

TS-00107 ERROR Failure creating {1}. Uh oh. We’re not None


1 – name/link to pin- sure what hap-
board pened. Please email
the trace file to {ad-
minEmail}.

TS-00108 INFO Sticker created suc- None None


cessfully.

TS-00109 ERROR Failure creating the Uh oh. We’re not None


sticker. sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00110 INFO Sticker deleted suc- None None


cessfully.

TS-00111 ERROR Failure deleting Uh oh. We’re not None


sticker. sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00112 INFO Pinboards deleted None None


successfully.

ThoughtSpot Users Guide Page 379


Error code reference December 13, 2019

TS-00113 ERROR Failure deleting pin- Uh oh. We’re not None


boards sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00114 INFO Answers deleted None None


successfully.

TS-00115 ERROR Failure deleting an- Uh oh. We’re not None


swers sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00116 INFO Tables deleted suc- None None


cessfully.

TS-00117 ERROR Failure deleting ta- Uh oh. We’re not None


bles sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00118 INFO Relationship created None None


successfully.

TS-00119 ERROR Failure creating rela- Uh oh. We’re not None


tionship sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00120 INFO Relationship updat- None None


ed successfully.

TS-00121 ERROR Failure updating the Uh oh. We’re not None


relationship sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00122 INFO Relationship deleted None None


successfully.

TS-00123 ERROR Failure deleting the Uh oh. We’re not None


relationship sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

ThoughtSpot Users Guide Page 380


Error code reference December 13, 2019

TS-00124 ERROR Failure fetching de- Uh oh. We’re not None


tails for table sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00125 ERROR Failure fetching de- Uh oh. We’re not None


tails for the tables sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00126 ERROR Failure fetching de- Uh oh. We’re not None


tails for datasource sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00127 ERROR Failure fetching de- Uh oh. We’re not None


tails for datasources sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00128 ERROR Failure fetching de- Uh oh. We’re not None


tails for metadata sure what hap-
items pened. Please email
the trace file to {ad-
minEmail}.

TS-00129 ERROR Failure opening the Uh oh. We’re not None


answer sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00130 ERROR Failure opening the Uh oh. We’re not None


pinboard sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00131 ERROR Failure opening the Uh oh. We’re not None


worksheet sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00132 INFO Table saved suc- None None


cessfully.

ThoughtSpot Users Guide Page 381


Error code reference December 13, 2019

TS-00133 ERROR There was a prob- Uh oh. We’re not None


lem saving the table sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00134 INFO Visualization update None None


successful

TS-00135 ERROR Visualization failed Uh oh. We’re not None


to update sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00136 INFO {1} saved 1 – name None None


of answer

TS-00137 ERROR {1} could not be Uh oh. We’re not None


saved 1 – name of sure what hap-
answer pened. Please email
the trace file to {ad-
minEmail}.

TS-00138 INFO {1} saved 1 - name None None


of pinboard / link

TS-00139 ERROR {1} could not be Uh oh. We’re not None


saved 1 - name of sure what hap-
pinboard / link pened. Please email
the trace file to {ad-
minEmail}.

TS-00140 INFO {1} saved 1 – name None None


of worksheet

TS-00141 ERROR {1} could not be Uh oh. We’re not None


saved 1 – name of sure what hap-
worksheet pened. Please email
the trace file to {ad-
minEmail}.

TS-00142 INFO {1} saved 1 – name None None


of answer

TS-00143 ERROR {1} could not be Uh oh. We’re not None


saved sure what hap-
pened. Please email
the trace file to {ad-
minEmail}. 1 – name
of answer

ThoughtSpot Users Guide Page 382


Error code reference December 13, 2019

TS-00144 INFO {1} saved 1 – name/ None None


link to pinboard

TS-00145 ERROR {1} could not be Uh oh. We’re not None


saved sure what hap-
pened. Please email
the trace file to {ad-
minEmail}. 1 – name
of pinboard

TS-00146 INFO Worksheet saved None None

TS-00147 ERROR Worksheet could Uh oh. We’re not None


not be saved sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00148 INFO Sticker updated None None

TS-00149 ERROR The sticker could Uh oh. We’re not None


not be updated sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00150 INFO Successfully as- None None


signed sticker

TS-00151 ERROR The sticker could Uh oh. We’re not None


not be assigned sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00152 INFO Successfully unas- None None


signed sticker

TS-00153 ERROR The sticker could Uh oh. We’re not None


not be unassigned sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00154 ERROR Failed to fetch Uh oh. We’re not None


metadata list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

ThoughtSpot Users Guide Page 383


Error code reference December 13, 2019

TS-00155 ERROR Failed to fetch table Uh oh. We’re not None


list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00156 ERROR Failed to fetch rela- Uh oh. We’re not None


tionship list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00157 ERROR Failed to fetch an- Uh oh. We’re not None


swer list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00158 ERROR Failed to fetch pin- Uh oh. We’re not None


board list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00159 ERROR Failed to fetch Uh oh. We’re not None


worksheet list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00160 ERROR Failed to fetch ag- Uh oh. We’re not None


gregated worksheet sure what hap-
list pened. Please email
the trace file to {ad-
minEmail}.

TS-00161 ERROR Failed to fetch im- Uh oh. We’re not None


ported data list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00162 ERROR Failed to fetch sys- Uh oh. We’re not None


tem table list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00163 ERROR Failed to DB view Uh oh. We’re not None


list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

ThoughtSpot Users Guide Page 384


Error code reference December 13, 2019

TS-00164 ERROR Failed to fetch data Uh oh. We’re not None


source list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00165 ERROR Failed to fetch col- Uh oh. We’re not None


umn list sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00166 ERROR Failed to label list Uh oh. We’re not None


sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00167 ERROR Failed to fetch an- Uh oh. We’re not None


swer sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00168 ERROR Failed to fetch Uh oh. We’re not None


worksheet sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00169 INFO Aggregated work- None None


sheet {1} created 1
– name of aggregat-
ed worksheet

TS-00170 ERROR Failure creating Ag- Uh oh. We’re not None


gregated Work- sure what hap-
sheet. pened. Please email
the trace file to {ad-
minEmail}.

TS-00171 INFO {1} updated 1 – None None


name of aggregated
worksheet

TS-00172 ERROR {1} failed to update Uh oh. We’re not None


1 – name of aggre- sure what hap-
gated worksheet pened. Please email
the trace file to {ad-
minEmail}.

ThoughtSpot Users Guide Page 385


Error code reference December 13, 2019

TS-00173 ERROR {1} failed to update Uh oh. We’re not None


1 – name of the for- sure what hap-
mula pened. Please email
the trace file to {ad-
minEmail}.

TS-00174 ERROR Comments cannot Failed to save client None


be fetched state

TS-00175 ERROR Comment cannot be Uh oh. We’re not None


created sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00176 ERROR Comment cannot be Uh oh. We’re not None


updated sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00177 ERROR Comment cannot be Uh oh. We’re not None


deleted sure what hap-
pened. Please email
the trace file to {ad-
minEmail}.

TS-00178 INFO Rule saved suc- None None


cessfully

TS-00179 ERROR Rule could not be We're not sure what None
saved happened. Please
email the trace file
to {adminEmail}.

TS-00180 INFO Rule deleted suc- None None


cessfully

TS-00181 ERROR Rule could not be We're not sure what None
deleted happened. Please
email the trace file
to {adminEmail}.

TS-00182 INFO Item deleted suc- None None


cessfully.

TS-00183 ERROR Item could not be We're not sure what None
deleted. happened. Please
email the trace file
to {adminEmail}.

TS-00184 INFO Related link created None None


successfully.

ThoughtSpot Users Guide Page 386


Error code reference December 13, 2019

TS-00185 ERROR Related link could Uh oh. We're not None


not be created. sure what hap-
pened. Please click
'Report Problem' to
email a report to
your administrator,
{adminEmail}.

TS-00186 INFO Related link updat- None None


ed successfully.

TS-00187 ERROR Related link could Uh oh. We're not None


not be updated. sure what hap-
pened. Please click
'Report Problem' to
email a report to
your administrator,
{adminEmail}.

TS-00188 INFO Related link deleted None None


successfully.

TS-00189 ERROR Related link could Uh oh. We're not None


not be deleted. sure what hap-
pened. Please click
'Report Problem' to
email a report to
your administrator,
{adminEmail}.

TS-00190 INFO Related link detail None None


fetched successful-
ly.

TS-00191 ERROR Related link detail Uh oh. We're not None


could not be sure what hap-
fetched. pened. Please click
'Report Problem' to
email a report to
your administrator,
{adminEmail}.

Data Service Errors (500 - 699)

Code Severity Summary Details Action

TS-00500 ERROR Failed to fetch Failed to fetch leaf level data. None
leaf level data

ThoughtSpot Users Guide Page 387


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-00501 ERROR Failed to fetch Failed to fetch excel data. None


excel data

TS-00502 ERROR Failed to fetch Failed to fetch visuzliation data. None


visualization da-
ta

TS-00503 ERROR Failed to fetch Failed to fetch data for visualizations. None
visualizations
data

TS-00504 ERROR Failed to fetch Failed to fetch table data. None


chart data

TS-00505 ERROR Failed to fetch Failed to fetch table data. None


table data

TS-00506 ERROR Failed to fetch Failed to fetch worksheet data. None


worksheet data

TS-00507 ERROR Failed to fetch Failed to fetch filter data. None


filter data

TS-00508 ERROR Failed to fetch Failed to fetch filter data. None


headline data

TS-00509 ERROR Failed to fetch Failed to fetch natural query. None


natural query

TS-00510 INFO File upload suc- None None


cessful

TS-00511 ERROR Failed to upload Failed to upload None


file

TS-00512 ERROR The pinboard Uh oh. We’re not sure what happened. Please None
data could not click ‘Report Problem’ to email a report to
be exported to your administrator, {adminEmail}.
pdf.

Dependency Errors (700 - 799)

Code Severity Summary Details Action

TS-00700 ERROR Failure fetching table depen- Failed to fetch dependents for the None
dents table.

ThoughtSpot Users Guide Page 388


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-00701 ERROR Failure fetching column de- Failed to fetch dependents for the None
pendents column.

TS-00702 ERROR Failure fetching incomplete Failed to fetch incomplete items. None
items

Admin Service Errors (800 - 899)

Code Severity Summary Details Action

TS-00800 ERROR Failure fetching MemCache Failed to fetch MemCache None


stats stats.

TS-00801 ERROR Failure MemCache Clear Failed to clear MemCache. None

TS-00802 ERROR Failure searching from Mem- Failed to search from Mem- None
Cache Cache.

TS-00803 ERROR Failure fetching Loggers Failed to fetch Loggers. None

TS-00804 ERROR Failure setting LogLevel Failed to set Log Level. None

TS-00805 ERROR Failure getting debug info Failed to get debug info. None

TS-00806 INFO Memcache cleared successful- None None


ly

TS-00807 INFO Log level set successfully None None

TS-00808 ERROR Failed to report problem None None

TS-00809 INFO Problem reported successfully None None

Permissions Errors (900 - 999)

Code Severity Summary Details Action

TS-00900 ERROR Failure fetching table permis- Failed to fetch table permis- None
sions sions.

ThoughtSpot Users Guide Page 389


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-00901 ERROR Failure fetching answer permis- Failed to fetch answer permis- None
sions sions.

TS-00902 ERROR Failure fetching pinboard per- Failed to fetch pinboard per- None
missions missions.

TS-00903 ERROR Failure getting metadata per- Failed to get metadata permis- None
missions sions.

Import Data Errors (1000 - 1099)

Code Severity Summary Details Action

TS-01000 ERROR Data caching failed Data caching failed. None

TS-01001 ERROR Read Columns failed. Failed to read columns. None

TS-01002 ERROR Failed to read keys. Failed to read keys. None

TS-01003 ERROR Failed to read relationships. Failed to read relationships. None

TS-01004 ERROR Failed to load data. Failed to load data. None

TS-01005 ERROR Failed to create table. Failed to create table. None

TS-01006 ERROR Failed to fetch data rows. Failed to fetch data rows. None

TS-01007 ERROR Failed to delete files. Failed to fetch data rows. None

TS-01008 ERROR Failed to abort create table. Failed to abort create table. None

TS-01009 ERROR Failed to create schema. Failed to create schema. None

TS-01010 ERROR Failed to fetch table models. Failed to fetch table models. None

TS-01011 ERROR Failed to fetch sample values. Failed to fetch sample values. None

ThoughtSpot Users Guide Page 390


Error code reference December 13, 2019

Scheduled Jobs Errors (1100 - 1199)

Code Severity Summary Details Action

TS-01100 INFO The list of jobs. None Please click ‘Report Problem’ to email a re-
port to your administrator.

TS-01110 INFO Successfully cre- None None


ated job.

TS-01111 ERROR The job could not None Please click ‘Report Problem’ to email a re-
be created. port to your administrator.

TS-01112 INFO Successfully up- None None


dated job.

TS-01113 ERROR The job could not None Please click ‘Report Problem’ to email a re-
be updated. port to your administrator.

TS-01114 INFO Successfully delet- None None


ed jobs.

TS-01115 ERROR The job could not None Please click ‘Report Problem’ to email a re-
be deleted. port to your administrator.

TS-01116 INFO The job was None None


paused.

TS-01117 ERROR The job could not None Please click ‘Report Problem’ to email a re-
be paused. port to your administrator.

TS-01118 INFO The job was re- None None


sumed

TS-01119 ERROR The job could not None Please click ‘Report Problem’ to email a re-
be resumed. port to your administrator.

User Admin Service Errors (1200 - 1399)

Code Severity Summary Details Action

TS-01200 ERROR Failed to fetch users list Failed to fetch users list None

ThoughtSpot Users Guide Page 391


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-01201 ERROR Failed to fetch groups list Failed to fetch groups list None

TS-01202 ERROR Failed to fetch users and Failed to fetch users and None
groups list groups list

TS-01203 ERROR Successfully created user Successfully created user None

TS-01204 ERROR Failed to create user Failed to create user None

TS-01205 ERROR Successfully created group Successfully created group None

TS-01206 ERROR Failed to create group Failed to create group None

TS-01207 ERROR Successfully updated user Successfully updated user None

TS-01208 ERROR Failed to update user Failed to update user None

TS-01209 ERROR Successfully updated users Successfully updated users None

TS-01210 ERROR Failed to update users Failed to update users None

TS-01211 ERROR Successfully updated group Successfully updated group None

TS-01212 ERROR Failed to update group Failed to update group None

TS-01213 ERROR Successfully updated pass- Successfully updated pass- None


word word

TS-01214 ERROR Failed to update password Failed to update password None

TS-01215 ERROR Successfully deleted users Successfully deleted users None

TS-01216 ERROR Failed to delete users Failed to delete users None

TS-01217 ERROR Successfully deleted groups Successfully deleted groups None

TS-01218 ERROR Failed to delete groups Failed to delete groups None

TS-01219 ERROR Successfully assigned users to Successfully assigned users to None


groups groups

TS-01220 ERROR Failed to assign users to Failed to assign users to None


groups groups

TS-01221 ERROR Failed to fetch profile pic Failed to fetch profile pic None

TS-01222 INFO Successfully uploaded profile None None


pic

TS-01223 ERROR Failed to upload profile pic Failed to upload profile pic None

ThoughtSpot Users Guide Page 392


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-01224 ERROR Successfully assigned groups Failed to assign user to group None
to group

TS-01228 ERROR Successfully created role Successfully created role None

TS-01229 ERROR Failed to create role Failed to create role None

TS-01230 ERROR Successfully deleted role Successfully deleted role None

TS-01231 ERROR Failed to delete role Failed to delete role None

TS-01232 ERROR Successfully updated role Successfully updated role None

TS-01233 ERROR Failed to update role Failed to update role None

Session Service Errors (1400 - 1599)

Code Severity Summary Details Action

TS-01400 ERROR Failed to fetch session Failed to fetch session info None
info

TS-01401 ERROR Failed to login Uh oh. We’re not sure what happened. None
Please email the trace file to {adminE-
mail}.

TS-01402 ERROR Failed to logout Failed to logout None

TS-01403 ERROR Failed to save client Failed to save client state None
state

TS-01404 ERROR Failed to fetch login Failed to fetch login config None
config

TS-01405 ERROR Failed to fetch slack Failed to fetch slack config None
config

TS-01406 ERROR Health check failed Health check failed None

TS-01407 ERROR Failed to fetch health Failed to fetch health portal token None
portal token

TS-01408 ERROR The health portal release Uh oh. We’re not sure what happened. None
name could not be re- Please email the trace file to {adminE-
trieved mail}.

ThoughtSpot Users Guide Page 393


Error code reference December 13, 2019

Data Management Service Errors (1600 - 1799)

Code Severity Summary Details Action

TS-01600 ERROR Failed to fetch data Failed to fetch data source types None
source types

TS-01601 ERROR Failed to fetch data Failed to fetch data source sample None
source sample values values

TS-01602 ERROR Failed to delete data Failed to delete data source None
source

TS-01603 ERROR Failed to execute DDL Failed to execute DDL None

TS-01604 ERROR Failed to update sched- Failed to update schedule None


ule

TS-01605 ERROR Failed to reload tasks Failed to reload tasks None

TS-01606 ERROR Failed to stop tasks Failed to stop tasks None

TS-01607 ERROR Failed to get creation Failed to get creation DDL None
DDL

TS-01608 ERROR Failed to load from data Failed to load from data source None
source

TS-01609 ERROR Failed to create connec- Failed to create connection to data None
tion to data source source

TS-01610 ERROR Failed to create data Failed to create data source None
source

TS-01611 ERROR Failed to connect to data Failed to connect to data source None
source

TS-01612 ERROR Failed to get data source Failed to get data source connection None
connection field info field info

TS-01613 ERROR Failed to get connection Failed to get connection list for data None
list for data source source

TS-01614 ERROR Failed to get connection Failed to get connection attributes for None
attributes for data source data source

TS-01615 ERROR Failed to get connections Failed to get connections to data None
to data source source

ThoughtSpot Users Guide Page 394


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-01616 ERROR Failed to fetch data Failed to fetch data source config None
source config

TS-01617 ERROR Failed to parse sql. Failed to parse sql. None

TS-01618 ERROR Failed to execute sql. Failed to execute sql. None

TS-01619 INFO Successfully created None None


connection to data
source

TS-01620 INFO Successfully updated None None


data upload schedule

TS-01621 ERROR Failed to execute sql. Please check the failing command, None
executed {1} statements successfully.

TS-01622 ERROR Lightweight data-cache Lightweight data-cache disabled None


disabled

TS-01623 INFO Selected tables were Selected tables were queued for None
queued for loading. loading.

TS-01624 ERROR DataType conversion er- No mapping found for source None
ror. datatype to ThoughtSpot datatype.

TS-01625 INFO Successfully reload task None None


started.

TS-01626 INFO Successfully connected None None


to data source.

TS-01627 INFO Successfully created da- None None


ta source.

TS-01628 INFO Successfully stopped the None None


tasks.

TS-01629 INFO Successfully deleted the None None


connection.

TS-01630 ERROR There was an error delet- None None


ing this connection.

TS-01631 INFO Successfully executed None None


the DDL.

ThoughtSpot Users Guide Page 395


Error code reference December 13, 2019

Cluster Status Service Errors (1800 - 1899)

Code Severity Summary Details Action

TS-01800 WARNING Failed to fetch cluster information from search None None
service.

TS-01801 WARNING Failed to fetch table detail information from None None
search service.

TS-01802 WARNING Failed to fetch cluster information from data- None None
base service.

TS-01803 WARNING Failed to fetch table detail information from None None
databse service.

TS-01804 WARNING Failed to fetch cluster information from cluster None None
management service.

TS-01805 WARNING Failed to fetch detail information from cluster None None
management service.

TS-01806 WARNING Failed to fetch log from cluster management None None
service.

TS-01807 WARNING Failed to fetch snapshot list from cluster man- None None
agement service.

TS-01808 WARNING Failed to fetch cluster information from alert None None
management service.

TS-01809 WARNING Failed to fetch cluster information from event None None
service.

TS-01810 WARNING Failed to fetch alerts information from alert None None
management service.

TS-01811 WARNING Failed to fetch events information from alert None None
management service.

TS-01812 INFO Thanks for your feedback! None None

TS-01813 WARNING Sorry! Unable to submit the feedback at this None None
moment!

TS-01814 INFO Successfully exported objects. File can be None None


found at {1}.

ThoughtSpot Users Guide Page 396


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-01815 ERROR Sorry! Unable to export objects at this mo- What hap- None
ment! pened? {1}.

TS-01816 INFO Successfully imported objects None None

TS-01817 ERROR Sorry! Unable to import objects at this mo- What hap- None
ment! pened? {1}.

TS-01818 INFO Successfully deleted data source object(s). None None

Callosum API Errors (9000 - 9199)

Code Severity Summary Details Action

TS-09000 ERROR The data you are Some objects depend on the data delete the de-
trying to delete you are trying to delete pendencies
has some depen- before delet-
dencies ing this data.

TS-09001 ERROR Uh oh. We’re not Please email the trace file to {ad- None
sure what hap- minEmail}.
pened.

TS-09002 ERROR Could not autho- Try logging in again None


rize user

TS-09003 ERROR Uh oh. We’re not Please email the trace file to {ad- None
sure what hap- minEmail}.
pened.

TS-09004 WARNING Still loading data, None None


come back soon

TS-09005 ERROR Uh oh. We’re hav- Please email the trace file to {ad- None
ing trouble getting minEmail}.
data for this re-
quest.

TS-09006 ERROR Uh oh. We’re hav- Please email the trace file to {ad- None
ing trouble getting minEmail}.
data for this re-
quest.

ThoughtSpot Users Guide Page 397


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-09007 ERROR Uh oh. We’re hav- Please email the trace file to {ad- None
ing trouble getting minEmail}.
data for this re-
quest.

TS-09008 ERROR Something went Uh oh. We’re not sure what hap- None
wrong with your pened. Please email the trace file
search to {adminEmail}.

TS-09009 ERROR The calculation Please email the trace file to {ad- None
engine has timed minEmail}.
out. Please try
again.

TS-09010 ERROR Cannot open Ob- Object cannot be opened due to None
ject errors in some of its dependencies

TS-0Blink
Generated
Errors
(9500 -
9599)

TS-09500 WARNING Cannot connect None None


to the calculation
engine. Please try
again soon.

TS-09501 WARNING The calculation None None


engine has timed
out. Please try
again.

TS-09502 WARNING Cannot connect None None


to the search en-
gine. Please try
again soon.

TS-09503 WARNING The search en- None None


gine has timed
out. Please try
again.

TS-09504 ERROR Cannot open {1} {1} cannot be opened due to er- None
rors in the following dependencies
1 - Type of the object Table/An-
swer/Pinboard etc.

TS-09505 WARNING We’re still index- None None


ing this data, try
again soon

ThoughtSpot Users Guide Page 398


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-09506 ERROR Object is not pre- {1} is not present in the system 1 - None
sent in the system Type of the object Table/Answer/
Pinboard etc.

TS-09507 ERROR ThoughtSpot is None None


unreachable.
Please try again
soon

Common Errors (10000 - 10099)

Code Severity Summary Details Action

TS-10000 ERROR A system er- Uh oh. We’re not sure what happened. None
ror has oc- Please contact your administrator.
curred

TS-10001 ERROR Connection The metadata store is not reachable. Please contact
failed your administra-
tor

TS-10002 ERROR The input is Input from the client to the server is in- Please contact
invalid valid. your administra-
tor

TS-10003 ERROR Unfortunately, You are not authorized to perform {1}. Please request
you can’t do # {1} – action user is not authorized for access from
that your administra-
tor

TS-10004 ERROR The user User {0} is not authorized to perform Please request
could not be {1}. # {0} – name of the user # {1} – ac- access from
authorized tion user is not authorized for your administra-
tor

TS-10005 ERROR The base ob- An underlying object referenced by this Please contact
ject is miss- object is missing in store. your administra-
ing tor

TS-10006 ERROR The connec- Zookeeper is not reachable. Please contact


tion to your administra-
Zookeeper tor
has failed

ThoughtSpot Users Guide Page 399


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-10007 ERROR There’s in- Invalid parameter values: {0}. Please contact
valid parame- your administra-
ter(s) tor

TS-10008 ERROR The user can- User {0} not found in store. # {0} – Please contact
not be found name of the user your administra-
tor

TS-10009 ERROR Cannot add This group already belongs to the None
group group you are trying to add it to.

Falcon Errors (10600 - 10699)

Code Severity Summary Details Action

TS-10603 ERROR Falcon query cancelled None None

Data Errors (11000 - 11099)

Code Severity Summary Details Action

TS-11001 ERROR Invalid row None None

TS-11002 ERROR Invalid table/query re- None None


sultset

TS-11003 ERROR Invalid column identifier None None

TS-11004 ERROR Invalid visualization None None


identifier

TS-11005 ERROR No data Query execution resulted in no data. None

TS-11006 ERROR Query execution failed Error in query execution to Falcon. None

TS-11007 ERROR Answer data generation Error in Answer data generation for None
failed Sage input.

TS-11008 ERROR Data export failed None None

TS-11009 ERROR Data generation failed Error in data generation in Callosum. None

ThoughtSpot Users Guide Page 400


Error code reference December 13, 2019

Report Generation Errors (12000 - 13000)

Code Severity Summary Details Action

TS-12700 ERROR Error while exporting data file. None None

TS-12701 ERROR Invalid input. The definition of the job is in- None
valid.

TS-12702 ERROR No author provided. None None

TS-12703 ERROR No pinboard provided. None None

TS-12704 ERROR No recipients provided. None None

TS-12705 ERROR This format is not supported. None None

TS-12706 ERROR No job name provided. None None

TS-12707 ERROR No job description provided. None None

TS-12708 ERROR Pinboard data export error. None None

TS-12709 ERROR Visualization data export error. None None

TS-12710 ERROR User data unavailable. None None

TS-12711 ERROR Configuration information un- None None


available.

TS-12712 ERROR There are too many recipients. The max number of recipients None
is 1000.

TS-12713 ERROR Attachment size limit exceed- None None


ed.

TS-12714 ERROR Recipient domain is not None None


whitelisted.

ThoughtSpot Users Guide Page 401


Error code reference December 13, 2019

More Metadata Errors (13000 - 13099)

Code Severity Summary Details Action

TS-13001 ERROR Schema creation Error creating database None


failed schema.

TS-13002 ERROR Views creation Error creating view. None


failed

TS-13003 ERROR The object can- Object with Id: {0} of None
not be found in type: {1} not found. #
store {0} – identity of the ob-
ject # {1} – type of ob-
ject

TS-13004 ERROR The object is in Oject with Id: {0} of None


an invalid state type: {1} in invalid state.
# {0} – identity of the
object # {1} – type of
object

TS-13005 ERROR Object already Object with Id: {0} of None


exists type: {1} already exists.
# {0} – identity of the
object # {1} – type of
object

TS-13006 ERROR Invalid object Invalid type: {0} provid- None


type ed. # {1} – type of ob-
ject

TS-13007 ERROR Invalid Sage Insufficient or invalid in- None


question put from Sage: {0}. #
{0} – the invalid input

TS-13008 ERROR Invalid Sage Input from from Sage – None


question missing columns of
type: {0}. # {0} – column
type

TS-13009 ERROR Invalid Sage Invalid input from Sage None


question – invalid expression:
{0}. # {0} – the invalid
expression

ThoughtSpot Users Guide Page 402


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-13010 ERROR Sending logical Sending logical meta- None


metadata to data to Sage failed due
Sage failed to: {0}. # {0} – reason
for failure

TS-13011 ERROR Answer genera- Answer generation None


tion failed failed due to: {0}. # {0} –
reason for failure

TS-13012 ERROR Worksheet gen- Worksheet generation None


eration failed failed due to: {0}. # {0} –
reason for failure

TS-13013 ERROR Service provider Service provider un- None


unavailable available: {0}. # {0} –
provider details

TS-13015 ERROR Physical model None None


not loaded

TS-13016 ERROR Invalid physical Inconsistency in physi- None


schema proto cal schema from Fal-
con: {0}. # {0} – error
details

TS-13017 ERROR Invalid duplicate Duplicate columns: {0}. None


columns # {0} – List of duplicate
column identities

TS-13018 ERROR Cyclic relation- Detected cycles: {0}. # None


ship {0} – cycle details

TS-13019 WARNING Older physical Schema update for old- None


schema version er version: {0} received
received and ignored. # {0} – re-
ceived version number

TS-13020 ERROR Invalid relation- Attempted to create in- None


ship valid relationship: {0}. #
{0} – relationship details

TS-13022 ERROR Invalid filter val- None None


ues: {values}

TS-13023 ERROR Creating relation- None None


ship failed.

TS-13024 ERROR Deleting schema None None


failed.

ThoughtSpot Users Guide Page 403


Error code reference December 13, 2019

Code Severity Summary Details Action

TS-13025 ERROR Expression vali- None None


dation failed.

TS-13026 INFO Load schedule None None


successfully dis-
abled.

TS-13027 ERROR Load schedule None None


could not be dis-
abled.

TS-13028 ERROR Objects fetched None To proceed with editing


from the connec- the datasource, please
tion are invalid edit the connection below
for editing data- to fetch valid source ob-
source. jects.

TS-13029 INFO Successfully None None


edited data
source connec-
tion.

TS-13030 ERROR Connection test None Please verify connection


failed. attributes.

Loading Errors (30000 - 30099)

Code Severity Summary Details Action

TS-30000 ERROR Table is not ready (data loading in progress). None None

Timely Errors (60000 - 64999)

Code Severity Summary Details Action

TS-60000 ERROR Failed to initialize. None None

ThoughtSpot Users Guide Page 404


Frequently asked questions December 13, 2019

Frequently asked questions


Where can I find the version of ThoughtSpot I am using?

Users with administrative privileges can see this displayed on the Admin > System Health > Overview

page.

I’m not seeing certain columns/values in the drop-down, why?

It could be the index has not built with the latest data or something is causing the column to be dropped.

• Verify the the column is available using the Data page.

• View the table columns and check the INDEX TYPE value. If it is set to DONT_INDEX , change

it.

• Check the column’s INDEX PRIORITY &emdash. make sure it is 1 .

To learn more about modeling data see modeling data in this documentation.

How do I track progress of current index build?

If you are an administrator, you can use the Admin > System Health > Overview page to see the

number of tables currently being indexed. You can also review the

How do I display the features used in my cluster configuration?

1. Log into the ThoughtSpot cluster as the admin user.

2. Use the tscli feature subcommand to display your current configuration.

ThoughtSpot Users Guide Page 405


Frequently asked questions December 13, 2019

$ tscli feature get-all-config


+---------------------------------+----------
+---------------+
| NAME | STATUS | CONFIGUR
ATION |
+---------------------------------+----------
+---------------+
| Firewall | Disabled
| |
| Saml | Disabled
| |
| Ldap | Disabled
| |
| CustomBranding | Disabled
| |
| CustomBrandingFontCustomization | Disabled
| |
| DataConnect | Disabled
| |
| RLS | Enabled
| |
| Callhome | Enabled
| |
| SSHTunnel | Enabled
| |
| Fileserver | Disabled
| |
+---------------------------------+----------
+---------------+

Is it possible to create a max(date) filed and set it to filter?

If you have a date field in my set of data and want to return the most recent set of data based on specific

date. To do this:

1. Create a formula called Max Date , for example:

date = group_max ( date_to_filter_by )

2. In the search bar, filter your dates by this formula for example:

ThoughtSpot Users Guide Page 406


Frequently asked questions December 13, 2019

max date = true

This returns only those fields that pass the filter.

ThoughtSpot Users Guide Page 407

You might also like