| ThoughtSpot Thought Spot User Guide 5.1
User Manual:
Open the PDF directly: View PDF .
Page Count: 416
Users Guide
Version 5.1 February 07, 2019
Copyright for ThoughtSpot publications. © 2019 ThoughtSpot, Inc. All rights
reserved.
ThoughtSpot, Inc. 1 Palo Alto Square
Building 1, Suite 200
Palo Alto, CA 94306
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
February 07, 2019
Table of Contents
Introduction .............................................................................................................................. 5
Getting Started
Finding your way around
around.......................................................................................................
....................................................................................................... 6
ThoughtSpot browser access ............................................................................................. 10
Your user preferences ......................................................................................................... 12
Understanding privileges
privileges.....................................................................................................
..................................................................................................... 16
Use stickers to organize
organize......................................................................................................
...................................................................................................... 21
Use Search
What are searches and answers? ....................................................................................... 24
Search basics
Start a new search .......................................................................................................... 26
Choose a data source
source.....................................................................................................
..................................................................................................... 28
Search bar features
features.........................................................................................................
......................................................................................................... 29
Search suggestions
suggestions.........................................................................................................
......................................................................................................... 32
Search results and column types
types....................................................................................
.................................................................................... 34
Last data refresh time ..................................................................................................... 36
Work with Answers ......................................................................................................... 38
Results that are tables
tables.........................................................................................................
......................................................................................................... 42
Use keywords in search
Overview of keyword searchess ..................................................................................... 45
Time series analysis ........................................................................................................ 48
Search using growth over time ....................................................................................... 52
Proximity searches "near" and "farther than" ................................................................. 56
Work with filters
Understand filters
filters............................................................................................................
............................................................................................................ 58
Add a filter to a table
table.......................................................................................................
....................................................................................................... 61
Add a filter to a chart
chart.......................................................................................................
....................................................................................................... 64
Create a bulk filter ........................................................................................................... 67
Delete a filter ................................................................................................................... 70
Filter on null, blank, or empty values .............................................................................. 71
Other search actions
Other search actions
actions.......................................................................................................
....................................................................................................... 73
Change result display options
options.........................................................................................
......................................................................................... 74
Show underlying data ..................................................................................................... 77
support@thoughtspot.com
i
ThoughtSpot Users Guide
February 07, 2019
See the search behind a result ....................................................................................... 80
Apply conditional formatting to a table ........................................................................... 81
Download your search .................................................................................................... 85
Replay search ................................................................................................................. 87
Work with charts
Understand charts
charts...............................................................................................................
............................................................................................................... 88
Chart types
Column charts
charts.................................................................................................................
................................................................................................................. 91
Bar charts
charts........................................................................................................................
........................................................................................................................ 93
Line charts
charts.......................................................................................................................
....................................................................................................................... 95
Pie charts ........................................................................................................................ 96
Area charts
charts......................................................................................................................
...................................................................................................................... 98
Scatter charts
charts................................................................................................................
................................................................................................................ 100
Bubble charts
charts................................................................................................................
................................................................................................................ 101
Pareto charts
charts.................................................................................................................
................................................................................................................. 103
Waterfall charts ............................................................................................................. 104
Treemap charts ............................................................................................................. 105
Line column charts
charts........................................................................................................
........................................................................................................ 107
Funnel charts
charts.................................................................................................................
................................................................................................................. 110
Geo charts
charts.....................................................................................................................
..................................................................................................................... 111
Sankey charts ............................................................................................................... 115
Pivot table ..................................................................................................................... 116
Changing a chart
Change the chart
chart...........................................................................................................
........................................................................................................... 121
Reorder the labels ......................................................................................................... 122
Set the y-axis range ...................................................................................................... 123
Hide and show values ................................................................................................... 125
Change chart colors
colors......................................................................................................
...................................................................................................... 127
Additional chart options ................................................................................................ 131
Zoom into a chart
chart..........................................................................................................
.......................................................................................................... 139
Work with formulas
Understand formulas
formulas.........................................................................................................
......................................................................................................... 141
Add a formula to a search ................................................................................................. 142
View or edit a formula in a search ..................................................................................... 145
Aggregate formulas
Overview of aggregate formulas ................................................................................... 147
Cumulative functions .................................................................................................... 150
support@thoughtspot.com
ii
ThoughtSpot Users Guide
February 07, 2019
Moving functions
functions...........................................................................................................
........................................................................................................... 153
Flexible aggregation functions (group aggregate and filters)
filters)........................................
........................................ 157
Grouping functions
functions........................................................................................................
........................................................................................................ 160
Filtered aggregation functions ...................................................................................... 162
Conversion functions ........................................................................................................ 166
Date functions ................................................................................................................... 167
Percent (simple number) calculations ............................................................................... 174
Formula operators ............................................................................................................. 175
Nested formulas ................................................................................................................ 177
Formulas for chasm traps ................................................................................................. 178
Use pinboards
Basic pinboard usage ....................................................................................................... 179
Edit a pinboard
pinboard..................................................................................................................
.................................................................................................................. 184
Pinboard filters .................................................................................................................. 191
Schedule a pinboard job ................................................................................................... 196
Search actions within a pinboard
pinboard......................................................................................
...................................................................................... 199
Copy a pinboard
pinboard................................................................................................................
................................................................................................................ 200
Copy a pinboard or visualization link ................................................................................ 202
Reset a pinboard visualization .......................................................................................... 205
Start a slideshow
slideshow...............................................................................................................
............................................................................................................... 207
Use custom R scripts
About R in ThoughtSpot
ThoughtSpot....................................................................................................
.................................................................................................... 209
Create and share R scripts
scripts................................................................................................
................................................................................................ 212
Run prebuilt R scripts on answers .................................................................................... 221
Save and share R visualizations
visualizations........................................................................................
........................................................................................ 227
SpotIQ
What is SpotIQ .................................................................................................................. 232
101: Load and analyze data .............................................................................................. 234
101: Review and save insights .......................................................................................... 238
101: Do more with SpotIQ
SpotIQ.................................................................................................
................................................................................................. 243
Best SpotIQ Practices
Practices.......................................................................................................
....................................................................................................... 250
Custom SpotIQ analysis
analysis....................................................................................................
.................................................................................................... 253
Advanced R Customizations ............................................................................................. 258
Work with data
Understand data sources
sources..................................................................................................
.................................................................................................. 265
Create and load CSV Files ................................................................................................ 267
Append data through the UI
UI..............................................................................................
.............................................................................................. 270
support@thoughtspot.com
iii
ThoughtSpot Users Guide
February 07, 2019
View a data profile
profile.............................................................................................................
............................................................................................................. 271
Date and currency format settings
settings....................................................................................
.................................................................................... 272
Share your work
About sharing
sharing................................................................................................................
................................................................................................................ 274
Share a pinboard
pinboard...........................................................................................................
........................................................................................................... 275
Share answers
answers...............................................................................................................
............................................................................................................... 279
Share uploaded data
data.....................................................................................................
..................................................................................................... 282
Revoke access (unshare) .............................................................................................. 284
Use SearchIQ
About SearchIQ
SearchIQ.................................................................................................................
................................................................................................................. 287
Use SearchIQ for natural searches ................................................................................... 289
Teach SearchIQ your language
language.........................................................................................
......................................................................................... 292
Slack and ThoughtSpot
Slack and Spot
Spot..................................................................................................................
.................................................................................................................. 295
How to use Spot
Spot................................................................................................................
................................................................................................................ 296
More help and support
support.........................................................................................................
......................................................................................................... 300
Keyword reference ............................................................................................................... 305
TQL reference
reference.......................................................................................................................
....................................................................................................................... 312
tsload flag reference
reference.............................................................................................................
............................................................................................................. 322
tscli command reference
reference......................................................................................................
...................................................................................................... 325
Date and time formats reference
reference..........................................................................................
.......................................................................................... 347
Row level security rules reference
reference........................................................................................
........................................................................................ 350
Formula function reference .................................................................................................. 362
Alert codes reference ........................................................................................................... 377
User action codes reference ................................................................................................ 384
Error codes reference
reference...........................................................................................................
........................................................................................................... 386
Frequently asked questions ................................................................................................. 412
support@thoughtspot.com
iv
Introduction to the User Guide
February 07, 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
February 07, 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.
Label
Description
All time popular
Recently trending
Shows all time popular answers and pinboards by number of views. You
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
February 07, 2019
Label
Description
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.
Did you know?
Contains auto analysis results from SpotIQ. Visible only to users that have
the SpotIQ privilege.
ThoughtSpot Users Guide
Page 7
Finding your way around
February 07, 2019
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 or 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.
If SearchIQ has been enabled by your administrator, this label will say Search+ to differentiate it from
SearchIQ. In this case, you’ll go to the search bar on the homepage to use SearchIQ.
To learn more about this section, visit About search.
To learn more about SearchIQ, visit About SearchIQ.
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.
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.
SpotIQ
If SpotIQ has been enabled by your administrator, you can go here to view the status of your request
after you choose Auto Analyze or Custom Analyze
Analyze, and to see the results.
To learn more about this section, visit About SpotIQ.
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.
ThoughtSpot Users Guide
Page 8
Finding your way around
February 07, 2019
Help Icon
The help icon looks like two people. You can find information and support resources for ThoughtSpot
here. There are 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.
To learn more about this section, visit More help and support.
User Icon
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.
Related information
Set your ThoughtSpot locale
ThoughtSpot Users Guide
Page 9
ThoughtSpot browser access
February 07, 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.
Sign in
To sign 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
In.
ThoughtSpot Users Guide
Page 10
ThoughtSpot browser access
February 07, 2019
Sign out
Once you’re done with your search session, you can optionally sign out of ThoughtSpot. To sign out of
ThoughtSpot from a browser:
1. Click your user icon at the top right hand corner of the screen.
2. Click Sign out
out.
ThoughtSpot Users Guide
Page 11
About your user profile
February 07, 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 UI 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
da-DK
Dansk (beta)
de-DE
Deutsche
en-CA
English (Canada)
en-GB
English (United Kingdom)
en-US
English (United States)
es-US
Español (latín)
es-ES
Español (España - beta)
fr-CA
Français (Canada)
fr-FR
Français (France)
it-IT
Italiano (beta)
nl-NL
Nederland (beta)
ThoughtSpot Users Guide
Page 12
About your user profile
Locale
Language
nb-NO
Norsk (beta)
pt-BR
Português (Brazil)
pt-PT
Português (Portugal - beta)
fi-FI
Suomi (beta)
sv-SE
Svenska (beta)
zh-CN
中文(简体)
ja-JP
日本語
February 07, 2019
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. (A keyword reference
for all supported languages is included in this documentation under “Keywords in Other Languages”.)
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 .
How other users see you
You can change your picture by clicking Upload Picture
Picture. The system accepts GIF , BMP , JPEG , and
PNG files that do not exceed 4MB in size.
ThoughtSpot Users Guide
Page 13
About your user profile
February 07, 2019
SpotIQ preferences and email notifications
You can specify email notifications behavior along with exclude parameters and threshold settings used
for your SpotIQ analyses.
You can change your SpotIQ basic preferences by checking or unchecking the email and exclude
preferences for analyses.
Click Insight Threshold Settings to further refine parameters SpotIQ will use.
ThoughtSpot Users Guide
Page 14
About your user profile
February 07, 2019
These parameters and threshold settings are a subset of those available on the SpotIQ Customize
analysis dialog. If you set them here, the settings will persist for all your SpotIQ analyses including when
you run custom analyses, unless you explicitly reset options for a custom analysis.
Logging out
Click Profile > Sign out to log out of ThoughtSpot, and return to the sign in page.
ThoughtSpot Users Guide
Page 15
Understanding privileges
February 07, 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
Can administer
ThoughtSpot
Can manage Users and Groups and has view and edit access to all data.
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 Actions
> Upload data
data.
Can download data
Can download data from search results and pinboards.
Can share with all
users
Can see the names of and share with users outside of the groups the user
belongs to. Members of groups with this privilege can also share with
groups marked as NOT SHAREABLE
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
worksheet. Can also use
ThoughtSpot Data Connect, if it is enabled on your cluster.
Can use experimental
features
Can access trial and experimental features that ThoughtSpot makes available to early adopters.
Can invoke Custom R
Analysis
Can access R scripts to further explore search answers. Includes options
to invoke R scripts on visualizations, create and share custom scripts, and
share the results of R analysis as answers and pinboards.
Can schedule pinboards
Can create pinboard schedules and edit their own scheduled jobs.
ThoughtSpot Users Guide
Page 16
Understanding privileges
February 07, 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 privilege Can administer ThoughtSpot can grant this privilege.
The following table shows the intersection of user privilege and ability:
ThoughtSpot Users Guide
Page 17
The following table shows the intersection of user privilege and ability:
Can Administer
and Bypass RLS
Can Auto-Analyze
(SpotIQ privilege)
Can share with all
users
Can manage data
Can download data
Can upload user
data
Can administer
ThoughtSpot
N
N
N
N
Y
N
N
Y
N
N
N
N
Y
N
N
Y
N
N
N
N
Y
N
N
Y
N
N
N
N
Y
N
Y
Y
N
N
N
N
N
Y
N
Y
Y
N
N
Y
Y
Y
Y
Y
N
N
N
Y
N
N
N
Y
N
N
N
N
N
N
N
Y
N
Y
N
N
Y4
N
Y3
Y2
Y4
N
Y4
Y4
Y4
Y4
Y4
Y
N
N
N
N
Y5
N
N
Y
N
N
N
N
Y
N
N
Y
N
N
N
N
N
N
N
Y
N
N
N
N
Y
N
N
Y
N
N
N
N
N
N
N
Y
N
N
Y
N
N
N
N
Y
ta
1
s
s
s
t
Da
s.
ip
up
c
ip
er
es
s
ze
d
l
r
ro
sh
ul
op
a
a
sh
us
ne
ly
S
o
r
e
r
r
t
n
o
G
l
n
e
C
W
na
S
on
al
pl
io
ul
.P
Da
ew
ta
in
tio
n
t
it
C
U
a
-A
ew
a
ol
Vi
RL
ed
ith
ith
de
Da
el
h
ad
C
el
Ed
ta
Vi
to
h
a
t
d
i
w
w
o
R
a
i
c
d
R
l
ge
e/
e
m
w
e
e
ify
D
S
Au
n
H
a
D
at
at
oa
w
ad
ar
ar
e
he
in
od
an
re
re
pl
rU
se
se
se
C
C
M
U
Do
Sh
Sh
M
C
Re
Se
Jo
Sc
U
U
U
None
Page 18
ThoughtSpot Users Guide
February 07, 2019
Understanding privileges
Table notes:
1.
2.
3.
4.
5.
ta
1
s
s
s
t
Da
s.
ip
up
c
ip
er
es
s
ze
d
e
r
ro
sh
ul
op
a
a
sh
us
n
ly
S
ol
r
e
r
r
t
n
o
G
l
n
e
C
W
na
S
on
al
pl
ul
.P
Da
ew
ta
in
tio
n
tio
i
it
C
d
U
a
-A
ew
a
ol
V
RL
ith
ith
de
Da
el
ad
C
el
Ed
ta
Vi
to
he
a
th
d
i
w
w
o
R
a
i
c
d
R
l
y
ge
e/
e
m
f
w
e
e
i
D
S
Au
n
H
a
D
at
at
oa
w
ad
ar
ar
e
he
in
od
an
re
re
pl
rU
se
se
se
C
C
M
U
Do
Sh
Sh
M
C
Re
Se
Jo
Sc
U
U
U
Applies to non-owners only.
Any tables.
Author of at least one table in relationship.
Only when read permission for columns used in the relationship.
With edit permission.
Page 19
ThoughtSpot Users Guide
February 07, 2019
Understanding privileges
Understanding privileges
ThoughtSpot Users Guide
February 07, 2019
Page 20
Use stickers to organize
February 07, 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 the currently selected sticker, scroll to the bottom of the list, and click + Add
Add.
3. Type the name for the new sticker.
4. You can change the name of a sticker by clicking the edit icon next to its name.
ThoughtSpot Users Guide
Page 21
Use stickers to organize
February 07, 2019
5. You can change the color of a sticker by clicking the color circle 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.
3. Click the apply sticker icon and choose one from the list. You can apply as many stickers as
you like to an object.
ThoughtSpot Users Guide
Page 22
Use stickers to organize
February 07, 2019
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
Answers, Pinboards
Pinboards, or Data
Data.
2. Click Select sticker
sticker, and select the name of the sticker you want to filter by.
ThoughtSpot Users Guide
Page 23
What are Searches and Answers?
February 07, 2019
What are Searches and Answers?
Summary: You use search to 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.
You’ll see an answer in the form of a chart or a table. If you do not see an answer, press Enter on your
keyboard.
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:
carroll alice
Or consider Google. You wouldn’t type in:
Find me the largest city by population
You’d type:
ThoughtSpot Users Guide
Page 24
What are Searches and Answers?
February 07, 2019
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.
Related information
•
•
•
•
•
•
Choose a data source
Search bar features
Search suggestions
Search results and column types
Share an answer
About SearchIQ
ThoughtSpot Users Guide
Page 25
Start a new search
February 07, 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. Click the Data button, to the left of the search field.
3. Choose your sources by clicking Choose Sources
Sources.
To see details of all of the data, click EXPLORE ALL DATA
DATA.
a. Filter through all available sources by using the search bar or stickers.
ThoughtSpot Users Guide
Page 26
Start a new search
February 07, 2019
b. Select your sources.
c. Click CLOSE
CLOSE.
4. 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
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 27
Choose a data source
February 07, 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 28
Search bar features
February 07, 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.
Editing a search
You can edit a search without affecting existing search results. When you click a search phrase, it is
highlighted, and ThoughtSpot displays other suggestions from which you can choose to replace the
highlighted phrase. When you hover over a boxed phrase, you’ll see an x, which you can click to remove
it from the search. You can insert a new phrase in the middle of a search, by clicking between phrases
and entering the new phrase. You can even merge phrases without breaking the search. As you edit your
search, ThoughtSpot continuously generates new results.
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.
Quick select search results
When you type search phrases in the search bar, the first suggestion is automatically highlighted and
you can use tab to navigate further. In addition, after you type a phrase or a letter and press Enter
Enter, the
highlighted suggestion is automatically selected. Suggestions can be an attribute, measures, value,
keyword, historic query, or exactly what you typed as the search phrase. You can also press Enter or
Tab to select the first suggestion. If there are no suggestions, the suggestion list will not be displayed.
Historic suggestions always display on top with the first suggestion highlighted as default.
ThoughtSpot Users Guide
Page 29
Search bar features
February 07, 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 30
Search bar features
February 07, 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 31
Search suggestions
February 07, 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.
UBR based on search patterns makes ThoughtSpot more valuable over time. Search suggestions
become more helpful the more searches you complete.
ThoughtSpot Users Guide
Page 32
Search suggestions
February 07, 2019
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.
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 33
Search results and column types
February 07, 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
Query details button on the right-hand side of the screen to open the Query details panel.
ThoughtSpot Users Guide
Page 34
Search results and column types
February 07, 2019
This panel shows the measures that 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 35
Last data refresh time
February 07, 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 36
Last data refresh time
ThoughtSpot Users Guide
February 07, 2019
Page 37
Work with Answers
February 07, 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 and edit an answer
You can edit a copy of an answer if you would like to make edits without changing the original answer.
When saving, you can type in a different name for your copy.
1. Click Answers
Answers, on the top navigation bar.
2. On the answer list page, click the answer you would like to edit a copy of.
3. Click the ellipses icon
ThoughtSpot Users Guide
and select Copy and edit
edit.
Page 38
Work with Answers
February 07, 2019
A copy of the answer is displayed with “Copy of” added to the beginning of the title.
4. Make any changes you want to the answer.
5. Click the ellipses icon
and select Save
Save.
The Save Answer dialog box appears.
ThoughtSpot Users Guide
Page 39
Work with Answers
February 07, 2019
6. Change the name and description, as needed, and click SAVE
SAVE.
When you navigate back to the Answers page, your edited Answer will appear in the list.
Other features
At the bottom of the Answers page, you can an additional area, called SpotIQ Insights
Insights. This area is
derived from your original answer and you can select any of the insights to deepen your search.
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 40
Work with Answers
February 07, 2019
Copy and edit a SpotIQ Insight
You can edit a copy of a SpotIQ Insight if you would like to make edits without changing the original
insight. When saving, you can type in a different name for your copy.
1. Find the SpotIQ insight you want to edit and click it to open it as an answer.
2. Click the ellipses icon
and select Copy and edit
edit.
A copy of the answer is displayed with “Copy of” added to the beginning of the title.
3. Make any changes you want to the answer.
4. Click the ellipses icon
and select Save
Save.
The Save Answer dialog box appears.
5. Change the name and description, as needed, and click SAVE
SAVE.
ThoughtSpot Users Guide
Page 41
Results that are tables
February 07, 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.
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 Users Guide
Page 42
Results that are tables
February 07, 2019
ThoughtSpot automatically creates up to 20 headlines for each table. Your ThoughtSpot configuration
can be changed to accommodate more if needed.
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 the headline and click the Pin icon.
You can decide whether or not to display headlines in your table results. To customize headlines, choose
… > Customize summaries
summaries.
Table aggregate headline
The Table Aggregate headline option is available when an aggregate function is used either through a
formula or a search bar query like average of a measure. It recalculates the function for the entire table.
In such cases, Table Aggregate is shown by default in a headline below the table, instead of the “Avg”
option, which does a second level of aggregation on top of the existing aggregation.
In the following example, the table aggregate is shown as a result of the Average Profit formula sum (
profit ) / count ( ship mode ) which divides the total profit of each ship mode by the sum total
count for that ship mode. Table Aggregate, recalculates that function for the entire table taking the sum
total profits of all ship modes and dividing it by the sum total count of all ship modes, providing a table
aggregate average profit of 181. This a more useful result compared to the Avg headline option which
would simply sum the the average profit for all ship modes and divide it by the number of ship modes (3),
providing an average of 187.
ThoughtSpot Users Guide
Page 43
Results that are tables
ThoughtSpot Users Guide
February 07, 2019
Page 44
Overview of keyword searches
February 07, 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 reference section or in the help. Open the help by
selecting Help from 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 45
Overview of keyword searches
February 07, 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
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 .
ThoughtSpot Users Guide
Page 46
Overview of keyword searches
February 07, 2019
• 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 47
Time series analysis
February 07, 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)
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)
ThoughtSpot Users Guide
Page 48
Time series analysis
February 07, 2019
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.
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.
ThoughtSpot Users Guide
Page 49
Time series analysis
February 07, 2019
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:
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.
ThoughtSpot Users Guide
Page 50
Time series analysis
February 07, 2019
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
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 51
Search using growth over time
February 07, 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.
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.
ThoughtSpot Users Guide
Page 52
Search using growth over time
February 07, 2019
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.
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.
ThoughtSpot Users Guide
Page 53
Search using growth over time
February 07, 2019
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-overyear)
Growth query now supports more hierarchical date buckets and period calculations. The growth query
syntax is as follows:
growth of by
This table shows the possible buckets and the period-over keywords you can combine:
quarterly
monthly
weekly
daily
year-over-
year-over-year
year-over-year
year-over-year
hourly
year
quarter-overquarter
quarter-overquarter
month-overmonth
quarter-overquarter
month-overmonth
week-over-week
day-overday
For example, the following query growth of sales by date daily month-over-month :
ThoughtSpot Users Guide
Page 54
Search using growth over time
ThoughtSpot Users Guide
February 07, 2019
Page 55
Proximity searches "near" and "farther than"
February 07, 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
farther than n miles
km
km
meters
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:
ThoughtSpot Users Guide
Page 56
Proximity searches "near" and "farther than"
February 07, 2019
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 57
Understand filters
February 07, 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. You can define filters on tables, views and
worksheets. When you add a filter, it is applied to the table, view, or worksheet, so the result set only
shows rows that satisfy a set of parameters specified in the filter. You can also set filters that are
automatically used in every search you perform using a particular data source. For example, you can
exclude inactive customers records from your search result set. To avoid typing status = inactive
with every search you perform, you can use a filter. The complex the filter is, the more useful it is to set
on the data sources (e.g. status = inactive year = 2017 rating > 0 ).
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 grey 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 58
Understand filters
February 07, 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 choose
Filter from the column header or axis label. 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 ellipses icon (3 dots)
, in the column header or by clicking on a chart
axis, numeric columns and text columns provide you with the ability to include or exclude values, and a
checkbox selector for the 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 to include or exclude, 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.
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.
Cascading filters
If you want to apply a table filter whenever the table has been used (Views, Worksheets, Answers, and
Pinboards), use Cascading filters. When columns from that table are applied in a search, the table filter is
implicitly applied to the search. All worksheet filters are accessible from the query visualizer.
ThoughtSpot Users Guide
Page 59
Understand filters
February 07, 2019
Consider a table with a filter that is used in a worksheet. When a search uses that worksheet, the filters
are automatically applied as a part of the search.
Worksheet filters
A worksheet filter gets applied every time that worksheet is used. This means that for any search
involving a filtered worksheet, all worksheet filters are applied before the search is submitted. So results
are always filtered, even if the specific terms searched do not include the column(s) that are filtered.
ThoughtSpot Users Guide
Page 60
Add a filter to a table
February 07, 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, hover over the column header you want to filter, and
click the ellipses icon (3 dots)
.
2. Select Filter…
Filter….
3. Select the values to include in your answer.
ThoughtSpot Users Guide
Page 61
Add a filter to a table
February 07, 2019
4. If you want to exclude values, click Exclude and choose values to exclude.
ThoughtSpot Users Guide
Page 62
Add a filter to a table
February 07, 2019
5. Click DONE
DONE.
If there are too many values, you can use the filter search bar to find the ones you want.
ThoughtSpot Users Guide
Page 63
Add a filter to a chart
February 07, 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…
Filter….
2. Select the values you would like to include in your answer.
ThoughtSpot Users Guide
Page 64
Add a filter to a chart
February 07, 2019
3. If you want to exclude values, click Exclude and choose values to exclude.
ThoughtSpot Users Guide
Page 65
Add a filter to a chart
February 07, 2019
4. Click DONE
DONE.
If there are too many values, you can use the filter search bar to find the ones you want.
ThoughtSpot Users Guide
Page 66
Create a bulk filter
February 07, 2019
Create a bulk filter
You can create a bulk filter on a saved search. 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. In table view, select multiple cells by clicking and dragging.
2. Right-click and choose Copy to clipboard
clipboard.
3. Hover over the column header you want to filter, and click the three-dot icon (ellipses) icon.
4. Choose whether you want your bulk filter to Include or Exclude values.
5. Click Add values in bulk
bulk:
ThoughtSpot Users Guide
Page 67
Create a bulk filter
February 07, 2019
6. Paste the values into the bulk filter box.
ThoughtSpot Users Guide
Page 68
Create a bulk filter
February 07, 2019
7. Click Done
Done.
ThoughtSpot Users Guide
Page 69
Delete a filter
February 07, 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 70
Filter on null, blank, or empty values
February 07, 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}
{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}
{blank}, but if you filter on {blank}
{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 to refer to the text
column which contains both NULL and blank values:
if ( strlen ( ) = 0 ) then if ( isnull ( ) ) then 'null' else 'empty' else
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”.
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 ( ) = 0 ) then null else
Use the filter you created instead of the original text column in your search to get the result you desire.
ThoughtSpot Users Guide
Page 71
Filter on null, blank, or empty values
February 07, 2019
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}
{blank}, which will act as a filter. Or you can filter by leftclicking on a {blank} value in your search result table, then right-clicking and selecting Show only
“{Blank}“
“{Blank}“.
ThoughtSpot Users Guide
Page 72
Other search actions
February 07, 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 73
Change result display options
February 07, 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. 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 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
Sort.
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
NO_BUCKET).
ThoughtSpot Users Guide
Page 74
Change result display options
February 07, 2019
Alternatively, you can group these MONTHLY
MONTHLY:
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 drop-down, below the column header. On a chart, you can
change this via the axis label.
ThoughtSpot Users Guide
Page 75
Change result display options
February 07, 2019
The bucket values are a subset of date and time period keywords. To change the date bucketing:
1.
2.
3.
4.
Go to the table or chart you want to change.
Locate the column or axis value with the date value you want to change.
Click the column’s bucket menu.
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 the visualization or table cell of interest
2. Select Exclude “value” or Include “value” if available.
ThoughtSpot Users Guide
Page 76
Show underlying data
February 07, 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. Then, you
can right-click any row and then click Show underlying data
data, to see each value which constitutes
revenue 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 the visualization or table cell of interest
2. Select Show underlying data
data.
A new window opens that displays a summary and the underlying data.
3. Optionally, choose to + ADD COLUMNS to add additional data.
ThoughtSpot Users Guide
Page 77
Show underlying data
February 07, 2019
4. Click CONFIRM CHANGES
CHANGES.
5. Click DOWNLOAD to download a CSV file of the data.
ThoughtSpot Users Guide
Page 78
Show underlying data
ThoughtSpot Users Guide
February 07, 2019
Page 79
See the search behind a result
February 07, 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 the visualization or table cell of interest, and select Drill down
down.
2. Click any of the listed data to recreate the search with that data included.
ThoughtSpot Users Guide
Page 80
Apply conditional formatting
February 07, 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.
2. Select Conditional Formatting
Formatting.
ThoughtSpot Users Guide
Page 81
Apply conditional formatting
February 07, 2019
3. Click + ADD FORMATTING in the Conditional Formatting window.
4. Define the sets of values and the color to use for each set.
5. Click Done after defining all of your conditional formatting sets.
ThoughtSpot Users Guide
Page 82
Apply conditional formatting
February 07, 2019
Note: If you change to a chart type, you will need to apply conditional formatting again. 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
Formatting.
2. Click + ADD FORMATTING in the Conditional Formatting window.
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.
4. Click Done after defining all of your conditional formatting ranges.
ThoughtSpot Users Guide
Page 83
Apply conditional formatting
February 07, 2019
Note: 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 84
Download your search
February 07, 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 the three-dot Actions icon, and do any of the following:
• For a table, choose Download as CSV
CSV, Download as PDF
PDF, or Download as XLSX
XLSX.
• For a chart, select Download
Download.
ThoughtSpot Users Guide
Page 85
Download your search
February 07, 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 86
Replay search
February 07, 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 screen recording of it and create your own ThoughtSpot training for your team.
• When viewing a chart or table, click the three-dot Actions icon and select Replay search
search.
The replay will start automatically. You can pause and resume it by clicking on it.
ThoughtSpot Users Guide
Page 87
Understand charts
February 07, 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.
To change the chart type of your answer:
1. Click Change visualization to get a palette of charts, maps, pivot table, and so on (scroll down
to see more.)
2. Click a different chart or visualization type.
ThoughtSpot Users Guide
Page 88
Understand charts
February 07, 2019
Note: Some chart types may be unavailable for you to select depending on the columns in 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
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
ThoughtSpot Users Guide
Page 89
Understand charts
February 07, 2019
There are three geo charts that let you visualize geographical data in ThoughtSpot.
• About sankey charts
Sankey charts show a flow from one set of values to another, usually with visual emphasis
(brighter colors or larger bandwidths) for comparison of the values (e.g., top cities in terms of
sales might be emphasized).
• 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.
Charts with multiple measures on the y-axis
You can have multiple measures on the y-axis of many charts, which is a great additional way of
presenting information in a chart.
Example of multiple measures on the y-axis of a stacked column chart.
Charts which support multiple measures on the y-axis:
•
•
•
•
•
•
•
•
•
•
Column
Stacked Column
Bar
Stacked Bar
Line
Area
Stacked Area
Waterfall
Line Column
Line Stacked Column
To learn more, see Stack multiple measures on the y-axis.
ThoughtSpot Users Guide
Page 90
Column charts
February 07, 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. You can toggle the options in styles to show Detailed Labels (summaries for each
section of each bar) and Total Labels (show the sum of the stacks at the top of each stack).
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.
ThoughtSpot Users Guide
Page 91
Column charts
February 07, 2019
Your search needs at least two attributes and one measure to be represented as a stacked column
chart.
ThoughtSpot Users Guide
Page 92
Bar charts
February 07, 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.
Stacked bar charts
The stacked bar chart is similar to the bar chart, but with one major difference. It includes a legend,
which divides each bar into additional sections by color.
Stacked bar charts are typically used when you want to compare aggregated data and the data that it
includes together. You can toggle the options in styles to show Detailed Labels (summaries for each
section of each bar) and Total Labels (show the sum of the stacks for each bar).
ThoughtSpot Users Guide
Page 93
Bar charts
February 07, 2019
It is important to note that stacked bar 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 bar chart.
ThoughtSpot Users Guide
Page 94
Line charts
February 07, 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 95
Pie charts
February 07, 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
Chart.
ThoughtSpot Users Guide
Page 96
Pie charts
February 07, 2019
Color customization of pie in pie charts
You can customize the colors of each pie in a pie chart using the Style widget.
1.
2.
3.
4.
5.
6.
Choose a pinboard that has a pie chart.
Click the Edit chart style (paintbrush icon) to open the Style widget.
From the Style widget, assign a color of your choice to each pie as listed in the widget.
Click … and choose Update to save the changes.
Click Close
Close.
Optionally, you can click Reset to use the default color.
ThoughtSpot Users Guide
Page 97
Area Charts
February 07, 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 98
Area Charts
February 07, 2019
Your search needs at least two attributes and one measure to be represented as a stacked area chart.
ThoughtSpot Users Guide
Page 99
Scatter charts
February 07, 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 100
Bubble charts
February 07, 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
configuration.
ThoughtSpot Users Guide
Page 101
Bubble charts
February 07, 2019
Your search needs at least one attribute and two measures to be represented as a bubble chart.
ThoughtSpot Users Guide
Page 102
Pareto charts
February 07, 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 103
Waterfall charts
February 07, 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 104
Treemap charts
February 07, 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
configuration.
ThoughtSpot Users Guide
Page 105
Treemap charts
February 07, 2019
Your search needs at least one attribute and two measures to be represented as a treemap chart.
ThoughtSpot Users Guide
Page 106
Line column charts
February 07, 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
configuration.
ThoughtSpot Users Guide
Page 107
Line column charts
February 07, 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.
You can choose to enable shared y-axis by clicking the link icon found under Edit chart configuration
configuration.
ThoughtSpot Users Guide
Page 108
Line column charts
ThoughtSpot Users Guide
February 07, 2019
Page 109
Funnel charts
February 07, 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 110
Geo charts
February 07, 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 bubble, geo heatmap
Can also be regions.
County
Geo area (default), geo bubble, geo heatmap
Only for counties in the United States.
Point
Geo bubble (default), geo
heatmap
Must use both latitude and longitude columns.
State
Geo area (default), geo bubble, geo heatmap
Only for states in the United States.
Zipcode
Geo bubble (default), geo
heatmap
Zip codes and zip codes +4 in the United
States.
Other sub-nation regions
Geo area (default), geo bubble, geo heatmap
The display will depend on the type of administrative 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.
ThoughtSpot Users Guide
Page 111
Geo charts
February 07, 2019
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.
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.
ThoughtSpot Users Guide
Page 112
Geo charts
February 07, 2019
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.
The value of each cell depends on the measure you choose under Edit char configuration
configuration.
ThoughtSpot Users Guide
Page 113
Geo charts
ThoughtSpot Users Guide
February 07, 2019
Page 114
Sankey charts
February 07, 2019
Sankey charts
Summary: The Sankey chart is a type of chart that contains both
columns and a special type of line chart.
Sankey diagrams illustrate a flow through a process or system. Transactional data is optimal for this type
of diagram. For example, financial transactions that take place as money moves through accounts or as
a product is process. Many marketing users are familiar with Sankey charts from using Google Analytics
to view sales conversions.
When you build a Sankey chart you need to provide at least 2 (two) attributes and one measure. Your xaxis attributes can contain at most 13 values, any more and you cannot view a SanKey chart.
ThoughtSpot Sankey charts are read from left to right. The width of the flow represents the measure, the
attributes or “steps” appear as solid bars:
The Austin Animal Center Outcomes data shows the outcome of processing for different breeds of
animal. The measure is the count of total animals. Looking at how an animal was classified when they
entered the system, this chart shows the outcome processing that took the animal out of the system.
By clicking on a flow, you can see the total animals in any flow. Many domestic short haired cats (over
10k) were transferred to other agencies. While all bats that came into the system were euthanized. There
were a surprising number of bats processed.
ThoughtSpot Users Guide
Page 115
Pivot table
February 07, 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 116
Pivot table
February 07, 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
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 117
Pivot table
February 07, 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 118
Pivot table
February 07, 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:
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.
ThoughtSpot Users Guide
Page 119
Pivot table
February 07, 2019
Toggle on the Heatmap mode found under Configuration Options to add color coordination to your data.
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 120
Change a chart
February 07, 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 121
Reorder labels on the axis or legend
February 07, 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.
Your chart reorganizes itself to reflect the new label order.
ThoughtSpot Users Guide
Page 122
Set the y-axis range
February 07, 2019
Set the y-axis range
Summary: On charts, you can manually configure the y-axis range to
be different from the search default. You can have multiple measures
on the y-axis of many charts.
You can manually set the y-axis range by using the Edit chart styles icon.
Setting the y-axis range
The style 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 styles
styles.
2. Under Y-Axis Range enter your preferred start and end values.
In this example, our original chart is showing sales values by department from 0 to over $10M.
We can enter a y-axis range of 5000000 to 9000000 to show only sales between $5M and
$10M.
The chart will reorganize itself to reflect the new y-axis range.
ThoughtSpot Users Guide
Page 123
Set the y-axis range
February 07, 2019
Create charts with multiple measures on the yaxis
You can have multiple measures on the y-axis of most (but not all) chart types. You can configure this on
the chart styles panel. To learn more, see these topics:
• Configure columns for X and Y axis
• Charts with multiple measures on the y-axis
ThoughtSpot Users Guide
Page 124
Hide and show values
February 07, 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.
ThoughtSpot Users Guide
Page 125
Hide and show values
February 07, 2019
3. On the chart, click the legend value you would like to hide. Click the hidden legend value
again to show it.
In the example below, we clicked northwest to hide it.
ThoughtSpot Users Guide
Page 126
Change chart colors
February 07, 2019
Change chart colors
Summary: You can change the colors used in a chart.
To change the colors used in a chart, use the color picker on the chart styles panel. You can set colors
for:
•
•
•
•
bars, lines, areas, bubbles, maps, and other visuals on charts
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.
Set colors on a chart
1. While viewing your search or answer as a chart, click Edit chart styles (
) to open the
Styles panel.
2. On the chart, click the color icon of the label or legend value you would like to change the
color of.
ThoughtSpot Users Guide
Page 127
Change chart colors
February 07, 2019
3. Use the color picker to choose a new color to represent that value.
You can also enter a HEX value directly.
ThoughtSpot Users Guide
Page 128
Change chart colors
February 07, 2019
Your changes are saved immediately.
4. Click the X at top right to dismiss the styles panel.
Set pie chart slice colors
To customize the colors of each slice in a pie chart.
1. While viewing your search or answer as a pie chart, click Edit chart styles (
) to open
the Styles panel.
2. Assign a color of your choice to each pie slice.
ThoughtSpot Users Guide
Page 129
Change chart colors
1. Click
February 07, 2019
and choose Update to save the changes.
2. Click Close.
Optionally, you can click Reset to use the default colors.
ThoughtSpot Users Guide
Page 130
Additional chart options
February 07, 2019
Additional chart options
Summary: On charts, you can configure data labels, grid lines,
regression lines, legends, values for x or y axis, and lock or unlock.
Some charts have additional options under Chart Styles and Configuration Options that are covered in
each chart type topic.
Show detail labels
To show detail labels:
1. While viewing your search or answer as a chart, click Edit chart styles on the right.
2. Select Detail Labels
Labels.
ThoughtSpot Users Guide
Page 131
Additional chart options
February 07, 2019
Show rounded or non-rounded numbers
You can toggle this option off to show non-rounded numbers.
1. While viewing your search or answer as a chart, click Edit chart styles on the right.
2. Click Rounded Numbers to toggle on or off.
By default, charts with data labels enabled show rounded numbers on chart labels.
When you uncheck Rounded Numbers
Numbers, data labels, X and Y axes, and tooltips show precise,
non-rounded numbers out to the furthest decimal or integer, based on the underlying
worksheet format.
Show data markers
To show data markers:
1. While viewing your search or answer as a chart, click Edit chart styles on the right.
2. Select Data Markers
Markers.
ThoughtSpot Users Guide
Page 132
Additional chart options
February 07, 2019
Add regression line
Note: To add a regression line, you need a search with only one attribute and one measure.
Otherwise, this option will show as disabled; i.e., greyed out on the styles panel. As soon as you
modify the search to contain a single measure and attribute, the regression line option will be
clickable.
1. While viewing your answer as a chart, click Edit chart styles
styles.
2. Select Regression line
line.
You can show regression lines on most types of charts (bar, stacked bar, line, bubble, and so on). In the
examples below, sales is the measure and department is the attribute.
ThoughtSpot Users Guide
Page 133
Additional chart options
February 07, 2019
Display gridlines
Charts with X and Y axis can display gridlines. To display them:
1. Choose Edit chart styles
styles.
2. Select one or both of the gridline options.
ThoughtSpot Users Guide
Page 134
Additional chart options
February 07, 2019
Configure columns for X and Y axis
You can specify which fields to show on the X axis and Y axis of a chart.
1. Click Edit chart configuration on the right.
2. Click into the X or Y axis field and select the column used in the search that you want on a
particular axis.
ThoughtSpot Users Guide
Page 135
Additional chart options
February 07, 2019
Stack multiple measures on the y-axis
You can have multiple measures on the y-axis of most (but not all) chart types, as follows:
1.
2.
3.
4.
Create a chart.
Click Edit chart configuration on the right.
Click into the Y-Axis field and start typing the name of a measure used in the search.
Select the measure you want.
The chart updates to show multiple measures on the Y-Axis.
• If your original chart had a legend, you will get a message saying “When there are
multiple columns on the y-axis, you cannot add a legend. is already in
use.” If so, remove the legend and the chart will update to show multiple measures
on the y-axis.
• In some cases, the y-axis measures will show one on either side of the chart (left
and right) instead of stacked on the same side, depending on the parameters of
the analysis.
• For a list of chart types to which this applies, see Charts with multiple measures on
the y-axis.
Add columns to a chart legend
You can add to or edit the legend from the chart configuration panel.
1. Click Edit chart configuration on the right.
2. Click into the legend field to add one or more columns used in the search.
ThoughtSpot Users Guide
Page 136
Additional chart options
February 07, 2019
Your changes are saved automatically.
3. View the updated chart.
ThoughtSpot Users Guide
Page 137
Additional chart options
February 07, 2019
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.
Related information
Change chart colors
ThoughtSpot Users Guide
Page 138
Zoom into a chart
February 07, 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 style on the right.
2. Click Select an area
area.
3. Select an area on your chart to zoom into by clicking and dragging your mouse.
ThoughtSpot Users Guide
Page 139
Zoom into a chart
February 07, 2019
Your chart will be reconfigured to only show the selected area.
4. If you would like to return to the original chart view, click Reset zoom
zoom.
ThoughtSpot Users Guide
Page 140
Understand formulas in searches
February 07, 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 rowwise) 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.
• 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.
Text formulas are also available. These are covered in the comprehensive Formula function reference
reference,
which provides brief descriptions and examples for all types of formulas. The above topics explain
concepts and give step-by-step instructions of how to work with formulas, whereas the reference is a
quick cheat sheet.
ThoughtSpot Users Guide
Page 141
Add a formula to a search
February 07, 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.
How to add a formula
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 Table View
View.
3. In the upper-right side of the table, click the three-dot Actions icon and select Add formula
formula.
4. Name and enter your formula in the Formula Builder.
ThoughtSpot Users Guide
Page 142
Add a formula to a search
February 07, 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 Formula Assistant.
6. If you want to change what your formula returns, use the Advanced settings
settings. Depending on
your formula, you may be able to change:
• Data type
• Measure or attribute
ThoughtSpot Users Guide
Page 143
Add a formula to a search
February 07, 2019
• Aggregation
7. Name the formula by clicking its title and typing the new name. Click Save
Save.
Related information
Formula function reference
ThoughtSpot Users Guide
Page 144
View or edit a formula in a search
February 07, 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, click the three-dot
Actions icon and select Edit
Edit.
2. Scroll down to the bottom of the Columns listing. You will see a data source called Formulas
Formulas.
3. Expand Formulas
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. View or edit your formula in the Formula Builder.
ThoughtSpot Users Guide
Page 145
View or edit a formula in a search
February 07, 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. If you edited your formula, click Save to save your changes. Otherwise, click Cancel
Cancel.
ThoughtSpot Users Guide
Page 146
Overview of aggregate formulas
February 07, 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
Assistant. Aggregation functions have their own section.
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.
ThoughtSpot Users Guide
Page 147
Overview of aggregate formulas
February 07, 2019
• 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.
Flexible aggregation
The group_aggregate function makes it possible to aggregate measures at granularities that are
different from the dimensions or column groupings used in the search.
See Flexible aggregation to learn more about working with this formula.
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.
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 148
Overview of aggregate formulas
February 07, 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 149
Cumulative functions
February 07, 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 example: 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 example: 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 example: cumulative_min (revenue, campaign)
cumulative_sum
Takes a measure and one or more attributes. Returns the sum of the measure, accumulated by the attribute(s) in the order specified. For example:
cumulative_sum (revenue, order date)
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.
ThoughtSpot Users Guide
Page 150
Cumulative functions
2. In the upper-right side of the table, click the ellipses icon
February 07, 2019
and select Add formula
formula.
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 151
Cumulative functions
February 07, 2019
4. Name the formula by clicking its title and typing a new name.
5. Click Save
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 it to toggle between different aggregations.
ThoughtSpot Users Guide
Page 152
Moving functions
February 07, 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)
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)
ThoughtSpot Users Guide
Page 153
Moving functions
February 07, 2019
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.
2. In the upper-right side of the table, click the ellipses icon
ThoughtSpot Users Guide
and select Add formula
formula.
Page 154
Moving functions
February 07, 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)”.
ThoughtSpot Users Guide
Page 155
Moving functions
February 07, 2019
4. Name the formula by entering a title in the top field, and then click Save
Save.
The formula will appear in the search bar and in the table as its own column.
A box displaying the moving average within the entire table will appear at the bottom.
5. To use a different aggregation type, click the current aggregation type in the bottom of the
box and select another type.
ThoughtSpot Users Guide
Page 156
Flexible aggregation functions (group aggregate and filters)
February 07, 2019
Flexible aggregation functions (group
aggregate and filters)
You can use the group_aggregate function to aggregate measures at granularities that are different
from the dimensions that you have in columns used in the search.
How aggregation formulas work
Typically, the groupings and filters used in a formula will be the same as those of the columns used in
the search. The concept of a grouping equates to an attribute column.
For example, in the search “revenue ship mode”, revenue is the measure, and ship mode is the attribute
or grouping. The result of this search would show total revenue for each ship mode, e.g., a dollars for air,
r dollars for rail, t dollars for truck, s dollars for sea transport.
The aggregation formulas are described in Overview of aggregate formulas.
About flexible aggregation
Starting with version 5.0, ThoughtSpot provides for more flexible aggregation capability with a new
function called group_aggregate . You can use this formula to pin columns in a query at a granularity
different from the search bar query, using custom groupings and filters, rather than being bound to those
of the search terms/columns.
The formula uses a sub-query to perform the custom aggregation. If the sub-query is at a courser grain,
result column is simply added to the result of original query. Roll-up or reaggregation is used when the
sub-query is at a finer grain than the original query
This is particularly useful for comparison analysis.
You can specify to use the groups and filters from the query with query_groups and query_filters ,
respectively, and for query_groups you can also add or exclude some groups or filters.
You can use roll-up or reaggregation to fill in a column.
Examples
For a search on revenue monthly ship mode , you can add a formula to calculate yearly revenue by
ship mode:
group_aggregate(sum(revenue), {ship mode, year(commit date)},
{})
The same formula can also be written using query_groups() and query_filters() as following:
ThoughtSpot Users Guide
Page 157
Flexible aggregation functions (group aggregate and filters)
February 07, 2019
group_aggregate(sum(revenue), query_groups() - {commit date} +
{year(commit date)}, {})
This is helpful to include the main query groups that are not known at formula creation time. You can use
+/- to modify the set of groups included from the query.
Note: +/- is currently supported only for query_groups, not query_filters.
When group formula results are finer-grained
than the search
With the flexibility of groupings for group formulas, the computed column created by a formula can be
finer or courser grained than the search itself.
For example, you can have a search that shows total yearly sales and a formula that computes total
sales for each month (a finer-grained calculation than the search).
In such cases, if an additional aggregation is specified by the formula, the results get reaggregated.
Reaggregation can be applied in either of these ways:
• You can add an aggregation keyword just before a formula column in a search. For example,
in this search we’ve added the keyword min just before our formula for monthly_sales :
sum revenue yearly min monthly_sales
where, the monthly_sales formula is written as:
group_aggregate(sum(revenue), {start_of_month(dat
e)}, {})
• You can create a separate formula, such as in this search for:
sum revenue yearly min_monthly_sales
where, the min_monthly_sales formula is written as:
min(monthly_sales)
Alternatively, if no aggregation is specified, then the search query also inherits the formula groupings, as
in this search:
sum revenue yearly monthly_sales
where, the original query is computed at a monthly grain instead of yearly.
ThoughtSpot Users Guide
Page 158
Flexible aggregation functions (group aggregate and filters)
February 07, 2019
Reaggregation scenarios
Some scenarios require aggregation on an already aggregated result.
For example, computing minimum monthly sales per ship mode, requires two aggregations:
• the first aggregation of sum to compute total monthly sales per ship mode.
• the second aggregation of min to compute minimum sale that happened for any given month
for that ship mode.
An example of this is this search:
ship mode min monthly_sales
where the formula monthly_sales is written as:
group_aggregate(sum(revenue), query_groups() + {start_of_mont
h(date)}, {})
Groups and filters
Flexible group aggregate formulas allow for flexibility in both groupings and filters. The formulas give you
the ability to specify only groupings or only filters.
Related information
• For more examples of flexible aggregation, see the group_aggregate function under
“Aggregate functions” in the Formula function reference.
• To learn about aggregation formulas in general, see Overview of aggregate formulas and
Group aggregation functions
ThoughtSpot Users Guide
Page 159
Group aggregation functions
February 07, 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_ . The group
aggregation functions are the following:
Function
group_average
Description
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)
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)
ThoughtSpot Users Guide
Page 160
Group aggregation functions
Function
group_stddev
February 07, 2019
Description
Takes a measure and one or more attributes. Returns the standard deviation 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 measure 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)
Flexible aggregation
The group_aggregate function gives you more control over aggregation and filtering.
See Flexible aggregation to learn more about specifying query_groups with this formula.
ThoughtSpot Users Guide
Page 161
Filtered aggregation functions
February 07, 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, )
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:
ThoughtSpot Users Guide
Page 162
Filtered aggregation functions
Function
sum_if(region=’west’,
revenue)
count_if(region
=’west’, region)
count_if(revenue >
100, red)
February 07, 2019
Examples
Only aggregate the revenue for the values corresponding to west region.
Only aggregate the region for the values corresponding to west region.
Count the number of times red appears when revenue was greater
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.
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:
(A vs B)
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 163
Filtered aggregation functions
February 07, 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:
ThoughtSpot Users Guide
Page 164
Filtered aggregation functions
February 07, 2019
Of course, you can compare across different columns as well:
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 165
Type conversion functions
February 07, 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
to_bool
Description
Returns the input as a boolean (true or false).
Examples
to_bool (0) = false
to_bool (married)
to_date
to_double
Accepts a date represented as an integer or text
string, and a second string parameter that can
include strptime date formatting elements. Replaces all the valid strptime date formatting elements with their string counterparts and returns
the result. Does not accept epoch formatted
dates as input.
Returns the input as a double.
to_date (date_sold, '%Y%m-%d')
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 convert a
date to a string, specify the date format you
want to use.
to_string (45 + 1) = '46'
to_string (revenue cost)
to_string
(date,('%m/%d/%y'))
ThoughtSpot Users Guide
Page 166
About date formulas
February 07, 2019
About date formulas
Date functions 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.
Date formulas
The date formulas include:
Function
add_days
Description
Returns the result of
adding the specified
number of days to
the given date.
Examples
add_days (01/30/2015, 5) = 02/04/
2015
add_days (invoiced, 30)
date
Returns the date
portion of a given
date.
date (home visit)
day
Returns the number
(1-31) of the day for
the given date.
day (01/15/2014) = 15
day_number_of_quarter
day_number_of_week
ThoughtSpot Users Guide
Returns the number
of the day in a quarter for a given date.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the number
(1-7) of the day in a
week for a given
date with 1 being
Monday and 7 being
Sunday.
day (date ordered)
day_number_of_quarter (01/30/2015)
= 30
day_number_of_quarter (01/30/2015,
'fiscal') = 91
day_number_of_week(01/15/2014) = 3
day_number_of_week (shipped)
Page 167
About date formulas
Function
day_number_of_year
day_of_week
diff_days
diff_time
February 07, 2019
Description
Returns the number
(1-366) of the day in
a year from a given
date. Add an optional second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the day of
the week for the given date.
Subtracts the second date from the
first date and returns
the result in number
of days, rounded
down if not exact.
Subtracts the second date from the
first date and returns
the result in number
of seconds.
Examples
day_number_of_year (01/30/2015) =
30
day_number_of_year ( 01/30/2015,
'fiscal' ) = 275
day_number_of_year (invoiced)
day_of week (01/30/2015) = Friday
day_of_week (serviced)
diff_days (01/15/2014, 01/17/2014)
= -2
diff_days (purchased, shipped)
diff_time (01/01/2014, 01/01/2014)
= -86,400
diff_time (clicked, submitted)
hour_of_day
Returns the hour of
the day for the given
date.
hour_of_day (received)
is_weekend
Returns true if the
given date falls on a
Saturday or Sunday.
is_weekend (01/31/2015) = true
Returns the month
from the given date.
month (01/15/2014) = January
month
ThoughtSpot Users Guide
is_weekend (emailed)
month (date ordered)
Page 168
About date formulas
Function
month_number
month_number_of_quarter
February 07, 2019
Description
Returns the number
(1-12) of the month
from a given date.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the month
(1-3) number for the
given date in a quarter. Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Examples
month_number (09/20/2014) = 9
month_number ( 09/20/2014, 'fiscal'
) = 5
month_number (purchased)
month_number_of_quarter (02/20/
2018) = 2
month_number_of_quarter (02/20/
2018,'fiscal' ) = 1
now
Returns the current
timestamp.
now ()
quarter_number
Returns the number
(1-4) of the quarter
associated with the
given date. Add an
optional second parameter to specify
'fiscal' or 'calendar'
dates. Default is
'calendar'. (In examples, start of fiscal
year is set to May
01.)
quarter_number ( 04/14/2014) = 2
ThoughtSpot Users Guide
quarter_number ( 04/14/2014, 'fiscal' ) = 4
quarter_number ( shipped )
Page 169
About date formulas
Function
start_of_month
start_of_quarter
start_of_week
start_of_year
time
ThoughtSpot Users Guide
February 07, 2019
Description
Returns MMM yyyy
for the first day of
the month. Your installation configuration can override
this setting so that it
returns a different
format such as MM/
dd/yyyy . Speak
with your
ThoughtSpot administrator for information on doing this.
Returns the date for
the first day of the
quarter for the given
date. Add an optional second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the date for
the first day of the
week for the given
date.
Returns the date for
the first day of the
year for the given
date. Add an optional second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the time
portion of a given
date.
Examples
start_of_month ( 01/31/2015 ) = Jan
FY 2015
start_of_month (shipped)
start_of_quarter ( 04/01/2014) =
Apr 2014
start_of_quarter ( 04/01/2014, 'fiscal') = Feb 2014
start_of_quarter (sold)
start_of_week ( 06/01/2015 ) = 05/
30/2015 Week
start_of_week (emailed)
start_of_year (04/01/2014) returns
Jan 2014
start_of_year (04/01/2014, 'fiscal') returns May 2013
start_of_year (joined)
time (3/1/2002 10:32) = 10:32
time (call began)
Page 170
About date formulas
Function
week_number_of_month
week_number_of_quarter
week_number_of_year
year
ThoughtSpot Users Guide
February 07, 2019
Description
Examples
Returns the week
number for the given
date in a month.
3
Returns the week
number for the given
date in a quarter.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the week
number for the given
date in a year. Add
an optional second
parameter to specify
whether a 'fiscal' or
'calendar' year is
used to calculate
the result. Default is
'calendar'. (In examples, start of fiscal
year is set to May
01.)
Returns the year
from a given date.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01. Per standard convention, the
fiscal year is defined
by the year-end
date.)
week_number_of_month(03/23/2017) =
week_number_of_quarter (04/03/2017)
= 1
week_number_of_quarter (04/03/2017,
'fiscal') = 10
week_number_of_year (01/17/2014) =
3
week_number_of_year ( 01/17/2014,
'fiscal') = 38
year (01/15/2014) = 2014
year (12/15/2013, 'fiscal' ) = 2014
year (date ordered)
Page 171
About date formulas
February 07, 2019
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)
• 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
Fiscal and Gregorian calendars
For the following date formulas, you can further specify either fiscal or Gregorian calendar on
which to base date calculations. (If you do not specify a calendar type, the formula will default to
standard Gregorian, with the year starting in January.)
•
•
•
•
•
•
•
•
•
•
day_number_of_quarter
day_number_of_year
month_number
month_number_of_quarter
quarter_number
start_of_quarter
start_of_year
week_number_of_quarter
week_number_of_year
year
Your ThoughtSpot administrator and ThoughtSpot Support can set up a fiscal calendar year to start on
any month. If the fiscal year is not explicitly configured in the system, fiscal defaults to January,
the same as the Gregorian calendar .
For example, the formula month_number_of_quarter (05/01/2014) would return 2 based on the
default Gregorian calendar, whereas the formula month_number_of_quarter (05/01/2014,
'fiscal') would return 1 if your administrator has configured the fiscal calendar to start at May.
ThoughtSpot Users Guide
Page 172
About date formulas
February 07, 2019
Related information
• Date functions in the Formula function reference
• Set up a fiscal calendar year
ThoughtSpot Users Guide
Page 173
Percent (simple number) calculations
February 07, 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
*
Returns the result of multiplying both numbers.
•
•
3 * 2 = 6
Returns the result of adding both numbers.
•
•
1 + 2 = 3
Returns the result of subtracting the second number from the first.
•
•
3 - 2 = 1
Returns the result of dividing the first number by the second.
•
•
6 / 3 = 2
+
-
/
Examples
price * taxrate
price + shipping
revenue - tax
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
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 174
Formula operators
February 07, 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.
Formula operators
The operators include:
Operator
Description
Examples
Returns true when both conditions
are true, otherwise returns false.
and
(1 = 1) and (3 > 2) = true
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,
otherwise returns the second.
ifnull (cost, 'unknown')
isnull
Returns true if the value is null.
isnull (phone)
not
Returns true if the condition is false,
otherwise returns false.
not (3 > 2) = false
Returns true when either condition is
true, otherwise returns false.
(1 = 5) or (3 > 2) = true
or
not (state = 'texas')
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
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:
ThoughtSpot Users Guide
Page 175
Formula operators
February 07, 2019
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.
Related information
• Operators in the Formula function reference
ThoughtSpot Users Guide
Page 176
Nested formulas
February 07, 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 177
Formula support for chasm trap schemas
February 07, 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 178
Basic pinboard usage
February 07, 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. They 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 drill down on the visualizations.
Create a pinboard
To create a pinboard:
1. Click Pinboards
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
Create.
ThoughtSpot Users Guide
Page 179
Basic pinboard usage
February 07, 2019
Add an answer to a pinboard
Instead of saving an answer you can add it to a pinboard. To add an answer to a pinboard:
1. While viewing your answer of interest, click the Pin icon at the top right of the answer.
2. In the Add to pinboard dialog box, click the + icons next to the pinboards you would like to
add your answer to.
You can also select Create new pinboard at the top of the list to create a new pinboard, then
add your answer to it.
ThoughtSpot Users Guide
Page 180
Basic pinboard usage
February 07, 2019
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:
• Click the ellipses icon
and select Download as PDF
PDF.
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
Info.
ThoughtSpot Users Guide
Page 181
Basic pinboard usage
February 07, 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.
Other actions are available on a pinboard display itself. Some actions always appear, while others
appear only when you hover over specific locations of the pinboard. This diagram displays active action
areas on a pinboard.
ThoughtSpot Users Guide
Page 182
Basic pinboard usage
February 07, 2019
If you make a change to a pinboard, the system recognizes this and displays an alert message with a
Save changes button at the top of the page. Click this button to make your changes permanent.
ThoughtSpot Users Guide
Page 183
Edit the layout of a pinboard
February 07, 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’s three-dot Actions menu 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 Pinboards
Pinboards, on the top navigation bar.
2. On the pinboards page, click the pinboard you would like to edit.
3. Drag and drop your visualizations on the layout grid to reorder your pinboard. Resize a
visualization by choosing a predetermined size under the ellipses icon
for the
visualization.
ThoughtSpot Users Guide
Page 184
Edit the layout of a pinboard
February 07, 2019
4. Save your pinboard by clicking the ellipses icon
and selecting Save
Save.
Change the orientation of a chart or table
You can change the orientation of a chart or table on a pinboard. To do this:
1. Navigate to the chart or table.
2. Click the ellipses icon
for the chart or table.
ThoughtSpot displays the drop-down menu.
ThoughtSpot Users Guide
Page 185
Edit the layout of a pinboard
February 07, 2019
The last item shows different possible orientations, with the current orientation selected.
3. Select a new orientation.
4. Click the ellipses icon
and select Save
Save.
Delete a visualization from your pinboard
To delete a visualization:
1. Click Pinboards
Pinboards, on the top navigation bar.
2. On the pinboard list page, click the pinboard that contains the visualization you would like to
delete.
3. In the upper-right corner of the visualization, click the ellipses icon
ThoughtSpot Users Guide
and select Delete
Delete.
Page 186
Edit the layout of a pinboard
4. Save your pinboard by clicking the ellipses icon
February 07, 2019
and selecting Save
Save.
Copy and edit a visualization from your
pinboard
To edit a copy of a visualization:
ThoughtSpot Users Guide
Page 187
Edit the layout of a pinboard
February 07, 2019
1. Click Pinboards
Pinboards, on the top navigation bar.
2. On the pinboard list page, click the pinboard that contains the visualization you would like to
edit a copy of.
3. Find a visualization in the pinboard you want to edit.
4. In the upper-right corner of the visualization, click the ellipses icon
and select Copy
and edit
edit.
A copy of the answer that was used to create the visualization is displayed with “Copy of”
added to the beginning of the title.
5. Make any changes you want to the visualization.
6. Click the ellipses icon
and select Save
Save.
The Save Answer dialog box appears.
ThoughtSpot Users Guide
Page 188
Edit the layout of a pinboard
February 07, 2019
7. Change the name and description, as needed, and click SAVE
SAVE.
When you navigate back to the Answers page, your edited Answer will appear in the list.
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 ellipses icon
ThoughtSpot Users Guide
.
Page 189
Edit the layout of a pinboard
February 07, 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
Pinboard filters
February 07, 2019
Pinboard filters
Filters, including bulk filters and exclude fiters, 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 ellipses icon
ThoughtSpot Users Guide
, and select Add filters
filters.
Page 191
Pinboard filters
February 07, 2019
2. In the populated columns menu, click the Add filter icon next to the column you would like to
filter on.
3. Select the values to include in your answer.
ThoughtSpot Users Guide
Page 192
Pinboard filters
February 07, 2019
4. If you want to exclude values, click Exclude and choose values to exclude.
ThoughtSpot Users Guide
Page 193
Pinboard filters
February 07, 2019
5. Click Done
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 194
Pinboard filters
February 07, 2019
Or delete it:
ThoughtSpot Users Guide
Page 195
Schedule a pinboard job
February 07, 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 either be an administrator or have the
schedule pinboard privilege, and at least edit-only and view-only access to the pinboard.
To schedule a pinboard:
1. Sign in to ThoughtSpot from a browser.
2. Click Pinboards
Pinboards, on the top navigation bar.
3. Select the pinboard you want to create a schedule for.
4. Click the ellipses icon
and select Manage schedules to view all of the schedules set
for the pinboard.
5. Click + Schedule to add a new schedule.
ThoughtSpot Users Guide
Page 196
Schedule a pinboard job
February 07, 2019
On the Add a Schedule page, you create a new schedule for your pinboard.
6. Set the values for your schedule.
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.
ThoughtSpot Users Guide
Page 197
Schedule a pinboard job
Type
Gating
condition
February 07, 2019
CSV files provide all data for tables, with one attachment per table. Use
CSV files to perform further analysis offline. PDF files show all visualizations
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.
Write a statement that returns a single boolean value (true or false). For example, 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 formulas,
see the Formula function Reference.
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 198
Search actions within a pinboard
February 07, 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. Click the
three-dot Actions button to the upper-right of your visualization and select Edit
Edit.
You will now be in 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 199
Copy a pinboard
February 07, 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 Pinboards
Pinboards, on the top navigation bar.
2. On the pinboard list page, click the pinboard you would like to copy.
3. Click the ellipses icon
and select Make a copy
copy.
4. Give your pinboard a new name and description, and then click Save
Save.
ThoughtSpot Users Guide
Page 200
Copy a pinboard
ThoughtSpot Users Guide
February 07, 2019
Page 201
Copy a pinboard or visualization link
February 07, 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 signing in or via 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.
Copying a pinboard link
To copy the link for a pinboard:
1. Click Pinboards
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 the ellipses icon
and select Copy link
link.
4. Copy the pinboard link. The highlighted portion is the pinboard ID.
ThoughtSpot Users Guide
Page 202
Copy a pinboard or visualization link
February 07, 2019
Copying a visualization link
1. To copy an individual visualization link, click the ellipses icon
and select Copy link of
the visualization you would like to copy a link from.
2. Copy the visualization link. The highlighted portion is the visualization ID.
ThoughtSpot Users Guide
Page 203
Copy a pinboard or visualization link
ThoughtSpot Users Guide
February 07, 2019
Page 204
Reset a pinboard visualization
February 07, 2019
Reset a pinboard visualization
You can undo your edits to a pinboard visualization by resetting it.
Reset a pinboard 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 the ellipses icon
ThoughtSpot Users Guide
and selecting Save
Save.
Page 205
Reset a pinboard visualization
ThoughtSpot Users Guide
February 07, 2019
Page 206
Start a slideshow
February 07, 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 Pinboards
Pinboards, on the top navigation bar.
2. On the pinboard list page, click the pinboard you would like to present.
3. Click the ellipses icon
for the visualization you want to start the slideshow with and
select Present
Present.
4. Use the left and right arrow keys to navigate between your pinboard’s visualizations.
ThoughtSpot Users Guide
Page 207
Start a slideshow
February 07, 2019
5. Click the x at the top-right part of the screen or push the Esc key to exit the slideshow view.
ThoughtSpot Users Guide
Page 208
About R in ThoughtSpot
February 07, 2019
About R in ThoughtSpot
Summary: You can run an R analysis on your data, using
ThoughtSpot provided scripts, or custom scripts shared with your
team. R visualizations can be shared as answers and pinboards.
R is a popular open source programming language for statistical computing, machine learning, and AI.
ThoughtSpot makes R analysis available as a fully integrated feature in version 5.0
Using R in ThoughtSpot
While the ability to run custom R scripts on ThoughtSpot data was available in previous releases via
SpotIQ custom analysis, as of version 5.0 users with R privileges can now run R scripts directly on
search results.
Analysts and data scientists proficient in R can create and share custom scripts.
Users can leverage custom scripts and ThoughtSpot provided scripts, run pre-built R scripts on top of
their search results, and share R visualizations as answers and pinboards.
This topic explains how to use R in ThoughtSpot both from an end user and scripting perspective, but is
not meant as an R primer.
How to access R scripts
Users with R script privileges can click the R icon
on the toolbar for any search result (answer).
From here, you have options to write a custom script, or load a pre-built or ThoughtSpot provided script.
ThoughtSpot Users Guide
Page 209
About R in ThoughtSpot
February 07, 2019
Run pre-built R scripts
You don’t have to have a background in statistics or be an R programmer to run R analyses in
ThoughtSpot. You can use ThoughtSpot-provided scripts and share the R visualizations with others.
For more on how to run provided scripts, skip to Run pre-built R scripts on answers
Write your own R scripts in ThoughtSpot
If you know R, you can write your own custom scripts, share them as templates, test and run them on
your data in ThoughtSpot, and build up a shared library of R analyses, scripts, visualizations, and
pinboards.
Start with the topic on how to Create and share R scripts to learn more about writing R scripts in
ThoughtSpot, including a few particulars on syntax and column bindings.
To learn more about R programming in general, a good place to start is R Project for Statistical
Computing. Also, Anthony Chen’s blog post on Using R Analysis in ThoughtSpot for Time Series
Forecasting is a nice introduction to writing R scripts in ThoughtSpot.
ThoughtSpot Users Guide
Page 210
About R in ThoughtSpot
February 07, 2019
Related information
• Create and share R scripts
• Run pre-built R scripts on answers
• SpotIQ custom analysis
• Understand groups and privileges
• tscli rpackage
ThoughtSpot Users Guide
Page 211
Create and share R scripts
February 07, 2019
Create and share R scripts
Summary: You can create and share your custom R scripts in
ThoughtSpot.
Overview
Each ThoughtSpot cluster is capable of running an R analysis on your data. To perform your own R
analysis, start with a simple search and click the R icon on the right.
Use the Custom R Script dialog and settings to enter your script, set which columns to include for
analysis, and indicate what output data to expect from your script (PNG or CSV).
ThoughtSpot also supports the sharing of scripts among users to enable you to share your powerful R
analyses across the system, and allow others to run your scripts on different search results.
ThoughtSpot Users Guide
Page 212
Create and share R scripts
February 07, 2019
How it works
An R script in ThoughtSpot is based off of your original search (both the data and the schema), using the
columns you select for the analysis. You can select all columns used in the original search or a subset of
those columns, depending on the script.
ThoughtSpot auto generates objects with variable names by which you can refer to data elements in
your script.
You can refer to the data in the selected columns by using vectors that ThoughtSpot generates for these
before the script is run. The first column you select has the variable name .param0 , the second column
you select has the variable name .param1 , and so on. This naming scheme continues if there are more
columns. (You can click the question mark icon
next to “Select
Select columns for R analysis
analysis” to get a
visual mapping of how the columns are bound to variables in R.)
ThoughtSpot also provides an automatically-generated data frame object, df , that contains all selected
column vectors. The data frame is R’s representation of a table (a 2D data structure containing rows and
columns).
When the script executes, it passes the information to the server to run the analysis, and displays the
answer as a visualization, in either PNG or CSV (table) format.
As shown in the examples below, you can chain R analyses together by running another R script on the
answer to a previous script.
Write a custom script
To add a custom R script, start by running a search, then click the R icon
on the toolbar.
Add your script into the Custom R Script dialog, and set the column bindings and output type
appropriately, as shown in the following examples.
ThoughtSpot Users Guide
Page 213
Create and share R scripts
February 07, 2019
For an R script to produce a meaningful output in ThoughtSpot, the script should generate a CSV or
PNG file. Output should be written to the token #output_file# . CSV output is rendered back as a
simple table in ThoughtSpot, PNG output is rendered back as a static PNG.
Basic R script to generate CSV data
This is an example of a basic R script that generates CSV data. (The df variable name must be lower
case, as shown.)
write.csv(df,
#output_file#)
The generated data is displayed back as a table when you run the analysis:
ThoughtSpot Users Guide
Page 214
Create and share R scripts
February 07, 2019
This basic script returns the exact same table results as if you did the query directly in ThoughtSpot and
selected the table view, barring some additional formatting you get for free on the search.
Basic R script to generate a PNG graphic
This is an example of a basic R script that generates PNG data as output.
png(#output_file#)
plot(.param0, .param1)
The generated data is displayed back as a static PNG when you run the analysis:
ThoughtSpot Users Guide
Page 215
Create and share R scripts
February 07, 2019
Column bindings and output file type
• Under Select column(s) for R analysis
analysis, you specify the data you want to send to R and how to
send it. If you do not make any choices here, all columns in the search are selected in the
order they appear in the search bar.
In the examples above, Year (Date) is .param0 , and Sales is .param1 . To verify this,
click the question mark icon next to Select columns for R analysis to see the “column
bindings”. Reordering the columns changes the column bindings/params.
• Under Output File Type Select PNG or CSV, depending on the output details and in your
script.
Options on scripts
You can click these icons in the R script dialog to get more options:
• The R script information icon
provides a basic reference guide for creating an R
analysis in ThoughtSpot.
• The ellipses icon (3 dots)
provides a menu with options to save or load a previously
saved R script, as well as share your R script with other users in the system.
• The arrow at the top right of the script dialog
opens a popout editor that gives you a
larger space in which to view and edit your R script.
• The question mark icon
next to “Select
Select column(s) for R analysis
analysis” provides a visual
mapping of how the columns are bound to variables in R.
ThoughtSpot Users Guide
Page 216
Create and share R scripts
February 07, 2019
K-Means clustering example scripts
This script loads the ggplot2 visualization package, labels the columns inside of the ThoughtSpot
generated data frame object ( df ), and runs a K-Means clustering algorithm.
library(ggplot2)
kmeansOutput <- kmeans(df[1:2], 3, nstart = 20)
kmeansOutput$cluster <- as.factor(kmeansOutput$cluster)
png(file=#output_file#, width=400, height=350, res=72)
print(ggplot(df, aes(.param0, .param1, color = kmeansOutput$clu
ster)) + geom_point())
When you run this script on the results of the original sales date search, you get the following
visualization as a PNG.
You can run another R script directly on this result to get CSV results:
kmeansOutput <- kmeans(df[1:2], 3, nstart = 20);
df$Cluster <- as.factor(kmeansOutput$cluster);
write.csv(df, file=#output_file#, row.names=FALSE);
The script for CSV output generates a table:
ThoughtSpot Users Guide
Page 217
Create and share R scripts
February 07, 2019
Save and share your script
To save a script, choose Save as from the options menu
of the script. After you name and save
it, your script will show in the Load scripts dialog.
ThoughtSpot Users Guide
Page 218
Create and share R scripts
To share a script, choose Share from the options menu
February 07, 2019
.
More script examples
For some more example scripts, check out the blog post on Using R Analysis in ThoughtSpot for Time
Series Forecasting, or load one of the ThoughtSpot provided scripts:
•
•
•
•
•
Binomial Logistic Regression
K-Means Clustering Plot
K-Means Clustering Table
Time Series Outlier Detection
Time Series Forecast
ThoughtSpot Users Guide
Page 219
Create and share R scripts
February 07, 2019
Related information
• Using R Analysis in ThoughtSpot for Time Series Forecasting (blog post by Antony Chen of
ThoughtSpot)
• R Project for Statistical Computing
ThoughtSpot Users Guide
Page 220
Run prebuilt R scripts on answers
February 07, 2019
Run prebuilt R scripts on answers
Summary: Anyone with R privileges can run an R analysis
ThoughtSpot using provided scripts, you don't need to be an expert.
If you have R privileges on your ThoughtSpot instance, you can run R analyses on search results, and
save and share the resulting visualization with others. The users you share visualizations with do not
need R privileges.
Run an R analysis
1. Click the R icon
on the toolbar for any search result (answer).
From here, you have options to write a custom script, or load a pre-built or ThoughtSpot
provided script.
2. In the Analyze dialog, click the ellipses icon
next to the Custom R Script panel, and
choose Load
Load.
ThoughtSpot Users Guide
Page 221
Run prebuilt R scripts on answers
February 07, 2019
This brings up a list of pre-built scripts, both provided by ThoughtSpot and any created by
programmers on your team.
ThoughtSpot Users Guide
Page 222
Run prebuilt R scripts on answers
February 07, 2019
3. Select a script, then choose the columns you want to include in the analysis and the output
file type (PNG or CSV).
Note that the output file type must match the script.
For example, if you select one of the ThoughtSpot provided time series scripts, the comment
at the top of the script provides guidance on what columns to select.
# NOTE: Only two columns are needed for this analysis.
# The first column should represent some date column
# and the second should be some numeric measure column.
Also, scroll through the script to identify whether it’s coded to produce graphical (PNG) or
tabular (CSV) output. The time series scripts are both set up to produce graphical output, as
indicated by a line like this at the end of the scripts.
png(#output_file#, width=1000);
print(img);
4. Select Run Analysis to execute the script.
ThoughtSpot Users Guide
Page 223
Run prebuilt R scripts on answers
February 07, 2019
Time Series Outlier Example
In this example, we ran an analysis for Time Series Outlier Detection on search results that show sales
totals by date.
Note that we included a date column and a measure, and selected PNG as the output to match what the
script requires. The original search could have had more columns than this, but you can always structure
the analysis properly by selecting only the date column and measure column you want to focus on.
In this case, no outliers were found, so the R visualization matches the original search result line graph.
Time Series Forecast Example
In this example, we ran a Time Series Forecast on the same search result.
ThoughtSpot Users Guide
Page 224
Run prebuilt R scripts on answers
February 07, 2019
Diverging Bars Example
Here is an example of taking a script found online and repurposing it for a use case in ThoughtSpot.
Antony Chen demo’ed this in a SpotOn webinar. You can find his full presentation on Custom R Scripts
and demo at SpotOn Learning: ThoughtSpot 5.0 BI and Data Science Features in the Community.
Consider this script, found on this website of Top 50 ggplot2 Visualizations - The Master List (With Full R
Code). A direct link to this script is here.
library(ggplot2)
theme_set(theme_bw())
# Data Prep
data("mtcars") # load data
mtcars$`car name` <- rownames(mtcars) # create new column for
car names
mtcars$mpg_z <- round((mtcars$mpg - mean(mtcars$mpg))/sd(mtcar
s$mpg), 2) # compute normalized mpg
mtcars$mpg_type <- ifelse(mtcars$mpg_z < 0, "below", "above")
# above / below avg flag
mtcars <- mtcars[order(mtcars$mpg_z), ] # sort
mtcars$`car name` <- factor(mtcars$`car name`, levels = mtcar
s$`car name`) # convert to factor to retain sorted order in pl
ot.
# Diverging Barcharts
ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
geom_bar(stat='identity', aes(fill=mpg_type), width=.5) +
scale_fill_manual(name="Mileage",
labels = c("Above Average", "Below Averag
e"),
values = c("above"="#00ba38", "below"="#f87
66d")) +
labs(subtitle="Normalised mileage from 'mtcars'",
title= "Diverging Bars") +
coord_flip()
You can modify the script above to support the phone sales use case discussed in the webinar.
In this script, mtcars is replaced with references to our phone sales ( df$Sales ) and car name is
replaced with Device Name both from the column data in the search example used in the webinar
demo. The script uses the ThoughtSpot data frame object ( df ), and adds two lines at the end to specify
output type as a png image.
ThoughtSpot Users Guide
Page 225
Run prebuilt R scripts on answers
February 07, 2019
library(ggplot2)
theme_set(theme_bw())
# Data Prep
df$sales_z <- round((df$Sales - mean(df$Sales))/sd(df$Sales),
2) # compute normalized mpg
df$sales_type <- ifelse(df$sales_z < 0, "below", "above") # ab
ove / below avg flag
df <- df[order(df$sales_z), ] # sort
df$`Device Name` <- factor(df$`Device Name`, levels = df$`Devic
e Name`) # convert to factor to retain sorted order in plot.
# Diverging Barcharts
img <- ggplot(df, aes(x=`Device Name`, y=sales_z, label=sale
s_z)) +
geom_bar(stat='identity', aes(fill=sales_type), width=.5) +
scale_fill_manual(name="Sales",
labels = c("Above Average", "Below Averag
e"),
values = c("above"="#00ba38", "below"="#f87
66d")) +
labs(subtitle="Normalised Sales for Phones",
title= "Diverging Bars") +
coord_flip()
png(#output_file#, width=1000, height=1000)
print(img)
ThoughtSpot Users Guide
Page 226
Save and share R visualizations
February 07, 2019
Save and share R visualizations
Summary: You can save and share R analyses as answers and
pinboards.
In terms of sharing, the R visualization you get as a result of running a script is similar to any other
search result in ThoughtSpot. You can save it, share it, and add it to pinboards.
Save an R visualization
1. Click the ellipses icon
above the generated graphic or table containing your analysis,
and select Save from the menu.
2. Add a name and description for the analysis, and click Save
Save.
ThoughtSpot Users Guide
Page 227
Save and share R visualizations
February 07, 2019
The saved analysis is added to Answers
Answers.
Share an R visualization
1. Click the ellipses icon
above the generated graphic or table containing your analysis,
and select Share from the menu.
ThoughtSpot Users Guide
Page 228
Save and share R visualizations
February 07, 2019
2. Select and add the user or group with which to share, along with level of access (Can
Can View
View,
Can Edit
Edit), and then click Done
Done.
ThoughtSpot Users Guide
Page 229
Save and share R visualizations
February 07, 2019
Add an R visualization to a pinboard
1. Click the pin above the the generated graphic or table containing your analysis.
2. Create a new pinboard or select an existing pinboard, then click Done
Done.
ThoughtSpot Users Guide
Page 230
Save and share R visualizations
February 07, 2019
The visualization is available in Pinboards
Pinboards.
ThoughtSpot Users Guide
Page 231
What is SpotIQ?
February 07, 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 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 label that indicates this:
ThoughtSpot Users Guide
Page 232
What is SpotIQ?
February 07, 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 233
SpotIQ 101: Load and analyze data
February 07, 2019
SpotIQ 101: Load and analyze data
This 101 walks you through a few simple, SpotIQ workflows. When you have completed the walkthrough,
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 sign in to the ThoughtSpot application. To complete this tutorial,
you need the ability to upload a CSV file and use the SpotIQ application. These features require that your
user account has 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.
Upload the data
1. If you haven’t already, sign in to the ThoughtSpot application and click the Data tab.
2. Click the ellipses icon (3 dots)
, and select Upload data
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.
ThoughtSpot Users Guide
Page 234
SpotIQ 101: Load and analyze data
February 07, 2019
6. Click Next to go to the Set column names page.
7. Set the category_num column to TEXT on the Set column types page.
8. Click Upload
Upload.
ThoughtSpot presents you with a few choices.
ThoughtSpot Users Guide
Page 235
SpotIQ 101: Load and analyze data
February 07, 2019
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, go to 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
Yours.
2. Select Yours
Yours.
3. Look for results from your FoodDollarDataReal data.
SpotIQ labels each result with a NAME
NAME, DESCRIPTION
DESCRIPTION, STICKERS
STICKERS, and MODIFIED
MODIFIED. The
NAME comes from the object that was analyzed which is referenced again in the
DESCRIPTION
DESCRIPTION. The combination of NAME
NAME, DESCRIPTION
DESCRIPTION, and MODIFIED is unique.
ThoughtSpot Users Guide
Page 236
SpotIQ 101: Load and analyze data
February 07, 2019
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. Click the Analyses tab 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
Delete.
The information disappears from the Analyses list.
7. Choose Results
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.
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
February 07, 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
NAME. The
application opens the SpotIQ insights.
The first panel provides information about the analysis.
4. Click the information icon
at the top of the page to see a summary of the SpotIQ
analysis.
ThoughtSpot Users Guide
Page 238
SpotIQ 101: Do more with SpotIQ
February 07, 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.
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.
ThoughtSpot Users Guide
Page 239
SpotIQ 101: Do more with SpotIQ
February 07, 2019
If a set of insights look good, you can Save them and they are not removed when they expire. Do this
now, click
> Save
Save:
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.
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.
ThoughtSpot Users Guide
Page 240
SpotIQ 101: Do more with SpotIQ
February 07, 2019
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:
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 241
SpotIQ 101: Do more with SpotIQ
February 07, 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 242
SpotIQ 101: Review insights
February 07, 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
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.
5. Open the analysis and review the analysis details.
ThoughtSpot Users Guide
Page 243
SpotIQ 101: Review insights
February 07, 2019
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
Analysis.
The Customize Analysis dialog appears.
7. Select the Customize algorithms tab.
8. Uncheck the Outlier Detection using Z-Score option.
9. Click ANALYZE
ANALYZE.
SpotIQ starts a new analysis.
10. Open the new analysis from the SpotIQ page.
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 .
ThoughtSpot Users Guide
Page 244
SpotIQ 101: Review insights
February 07, 2019
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:
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.
ThoughtSpot Users Guide
Page 245
SpotIQ 101: Review insights
February 07, 2019
1. Select the menu on the Total imports, Total value_added by year chart.
2. Click on the chart menu and choose Edit
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.
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.
ThoughtSpot Users Guide
Page 246
SpotIQ 101: Review insights
February 07, 2019
5. Choose Actions > Update
Update.
6. Close the dialog by pressing the Close
Close.
The chart with your changes now appears in the SpotIQ list. The outlier stands out very clearly
now in both charts.
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.
ThoughtSpot Users Guide
Page 247
SpotIQ 101: Review insights
February 07, 2019
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.
Also, each individual chart has a Download
Download, Present
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.
ThoughtSpot Users Guide
Page 248
SpotIQ 101: Review insights
February 07, 2019
4. Choose the Job Schedule option.
5. Fill out the schedule to run the job Monthly
Monthly.
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 249
Best SpotIQ Practices
February 07, 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
Analyze.
SpotIQ can very quickly help you find insights in your data.
Start from a Search
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 Data 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.
SpotIQ uses measures for correlations. For trendlines and outliers, if SpotIQ has a measure, it then drills
by attributes in turn.
ThoughtSpot Users Guide
Page 250
Best SpotIQ Practices
February 07, 2019
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 251
Best SpotIQ Practices
February 07, 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 252
Custom SpotIQ analysis
February 07, 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
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.
ThoughtSpot Users Guide
Page 253
Custom SpotIQ analysis
February 07, 2019
This dialog has three tabs:
• Included columns
columns, where you can explicitly indicate which columns to include in a SpotIQ
analysis. (You can select all, some, or none.)
• Excluded columns
columns, where you can explicitly indicate which columns to exclude in an SpotIQ
analysis. (You can select all, some, or none.)
• Customize Algorithms
Algorithms, where you can run custom analyses and incorporate R scripts into
SpotIQ.
The Customize Algorithms is by far the most advanced panel. (The panel scrolls, so more algorithms are
available than are shown in the picture below.)
ThoughtSpot Users Guide
Page 254
Custom SpotIQ analysis
February 07, 2019
The SpotIQ insights page has an option for this dialog and also an option to customize a single analysis.
ThoughtSpot Users Guide
Page 255
Custom SpotIQ analysis
February 07, 2019
The Improve Analysis dialog always excludes a value from all future analysis.
You can set a subset of SpotIQ customization parameters in your profile preferences, along with options
for email notifications when analyses run.
Eliminate null values
Null values should be eliminated from your analysis.
From next analysis
From future analyses
In the Search bar, add a filter column!= Null to the
search bar. Or choose Exclude null values from current
analysis
analysis, using the Customize algorithms panel.
Set Exclude null values from my analysis
on your user Profile to exclude them from
any future SpotIQ analyses you do.
Exclude uninteresting column(s) in insight
You should always exclude columns you are not interested from your analysis.
From next analysis
Exclude a column using Improve
Analysis on a visualization. Or set the
value through the Excluded columns
tab of the Customize Analysis panel.
ThoughtSpot Users Guide
From future analyses
Choose Also exclude from all my future analysis on the Excluded columns tab of the Customize Analysis panel. Alternatively, exclude using the Improve Analysis dialog on an insight that uses the column you want to exclude.
Page 256
Custom SpotIQ analysis
February 07, 2019
Include an interesting column
You can always includes columns that interest you in your analysis.
From next analysis
Choose Customize Analysis and select to Include
columns that you want to appear.
From future analyses
Ensure **Index Priority** is between 8-10 on the
column through data modeling.
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
In the Search bar, add a filter date< last time period to the search bar.
From future analyses
Not applicable.
Too few insights
Your SpotIQ analysis may not provide you as many insights as you think it should.
From next analysis
Choose Customize Analysis and Customize algorithms Decrease the Multiplier for
Outlier Detection to a value closer to zero.
ThoughtSpot Users Guide
From future
analyses
Not applicable.
Page 257
Advanced R Customizations
February 07, 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####
####COLUMN BINDINGS (ONE PER LINE)####
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:
####R SCRIPT####
df <- data.frame(.param0,.param1, ...);
...
write.csv(..., file=#output_file#, ...);
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.
ThoughtSpot Users Guide
Page 258
Advanced R Customizations
February 07, 2019
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 store zip code in the search bar.
If your source contains the proper data, you should see something similar to the following:
4. Click the ellipses icon
ThoughtSpot Users Guide
and select Custom Analyze
Analyze.
Page 259
Advanced R Customizations
February 07, 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 260
Advanced R Customizations
February 07, 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 Store Zip Code column.
You can see from the script that the output should be PNG ( #output_png# ).
8. Check your work.
ThoughtSpot Users Guide
Page 261
Advanced R Customizations
February 07, 2019
• Make sure that both Sales and Store Zip Code columns are selected for the
column bindings.
• Make sure PNG is selected as the output format.
9. Click Analyze
Analyze.
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 262
Advanced R Customizations
February 07, 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:
###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_file#, row.names=FALSE);
ThoughtSpot Users Guide
Page 263
Advanced R Customizations
February 07, 2019
Syntax help in the dialog
Use the i icon to see help for the R syntax.
Related information
• tscli rpackage
ThoughtSpot Users Guide
Page 264
Understand data sources
February 07, 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.
Name
Icon
Definition
Created by
Table
Raw table loaded by an Administrator
Administrators
Worksheet
Collection of related tables optimized for searching (like standard concept of a view)
Anyone
User Imported
Table uploaded by a user through the web browser (e.g. as a
.csv file)
Anyone
View
Table saved as a materialized view by a user through the web
browser via Save as view option on a search
Anyone
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 265
Understand data sources
February 07, 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.
• Overview of data modeling settings
ThoughtSpot Users Guide
Page 266
Create and load a CSV file
February 07, 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.
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
ThoughtSpot Users Guide
Page 267
Create and load a CSV file
February 07, 2019
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:
1. Log into ThoughtSpot from a browser.
2. Click Data
Data, on the top navigation bar.
3. Click the the ellipses icon (3 dots)
, in the upper right corner, and select Upload Data
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
Next.
7. Click on the column header names to change them to more useful names, if you’d like. Click
Next
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
Import.
ThoughtSpot Users Guide
Page 268
Create and load a CSV file
February 07, 2019
When an upload is complete, the system reports the results and offers you some further
actions.
• 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 269
Append data through the UI
February 07, 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 Data on the top navigation bar.
3. Click the name of 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 Browse your files and select the file.
• Drag and drop the file into the drop area.
6.
7.
8.
9.
10.
Answer the question Are the column names already defined in the file header?
header?.
For the question Do you want to append to the existing data or overwrite it?
it?, select Append
Append.
Answer the question Are the fields separated by?
by?, and click Next
Next.
Click Upload
Upload.
Click Link to existing data if you want to link the data you uploaded to the data in another
table or worksheet. Or click Ask a question if you want to begin a new search.
ThoughtSpot Users Guide
Page 270
View a data profile
February 07, 2019
View a data profile
After you upload a CSV file, it is available as a table in ThoughtSpot. Click Data in the top navigation bar
and select your table. Then click Profile
Profile.
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 271
Set your display language (locale)
February 07, 2019
Set your display language (locale)
The language the ThoughtSpot UI 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
da-DK
Dansk (beta)
de-DE
Deutsche
en-CA
English (Canada)
en-GB
English (United Kingdom)
en-US
English (United States)
es-US
Español (latín)
es-ES
Español (España - beta)
fr-CA
Français (Canada)
fr-FR
Français (France)
it-IT
Italiano (beta)
nl-NL
Nederland (beta)
nb-NO
Norsk (beta)
pt-BR
Português (Brazil)
pt-PT
Português (Portugal - beta)
fi-FI
Suomi (beta)
sv-SE
Svenska (beta)
zh-CN
中文(简体)
ja-JP
日本語
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. (A keyword reference
for all supported languages is included in this documentation under “Keywords in Other Languages”.)
Formulas, however, are not translated. Also, all metadata remains as user inputted.
ThoughtSpot Users Guide
Page 272
Set your display language (locale)
February 07, 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 .
ThoughtSpot Users Guide
Page 273
Overview of sharing
February 07, 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
type
Description
Default security model
Uploaded
data
Data that was
uploaded using a Web
browser.
Only the user who uploaded the data (and any user with administrator
privileges) has access to it by default. They can share a table (or selected columns) with other people or groups. See Share uploaded data
Pinboards
A pinboard of
saved search
results.
Anyone who can view a pinboard can share it. See share a pinboard
Answers
The result of
a single
search.
Anyone who can view an answer can share it. See share answers
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.
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 274
Share a pinboard
February 07, 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…
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 it to look as you’ll want it to appear when shared.
2. From within a pinboard, click the ellipses icon (3 dots)
, and select Share
Share.
Alternatively, select the pinboard you want to share from the list of pinboards and click Share
Share.
(The profile picture or avatar for the owner of each pinboard is shown in the list.)
ThoughtSpot Users Guide
Page 275
Share a pinboard
February 07, 2019
3. Click the plus (+
+) at the bottom of the Share dialog, and select users or groups with whom you
want to share.
ThoughtSpot Users Guide
Page 276
Share a pinboard
February 07, 2019
4. Configure the level of access by selecting from the dropdown next to each user or group.
Available options are based on your own access level. For example, if you have only View
access, you will not have an option to share as Edit
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 to save your changes, then click Done
Done.
ThoughtSpot Users Guide
Page 277
Share a pinboard
ThoughtSpot Users Guide
February 07, 2019
Page 278
Share answers
February 07, 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 the ellipses icon
3. Share the answer by clicking the ellipses icon
, and selecting Save
Save.
, and selecting Share
Share.
4. Click the plus (+
+) at the bottom of the Share dialog and select users or groups with whom you
want to share this answer.
5. Configure the level of access by selecting from the drop-down 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.
ThoughtSpot Users Guide
Page 279
Share answers
February 07, 2019
6. Click Add
Add.
7. Click Done
Done.
ThoughtSpot Users Guide
Page 280
Share answers
ThoughtSpot Users Guide
February 07, 2019
Page 281
Share uploaded data
February 07, 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 Data on the top navigation bar.
2. Click on the name of the uploaded data you want to share.
3. Click the Share icon.
4. Select Entire Table or Specific Columns
Columns.
ThoughtSpot Users Guide
Page 282
Share uploaded data
February 07, 2019
5. If you selected Specific Columns
Columns, select the column(s) to share.
6. Click + and select the users and groups with whom you want to share.
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
Add.
9. Click Done
Done.
ThoughtSpot Users Guide
Page 283
Revoke access (unshare)
February 07, 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
Data.
• If the object is a pinboard, click Pinboards
Pinboards.
• If the object is an answer, click Answers
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 284
Revoke access (unshare)
February 07, 2019
5. Click Save
Save, and then click Done
Done.
ThoughtSpot Users Guide
Page 285
Revoke access (unshare)
February 07, 2019
ThoughtSpot Users Guide
Page 286
About SearchIQ
February 07, 2019
About SearchIQ
Summary: With SearchIQ you can search using natural language or
by speaking.
SearchIQ is a different search experience that understands more natural, speech-like search language
than the original ThoughtSpot search. For example, you can search for What was my top selling
product last month? , instead of having to type top 1 product by sales last month . You can
also speak your search using the voice-to-text capability of your operating system.
Note: SearchIQ is turned off by default, but your administrator can enable it for you. You’ll also
need to be a member of a group that has the Can use experimental features permission.
How do I use SearchIQ?
Clicking on the search bar on your homepage, or clicking Search in the top menu bar takes you to the
search screen.
From here, if SearchIQ has been enabled for you by your administrator, you’ll notice a SearchIQ toggle
button to the right of the search bar. Switch it to the on position.
This puts the search into SearchIQ mode, and you can now type in a search using plain, speech-like
language.
If you leave the SearchIQ setting in the off position, you’ll get the original ThoughtSpot search
experience, which uses keywords, column names, and data values.
What kinds of things can I type?
Like regular search, SearchIQ 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
What’s different about SearchIQ is that the form of your question can be more like natural language. This
means that SearchIQ will ignore extraneous words like What was the or Can you show me . If you
find that your natural language search doesn’t return the results you expect, you can teach SearchIQ
your language easily.
ThoughtSpot Users Guide
Page 287
About SearchIQ
February 07, 2019
How do I use voice search with SearchIQ?
The ability to do voice search comes with your computer’s operating system and your browser’s
speech-to-text capabilities. As such, it isn’t provided by ThoughtSpot. But you can take advantage of
these when searching with SearchIQ.
Make sure your microphone on your computer is enabled and working correctly. If you’re unsure, check
the documentation for your operating system.
Next, make sure your browser supports the text-to-speech capability by consulting its documentation.
If all is well, you’ll see a microphone icon it the search bar, when it is in SearchIQ mode. Clicking on the
microphone will begin accepting voice input, which is translated to text in the search bar.
Note: If the SearchIQ text-to-speech functionality is not working, ensure that you are accessing
ThoughtSpot in your browser using HTTPS:// and not HTTP://.
Related information
• Use SearchIQ
• Teach SearchIQ your language
ThoughtSpot Users Guide
Page 288
Use SearchIQ
February 07, 2019
Use SearchIQ
Summary: Use SearchIQ to do a natural language search.
To do a search using SearchIQ:
1. Click the ThoughtSpot search bar on the homepage or select Search from the top menu.
2. Click on the SearchIQ toggle button to go into SearchIQ mode.
If you later decide to go back to the classic search mode, you can click on the SearchIQ
toggle button to turn it off again.
3. Choose the data you want to search using the selector in the left panel.
4. Type your search in the search bar using plain language.
If you see a microphone icon in the search bar, that means your operating system and
browser are enabled for speech-to-text. In this case, you can click on the microphone and
speak your search instead of typing.
5. Press the Enter key when your search is complete.
6. When your answer appears, you may also see one of these messages:
• Ignored words: These words were not needed in order to create the answer, so
they are ignored.
ThoughtSpot Users Guide
Page 289
Use SearchIQ
February 07, 2019
• Ambiguous words: These are words that could have more than one meaning in the
context of the search.
You can clarify by choosing what you meant from the possible meanings shown.
ThoughtSpot Users Guide
Page 290
Use SearchIQ
February 07, 2019
7. If the answer isn’t what you were expecting, you can refine your answer by teaching SearchIQ
your language.
Related information
• About SearchIQ
• Teach SearchIQ your language
ThoughtSpot Users Guide
Page 291
Teach SearchIQ your language
February 07, 2019
Teach SearchIQ your language
Summary: You can teach SearchIQ your language, to make its results
more accurate.
Sometimes the results from SearchIQ won’t be quite what you were expecting. You can easily teach
SearchIQ your language as you use it. Over time, it gets smarter about how to interpret terms that don’t
come directly from keywords, column names, or data values.
Teach SearchIQ your Language
To teach SearchIQ your language:
1. After receiving a search result from SearchIQ, you’ll notice a section below the search bar that
shows the SearchIQ interpretation of what you typed or spoke. If you do not see this, click
Refine your query
query.
Wherever you see - --, those terms were ignored. Where you see a word or words, those are
the keywords, column names, or data values as understood by SearchIQ.
Clicking on any term brings up the menu where you can change how ThoughtSpot
understands that term.
2. Click any term you want SearchIQ to ignore in the future, and choose Ignore
Ignore.
3. Click any term you wish SearchIQ had interpreted differently, and choose Teach
Teach.
4. When you see the teaching dialog box, 1) use the handles on the search diagram to select a
term for which you want to change the mapping. Then 2) select a column name to map it to,
or type your mapping in the search bar below the diagram. 3) You may need to select what
you mean from the search suggestions.
ThoughtSpot Users Guide
Page 292
Teach SearchIQ your language
February 07, 2019
5. Choose CONFIRM to see the new search result.
6. Repeat these steps until SearchIQ understands how to interpret your search.
SearchIQ will remember what you taught it, and use that to understand your searches in the
future.
What if I teach SearchIQ a different language
from somebody else?
SearchIQ learns the language you teach it, and your efforts are useful to everyone else who uses
SearchIQ in the future. If SearchIQ learns different search term mappings from different users, these are
applied to new searches in a hierarchical fashion, with the top learnings carrying more weight than those
further down the list.
The hierarchy of SearchIQ language learning is set up like this:
1. Language mappings the user taught SearchIQ
2. Language mappings the user’s Group members taught SearchIQ
3. Language mappings set by the administrator
In this way, SearchIQ provides the best and most customized search experience possible for all users,
and your efforts to teach it are valuable to as many people as possible.
ThoughtSpot Users Guide
Page 293
Teach SearchIQ your language
February 07, 2019
Related information
• About SearchIQ
• Use SearchIQ
ThoughtSpot Users Guide
Page 294
Slack and Spot
February 07, 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.
If @spot doesn’t come when you “call” you are spotless. Ask your administrator to see if you can get
one.
Related Information
• Go to How to use Spot to get started using Spot.
• For information on setting up Spot, see Slack Integration in the Administration Guide.
ThoughtSpot Users Guide
Page 295
How to use Spot
February 07, 2019
How to use Spot
You can’t ask Spot to do tricks until you after you invite him to a channel and authorize yourself as a
Spot trainer.
Call Spot and make him do tricks
1. Launch Slack if you haven’t already.
2. Go to a channel where you want to invite Spot.
3. Invite @spot like you would invite anyone else.
Type @spot and press RETURN .
4. Click invite them to join.
5. Ask him for help.
If this is the first time you’ve commanded him, 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.
If you do this successfully, the application tells you:
ThoughtSpot Users Guide
Page 296
How to use Spot
February 07, 2019
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 297
How to use Spot
February 07, 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.
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?”
ThoughtSpot Users Guide
Page 298
How to use Spot
February 07, 2019
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 299
More help and support
February 07, 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.
From this dialog you can get to the following:
Link
ThoughtSpot Users Guide
Takes you to ...
Page 300
More help and support
February 07, 2019
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.
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.
ThoughtSpot Users Guide
Page 301
More help and support
February 07, 2019
4. Navigate to the Learn center to replay your search.
ThoughtSpot Users Guide
Page 302
More help and support
February 07, 2019
Support contact information
If you still can’t find what you’re looking for, you can contact support.
ThoughtSpot Users Guide
Page 303
More help and support
ThoughtSpot Users Guide
February 07, 2019
Page 304
Keyword reference
February 07, 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 offer the following keyword translations.
日本語
中文 (简体)
Deutsche
Español
(latín)
Español
(España)
Français
(Canada)
Français
(France)
Português
(Brasil)
Português
(Portugal)
Italiano
Dansk
Suomi
Svenska
Norsk
Nederland
Also, see the topic on how to set locale preferences in your user profile to control language, date, and
number formats on the ThoughtSpot UI.
General
Keyword
Examples
top
bottom
•
•
top sales rep by count sales for average revenue > 10000
•
•
•
bottom revenue average
sales rep average revenue for each region top
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
after
ThoughtSpot Users Guide
Examples
order date after 10/31/2014
Page 305
Keyword reference
Keyword
February 07, 2019
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 quarter
revenue last 15 days for each quarter
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 … daily
growth of sales by order date daily
growth of … by …
monthly
growth of sales by date shipped monthly sales > 24000
growth of … by …
quarterly
growth of sales by date shipped quarterly
growth of … by …
weekly
growth of sales by receipt date weekly for pro-ski2000
growth of … by …
yearly
growth of sales by date closed 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 306
Keyword reference
Keyword
February 07, 2019
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-overyear
growth of revenue by receipt date monthly year-over-year
monthly
commission > 10000 monthly
n months for each
quarter
cost last 2 months for each quarter
n months for each
year
last 8 months for each 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
next n weeks
shipments next 10 weeks by day
ThoughtSpot Users Guide
Page 307
Keyword reference
February 07, 2019
Keyword
Examples
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-overyear
growth of revenue by date shipped quarterly year-over-year
quarterly
sales quarterly for each product
n quarters for each
year
last 2 quarters for each 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
month
sales last 3 weeks for each month
n weeks for each
quarter
last 2 weeks for each 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
Time
Keyword
detailed
Examples
ship time detailed
ThoughtSpot Users Guide
Page 308
Keyword reference
Keyword
February 07, 2019
Examples
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
ago
sum inventory by product 10 minutes 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
with
product name not begins with "tom's"
not contains
product color not contains 'tan' product color not contains 'red'
not ends
with
product name not ends with "trial"
similar to
course name similar to 'hand'
not similar
to
course name not similar to 'hand'
ThoughtSpot Users Guide
Page 309
Keyword reference
February 07, 2019
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
deviation
standard deviation revenue by product by month for date after
10/31/2010
unique
count
unique count visitor by product page last week
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
>
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
!=
ThoughtSpot Users Guide
sum sale amount region != canada region != mexico
Page 310
Keyword reference
February 07, 2019
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
from
average hours worked branch farther than 80 km 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)
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 311
TQL reference
February 07, 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 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.
View schemas and data
Syntax
SHOW DATABASES
Description
Lists all available databases.
Examples:
SHOW DATABASES;
ThoughtSpot Users Guide
Page 312
TQL reference
Syntax
USE
February 07, 2019
Description
Switches the context to the specified database. This is required if queries
do not use fully qualified names (database.schema.table) for specifying tables.
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:
SHOW TABLE "locations";
SCRIPT SERVER
Generates the TQL schema for all tables in all databases on the server. For
example:
SCRIPT SERVER;
SCRIPT DATABASE
Generates the TQL schema for all tables in a database. For example:
SCRIPT DATABASE "fruit_database";
SCRIPT TABLE
Generates the TQL schema for a table. For example:
SCRIPT TABLE "vendor";
ThoughtSpot Users Guide
Page 313
TQL reference
Syntax
February 07, 2019
Description
Shows specified set of table data.
SELECT
FROM
If you do not specify the TOP number of rows to select, the top 50 rows will
be returned by default. The number of rows to return can be set using the
TQL command line flag:
[WHERE ]
[GROUP BY ]
--query_results apply_top_row_count
You can use the following aggregation functions:
[ORDER BY ]
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 314
TQL reference
February 07, 2019
Schema creation
Syntax
Description
CREATE DATABASE
Creates a database. For example:
CREATE SCHEMA
Creates a schema within the current database. For example:
CREATE SCHEMA "fruit_schema";
CREATE TABLE
(
[]) [PARTITION BY HASH () [KEY
("")]])
Creates a table with the specified column definitions and constraints.
Use PARTITION BY HASH to shard a table across all nodes. If no KEY
is specified, the table will be randomly sharded.
Do not specify relationship constraints ( FOREIGN KEY or RELATIONSHIP ) in the CREATE TABLE statement. Instead, define these using ALTER 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" varchar(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");
Schema modification
Syntax
Description
DROP DATABASE
Drops a database and all of its schemas and tables. For example:
ThoughtSpot Users Guide
DROP DATABASE "fruit_database";
Page 315
TQL reference
February 07, 2019
Syntax
Description
DROP SCHEMA
Drops a schema within the current database, and drops all of the tables in
the schema. For example:
DROP SCHEMA "fruit_schema";
DROP TABLE
Drops a table. For example:
DROP TABLE "location";
TRUNCATE 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 become invalid. For example:
TRUNCATE TABLE "location";
Alters a table to add, drop, or rename a column.
ALTER TABLE
ADD|DROP|RENAME
When you add a column to an existing table, you must provide a default
value to use for existing rows. For example:
COLUMN
ALTER TABLE "cart" ADD COLUMN "nickname" varchar(255) DEFAULT 'no
nickname';
ALTER TABLE "cart" DROP COLUMN "nickname";
ALTER TABLE "cart" RENAME COLUMN "nickname" TO "shortname";
ALTER TABLE
DROP CONSTRAINT PRIMARY
KEY;
Drops the primary key from a table.
Note that if you then add a new primary key, the same upsert behavior will
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_number");
ThoughtSpot Users Guide
Page 316
TQL reference
February 07, 2019
Syntax
Description
ALTER TABLE
DROP [FOR-
Drops the named foreign key or relationship between two tables. For example:
EIGN KEY| RELATIONSHIP]
;
ALTER TABLE "sales_fact" DROP CONSTRAINT FOREIGN KEY
"FK_PO_number";
ALTER TABLE "fruit_dim" DROP RELATIONSHIP "REL_dates";
ALTER TABLE
DROP [CONSTRAINT FOREIGN
KEY
[] |
RELATIONSHIP
You must use this syntax when dropping relationships between tables created before ThoughtSpot version 3.2. This is because relationships could
not be named in older versions.
Drops the foreign key or relationship between two tables where you cannot
reference it by relationship name. If the relationship was created without a
name, use:
• the name of the referenced table, for a foreign key.
• the name of the related table, for a relationship.
[WITH
];
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 "orders";
ALTER TABLE "wholesale_buys" DROP RELATIONSHIP WITH "retail_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 317
TQL reference
February 07, 2019
Syntax
Description
ALTER TABLE
[SET DIMENSION | SET
FACT [PARTITION BY
HASH
[()]
[KEY()]]]
Changes the partitioning on a table by doing one of:
• re-sharding a sharded table
• changing a replicated table to a sharded table
• changing a sharded table to a replicated (unsharded) table
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
MODIFY
Changes the data type of a column. This can have implications on sharding
and primary key behavior. See About data type conversion. For example:
COLUMN
;
ALTER TABLE fact100 MODIFY COLUMN product_id int;
Modify data
Syntax
INSERT INTO
VALUES ...
Description
Inserts values into a table. Only use this for testing. Do not use INSERT on
a production system. For example:
INSERT INTO "vendor" VALUES ('helen rose', 'jacob norse',
'eileen ruff',
'manny gates');
ALTER TABLE
SET LOAD
PRIORITY
Sets the load priority for a table. Load priority determines the order in
which a table is loaded on a cluster restart. You can set any value from
1-100 . The system default for all tables is 50 . For example:
;
ThoughtSpot Users Guide
ALTER TABLE 'sales_facts' SET LOAD PRIORITY 1;
Page 318
TQL reference
Syntax
UPDATE
... SET ...
[WHERE ...]
February 07, 2019
Description
Updates rows in a table that match optionally provided predicates. Predicates have the form column = value connected by the AND keyword.
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
[WHERE...]
Deletes rows from a table that match optionally provided predicates. Predicates have the form column = value connected by the AND keyword.
For example.
DELETE FROM "vendor" WHERE "name" = 'Joey Smith' AND "vendorid" =
'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:
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 present in the data. Some examples:
CREATE TABLE "schools" ( "schoolID" varchar(15), "schoolName"
varchar(255), "schoolCity" varchar(55), "schoolState" varchar(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";
ThoughtSpot Users Guide
Page 319
TQL reference
Syntax
FOREIGN KEY
February 07, 2019
Description
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 order 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";
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 relationship, 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" = "retail_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:
ThoughtSpot Users Guide
Page 320
TQL reference
Syntax
February 07, 2019
Description
Examples
Character
• VARCHAR(n)
Specify the maximum number of characters, as
in VARCHAR(255). The size limit is 1GB for VARCHAR values.
Floating point
• DOUBLE
• FLOAT
DOUBLE is recommended.
Boolean
• BOOL
Can be true or false .
Integer
• INT
• BIGINT
INT holds 32 bits.
Date or time
•
•
•
•
DATE
DATETIME
TIMESTAMP
TIME
BIGINT holds 64 bits.
DATETIME, TIMESTAMP, and TIME are stored
at the granularity of seconds
.
TIMESTAMP is identical to DATETIME, but is included for syntax compatibility.
ThoughtSpot Users Guide
Page 321
tsload flag reference
February 07, 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
--target_database
Description
Notes
Specifies the pre-existing
target database into which
tsload should load the data.
--target_schema
Specifies the target schema.
Default is “falcon_default_schema”.
--target_table
Specifies the tables that you
want to load into the database.
The tables must exist in the database specified by --target_database .
--empty_target
Specifies that any data in
the target table is to be removed before the new data
is loaded.
If supplied, any rows that exist in the table
specified by --target_database and -target table will be deleted before this
data load. To perform an “upsert” on the existing data, omit this flag or specify -noempty_target .
--max_ignored_rows
--bad_records_file
/
--date_format
--date_time_format
--time_format
ThoughtSpot Users Guide
Page 322
tsload flag reference
Flag
February 07, 2019
Description
Notes
--v=[0|1|2|3
Specifies the verbosity of
log messages.
Provide a value for verbosity level. By default, verbosity is set to the minimum, which
is 0. This value is similar to a volume control.
At higher levels your log receives more messages 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
when loading data.
If supplied, the upserts logic may be affected, especially if the date time being loaded
is a primary key, and the data has millisecond 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
--source_file
/
--source_data_format
[csv|delimited]
--field_separator ""
-- trailing_field_separator
--null_value ""
--date_converted_to_epoch
[true|false]
--boolean_representation
[true_false | 1_0 | T_F |
Y_N]
Description
Notes
Specifies the location of the
file to be loaded.
Specifies the data file format.
Optional. The default is csv.
Specifies the field delimiter
used in the input file.
Specifies that the field separator appears after every
field, including the last field
per row.
Example row with trailing field separator:
a,b,c,The default is false.
Specifies how null values
are represented in the input
file.
These values will be converted to NULL upon loading.
Specifies whether the “date”
or “datetime” values in the
input file are represented as
epoch values.
Specifies the format in
which boolean values are
represented in the input file.
The default is T_F. You can also use this flag
to specify other values. For example, if your
data used Y for true and NULL for false, you
could specify: --boolean_representation Y_NULL
ThoughtSpot Users Guide
Page 323
tsload flag reference
Flag
February 07, 2019
Description
Notes
--has_header_row
Indicates that the input file
contains a header row.
If supplied, column names in the header row
are used to match column names in the target table in ThoughtSpot. If not supplied, the
first row of the file is loaded as data, the
same as all subsequent rows.
--escape_character ""
--enclosing_character
""
--use_bit_boolean_values
= [true | false]
ThoughtSpot Users Guide
--enclosing_character "\""
Page 324
tscli command reference
February 07, 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 ]
[--zoo ] [--username username] [--identit
y_file identity_file]
{access,alert,backup,backup-policy,callhome,cassandr
a,cluster,command,dr-mirror,etl,event,feature,fileserver,firewa
ll,hdfs,ipsec,ldap,logs,map-tiles,monitoring,nas,node,patch,rpa
ckage,saml,scheduled-pinboards,smtp,snapshot,snapshot-policy,sp
ot,sssd,ssl,storage,support,tokenauthentication}
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:
tscli [subcommand] -h
A subcommand itself may have several options.
tscli subcommands
This section lists each subcommand and its syntax.
ThoughtSpot Users Guide
Page 325
tscli command reference
February 07, 2019
access
tscli access [-h] {list} ...
Use this subcommand to do the following:
•
tscli access list Lists objects by last access time.
alert
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
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
tscli backup [-h] {create,delete,ls,restore} ...
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:
•
ThoughtSpot Users Guide
--mode {full,light,dataless}
Page 326
tscli command reference
February 07, 2019
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} ...
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
tscli backup-policy disable
tscli backup-policy enable
name Deletes the backup policy with name .
name Disables the policy name .
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.
ThoughtSpot Users Guide
Page 327
tscli command reference
February 07, 2019
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
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.
cassandra
tscli cassandra [-h] {backup,restore} ...
Use this subcommand to do the following:
•
•
tscli cassandra backup Take a backup of cassandra
tscli cassandra restore Restore cassandra from a backup
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,orionoreo} 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 `
ThoughtSpot Users Guide
Page 328
tscli command reference
February 07, 2019
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.
•
•
•
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
COPYFIRST ] [--timeout
•
--nodes
NODES ] --dest_dir
TIMEOUT ]
DEST_DIR
[--copyfirst
command
NODES Space separated IPs of nodes where you want to run the command.
(default: all )
•
DEST_DIR Directory to save the files containing output from each nodes.
--dest_dir
(default: None)
•
•
--copyfirst
--timeout
COPYFIRST Copy the executable to required nodes first. (default: False )
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.
•
•
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} ...
ThoughtSpot Users Guide
Page 329
tscli command reference
•
February 07, 2019
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
THOUGHTSPOT_URL
--org_id
--admin_username
ORG_ID
proxy_port
USERNAME
--thoughtspot_url
ADMIN_USERNAME
[--groupname
PIN_TO ] [--proxy_host
[--pin_to
PROXY_PORT ] [--proxy_username
GROUPNAME ]
PROXY_HOST ] [--
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 URL to reach thoughtspot. (default:
--thoughtspot_url
None)
•
--admin_username
ADMIN_USERNAME Admin username for ThoughtSpot
(default: None)
•
•
•
•
•
•
•
•
--groupname
--org_id
GROUPNAME
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
TO ] [--limit
INCLUDE ] [--since
LIMIT ] [--detail] [--summary_contains
detail_contains
ThoughtSpot Users Guide
DETAIL_CONTAINS ] [--attributes
SINCE ] [--from
FROM ] [--to
SUMMARY_CONTAINS ] [--
ATTRIBUTES ]
Page 330
tscli command reference
•
•
February 07, 2019
--include
--since
INCLUDE Options are all, config, notification. Default config. (default: config)
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
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
PASSWORD ]
USER ] [--password
release Downloads the specified release file and its checksum. Specify the
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
ThoughtSpot Users Guide
Page 331
tscli command reference
February 07, 2019
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
file_name
USER ] [--password
PASSWORD ] --
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 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 * .
--password
firewall
tscli firewall [-h] {close-ports,disable,enable,open-ports,stat
us} ...
•
tscli firewall close-ports
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:
ThoughtSpot Users Guide
Page 332
tscli command reference
February 07, 2019
tscli hdfs leave-safemode Command to get HDFS namenodes out of safemode.
ipsec
tscli ipsec [-h] {disable,enable,status} ...
This subcommand has the following actions:
tscli ipsec disable Disable IPSec tscli ipsec enable Enable IPSec tscli ipsec status
Show IPSec status on all nodes
ldap
tscli ldap [-h] {add-cert,configure,purge-configuration} ...
This subcommand has the following actions:
•
name
tscli ldap add-cert
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
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
since
SINCE ] [--from
INCLUDE ] [--exclude
FROM ] [--to
MAXSIZE ] [--sizeonly] [--nodes
TO ] [--out
EXCLUDE ] [--
OUT ] [--maxsize
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:
•
ThoughtSpot Users Guide
--include
INCLUDE
Page 333
tscli command reference
February 07, 2019
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
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
EXCLUDE ] [--since
[--outdir
nodes
CMD [--include
SINCE] [--from
OUTDIR ] [--cmd_infmt
INCLUDE ] [--exclude
FROM ] [--to
TO ] [--outfile
CMD_INFMT ] [--cmd_outfmt
OUTFILE ]
CMD_OUTFMT ] [--
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
• Without any reference to SRCFILE, content of log is streamed to
CMDSTR via pipe. eg. tail -n100 | grep ERROR gets autotranstalted to cat SRCFILE | tail -n100 | grep ERROR >
DSTFILE (default: None)
•
ThoughtSpot Users Guide
--include
INCLUDE
Page 334
tscli command reference
February 07, 2019
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)
•
--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,status} ...
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 interest access, you must download the map tiles tar and md5 files. Then you
must append the following to the tscli command.
•
•
•
•
ThoughtSpot Users Guide
--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: )
Page 335
tscli command reference
February 07, 2019
•
tscli map-tiles disable
•
tscli map-tiles status
Disable map-tiles functionality.
Check whether map-tiles is enabled.
monitoring
tscli monitoring [-h] {set-config,show-config} ...
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
PATH_ON_SERVER
password
] --mount_point
PASSWORD
[--uid
SERVER
MOUNT_POINT
UID ] [--gid
[--path_on_server
--username
USERNAME
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
--path_on_server PATH_ON_SERVER Filesystem path on the CIFS server to
mount (source). For example: /a (default: / )
--mount_point
MOUNT_POINT
Page 336
tscli command reference
February 07, 2019
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
--uid
PASSWORD CIFS password for --username (default: None)
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: / )
--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:
ThoughtSpot Users Guide
Page 337
tscli command reference
•
February 07, 2019
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 )
•
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
patch
tscli patch [-h] {apply,ls,resume-apply,resume-rollback,rollbac
k} ...
This subcommand has the following actions:
•
tscli patch apply [-h] [
release ]
Apply the patch on an existing cluster. Takes the following parameters:
•
•
release The relative path to the patch tar ball
tscli patch ls [-h] [--applied] [--rolled_back] [--service SERVICE] [--md5
MD5] [--history] Lists the patches currently applied. This takes the following parameters:
•
•
--applied Show only the patches applied since last full release (default: ` False` )
--rolled_back Show only the patches rolled back since last full release (default:
` False` )
•
•
•
•
--service SERVICE Show patches filtered by service (default: ` None` )
--md5 MD5 Shows the details of the patch specified (default: ` None` )
--history Shows the history of all patch apply/rollback release (default: ` False` )
tscli patch resume-apply [-h]
Resume patch apply
•
tscli patch resume-rollback [-h]
Resume patch roll-backup
•
tscli patch rollback [-h]
Rollback the patch from an existing cluster
ThoughtSpot Users Guide
Page 338
tscli command reference
February 07, 2019
rpackage
tscli rpackage [-h] {add,delete,list} ...
Manages R packages available to SpotIQ.
•
tscli rpackage add [-h] [--repo
DEST_DIR ] [--nodes
NODES ]
REPO ] [--timeout
TIMEOUT ] [--dest_dir
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)
REPO Directory where output of this command will be placed
--dest_dir
(default: None)
•
•
--nodes NODES Space separated IPs of nodes where you want to run the
command. (default: all).
tscli rpackage add [-h] [--timeout
nodes
NODES ]
TIMEOUT ] [--dest_dir
DEST_DIR ] [--
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).
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}
ThoughtSpot Users Guide
Page 339
tscli command reference
February 07, 2019
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] {remove-mailfromname,remove-mailname,remove-rel
ayhost,remove-saslcredentials,reset-canonical-mapping,set-canon
ical-mapping,set-mailfromname,set-mailname,set-relayhost,set-sa
slcredentials,show-canonical-mapping,show-mailfromname,show-mai
lname,show-relayhost}
This subcommand takes supports the following actions:
•
•
•
•
tscli smtp remove-mailfromname Removes current cluster mailfromname
•
tscli smtp reset-canonical-mapping Deletes the current postmap mapping.
•
tscli smtp remove-mailname Removes current cluster mailname
tscli smtp remove-relayhost Removes current cluster relayhost
tscli smtp remove-saslcredentials Clears SASL credentials and disables SMTP AUTH
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 set-saslcredentials Sets SASL credentials and enables SMTP AUTH
•
•
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 .
ThoughtSpot Users Guide
Page 340
tscli command reference
February 07, 2019
snapshot
tscli snapshot [-h] {backup,create,delete,ls,pin,restore,unpi
n,update-ttl}
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
name
BASE
] [--storage_type {local,nas}] [--remote]
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 .
•
•
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 pin [-h]
name Pins a snapshot so it cannot be deleted or garbage
collected.
•
•
•
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 unpin [-h]
name Unpin a snapshot so it can be deleted or garbage
collected.
•
tscli snapshot update-ttl [-h] [--disable
DISABLE
]
name
ttl
Updates manual snapshot garbage collection policy.
ThoughtSpot Users Guide
Page 341
tscli command reference
February 07, 2019
•
•
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)
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
cache_timeout
CACHE_TIMEOUT
TOKEN
--thoughtspot_url
THOUGHTSPOT_URL
[--
]
•
--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 )
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.
ThoughtSpot Users Guide
Page 342
tscli command reference
•
February 07, 2019
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.
sssd
tscli sssd {enable, disable, set-sudo-group, clear-sudo-group}
...
This subcommand uses system security services daemon (SSSD), and has the following actions:
•
tscli sssd enable --user
USER
--domain
DOMAIN
Enables system Active Directory (AD) user access on a single node. You will be prompted for
password credentials. The user must have permission to join a computer or VM to the
domain.
•
tscli sssd disable
Disables system AD based access on a local node. Running this command will also remove
the AD group from sudoers list.
•
tscli sssd set-sudo-group
ACTIVE_DIRECTORY_GROUP_NAME
Allows sudo permissions for AD group.
•
tscli sssd clear-sudo-group
ACTIVE_DIRECTORY_GROUP_NAME
Clears any set AD sudo group.
For more about setting up Active Directory access, see Enable Active Directory based access.
storage
tscli storage [-h] {gc,df} ...
This subcommand supports the following actions:
•
tscli storage gc [-h] [--log_age
LOG_AGE
] [--force] [--localhost_only]
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:
ThoughtSpot Users Guide
Page 343
tscli command reference
February 07, 2019
•
•
•
•
•
•
•
/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 .
support
tscli support [-h]
{bundle,restart-remote,rm-admin-email,rm-admin-phone,rm-feedbac
k-email,set-admin-email,set-admin-phone,set-debug-ui-password,s
et-feedback-email,set-remote,show-admin-email,show-admin-phon
e,show-feedback-email,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]
•
ThoughtSpot Users Guide
--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)
Page 344
tscli command reference
February 07, 2019
•
--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 )
•
--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 .
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.
ThoughtSpot Users Guide
Page 345
tscli command reference
February 07, 2019
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 346
Date and time formats reference
February 07, 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
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
ThoughtSpot Users Guide
Page 347
Date and time formats reference
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
February 07, 2019
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
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
ThoughtSpot Users Guide
Page 348
Date and time formats reference
Format mask
February 07, 2019
Description
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
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 349
Row level security rules reference
February 07, 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
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
to_bool
Description
Returns the input as a boolean (true or false).
Examples
to_bool (0) = false
to_bool (married)
to_date
to_double
Accepts a date represented as an integer or text
string, and a second string parameter that can
include strptime date formatting elements. Replaces all the valid strptime date formatting elements with their string counterparts and returns
the result. Does not accept epoch formatted
dates as input.
Returns the input as a double.
to_date (date_sold, '%Y%m-%d')
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 convert a
date to a string, specify the date format you
want to use.
to_string (45 + 1) = '46'
to_string (revenue cost)
to_string
(date,('%m/%d/%y'))
ThoughtSpot Users Guide
Page 350
Row level security rules reference
February 07, 2019
Date functions
Function
add_days
Description
Returns the result of
adding the specified
number of days to
the given date.
Examples
add_days (01/30/2015, 5) = 02/04/
2015
add_days (invoiced, 30)
date
Returns the date
portion of a given
date.
date (home visit)
day
Returns the number
(1-31) of the day for
the given date.
day (01/15/2014) = 15
day_number_of_quarter
day_number_of_week
ThoughtSpot Users Guide
Returns the number
of the day in a quarter for a given date.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the number
(1-7) of the day in a
week for a given
date with 1 being
Monday and 7 being
Sunday.
day (date ordered)
day_number_of_quarter (01/30/2015)
= 30
day_number_of_quarter (01/30/2015,
'fiscal') = 91
day_number_of_week(01/15/2014) = 3
day_number_of_week (shipped)
Page 351
Row level security rules reference
Function
day_number_of_year
day_of_week
diff_days
diff_time
February 07, 2019
Description
Returns the number
(1-366) of the day in
a year from a given
date. Add an optional second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the day of
the week for the given date.
Subtracts the second date from the
first date and returns
the result in number
of days, rounded
down if not exact.
Subtracts the second date from the
first date and returns
the result in number
of seconds.
Examples
day_number_of_year (01/30/2015) =
30
day_number_of_year ( 01/30/2015,
'fiscal' ) = 275
day_number_of_year (invoiced)
day_of week (01/30/2015) = Friday
day_of_week (serviced)
diff_days (01/15/2014, 01/17/2014)
= -2
diff_days (purchased, shipped)
diff_time (01/01/2014, 01/01/2014)
= -86,400
diff_time (clicked, submitted)
hour_of_day
Returns the hour of
the day for the given
date.
hour_of_day (received)
is_weekend
Returns true if the
given date falls on a
Saturday or Sunday.
is_weekend (01/31/2015) = true
Returns the month
from the given date.
month (01/15/2014) = January
month
ThoughtSpot Users Guide
is_weekend (emailed)
month (date ordered)
Page 352
Row level security rules reference
Function
month_number
month_number_of_quarter
February 07, 2019
Description
Returns the number
(1-12) of the month
from a given date.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the month
(1-3) number for the
given date in a quarter. Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Examples
month_number (09/20/2014) = 9
month_number ( 09/20/2014, 'fiscal'
) = 5
month_number (purchased)
month_number_of_quarter (02/20/
2018) = 2
month_number_of_quarter (02/20/
2018,'fiscal' ) = 1
now
Returns the current
timestamp.
now ()
quarter_number
Returns the number
(1-4) of the quarter
associated with the
given date. Add an
optional second parameter to specify
'fiscal' or 'calendar'
dates. Default is
'calendar'. (In examples, start of fiscal
year is set to May
01.)
quarter_number ( 04/14/2014) = 2
ThoughtSpot Users Guide
quarter_number ( 04/14/2014, 'fiscal' ) = 4
quarter_number ( shipped )
Page 353
Row level security rules reference
Function
start_of_month
start_of_quarter
start_of_week
start_of_year
time
ThoughtSpot Users Guide
February 07, 2019
Description
Returns MMM yyyy
for the first day of
the month. Your installation configuration can override
this setting so that it
returns a different
format such as MM/
dd/yyyy . Speak
with your
ThoughtSpot administrator for information on doing this.
Returns the date for
the first day of the
quarter for the given
date. Add an optional second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the date for
the first day of the
week for the given
date.
Returns the date for
the first day of the
year for the given
date. Add an optional second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the time
portion of a given
date.
Examples
start_of_month ( 01/31/2015 ) = Jan
FY 2015
start_of_month (shipped)
start_of_quarter ( 04/01/2014) =
Apr 2014
start_of_quarter ( 04/01/2014, 'fiscal') = Feb 2014
start_of_quarter (sold)
start_of_week ( 06/01/2015 ) = 05/
30/2015 Week
start_of_week (emailed)
start_of_year (04/01/2014) returns
Jan 2014
start_of_year (04/01/2014, 'fiscal') returns May 2013
start_of_year (joined)
time (3/1/2002 10:32) = 10:32
time (call began)
Page 354
Row level security rules reference
Function
week_number_of_month
week_number_of_quarter
week_number_of_year
year
ThoughtSpot Users Guide
February 07, 2019
Description
Examples
Returns the week
number for the given
date in a month.
3
Returns the week
number for the given
date in a quarter.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the week
number for the given
date in a year. Add
an optional second
parameter to specify
whether a 'fiscal' or
'calendar' year is
used to calculate
the result. Default is
'calendar'. (In examples, start of fiscal
year is set to May
01.)
Returns the year
from a given date.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01. Per standard convention, the
fiscal year is defined
by the year-end
date.)
week_number_of_month(03/23/2017) =
week_number_of_quarter (04/03/2017)
= 1
week_number_of_quarter (04/03/2017,
'fiscal') = 10
week_number_of_year (01/17/2014) =
3
week_number_of_year ( 01/17/2014,
'fiscal') = 38
year (01/15/2014) = 2014
year (12/15/2013, 'fiscal' ) = 2014
year (date ordered)
Page 355
Row level security rules reference
February 07, 2019
Mixed functions
These functions can be used with text and numeric data types.
Function
!=
<
<=
=
>
>=
greatest
Description
Examples
Returns true if the first value is not
equal to the second value.
3 != 2 = true
Returns true if the first value is less
than the second value.
3 < 2 = false
Returns true if the first value is less
than or equal to the second value.
1 <= 2 = true
Returns true if the first value is equal to
the second value.
2 = 2 = true
Returns true if the first value is greater
than the second value.
3 > 2 = true
Returns true if the first value is greater
than or equal to the second value.
3 >= 2 = true
Returns the larger of the values.
greatest (20, 10) = 20
revenue != 1000000
revenue < 1000000
revenue <= 1000000
revenue = 1000000
revenue > 1000000
revenue >= 1000000
greatest (q1 revenue, q2 revenue)
least
Returns the smaller of the values.
least (20, 10) = 10
least (q1 revenue, q2 revenue)
Number functions
Function
*
+
-
/
ThoughtSpot Users Guide
Description
Examples
Returns the result of multiplying
both numbers.
3 * 2 = 6
Returns the result of adding both
numbers.
1 + 2 = 3
Returns the result of subtracting
the second number from the first.
3 - 2 = 1
Returns the result of dividing the
first number by the second.
6 / 3 = 2
price * taxrate
price + shipping
revenue - tax
markup / retail price
Page 356
Row level security rules reference
Function
^
abs
February 07, 2019
Description
Examples
Returns the first number raised to
the power of the second.
3 ^ 2 = 9
Returns the absolute value.
abs (-10) = 10
width ^ 2
abs (profit)
acos
asin
atan
atan2
cbrt
ceil
cos
cube
Returns the inverse cosine in degrees.
acos (0.5) = 60
Returns the inverse sine (specified in degrees).
asin (0.5) = 30
Returns the inverse tangent in
degrees.
atan (1) = 45
Returns the inverse tangent in
degrees.
atan2 (10, 10) = 45
Returns the cube root of a number.
cbrt (27) = 3
Returns the smallest following integer.
ceil (5.9) = 6
Returns the cosine of an angle
(specified in degrees).
cos (63) = 0.45
Returns the cube of a number.
cube (3) = 27
acos (cos-satellite-angle)
asin (sin-satellite-angle)
atan (tan-satellite-angle)
atan2 (longitude, latitude)
cbrt (volume)
ceil (growth rate)
cos (beam angle)
cube (length)
exp
exp2
Returns Euler’s number (~2.718)
raised to a power.
exp (2) = 7.38905609893
Returns 2 raised to a power.
exp2 (3) = 8
exp (growth)
exp2 (growth)
floor
ln
Returns the largest previous integer.
floor (5.1) = 5
Returns the natural logarithm.
ln (7.38905609893) = 2
floor (growth rate)
ln (distance)
log10
log2
mod
ThoughtSpot Users Guide
Returns the logarithm with base
10.
log10 (100) = 2
Returns the logarithm with base 2
(binary logarithm).
log2 (32) = 5
Returns the remainder of first
number divided by the second
number.
mod (8, 3) = 2
log10 (volume)
log2 (volume)
mod ( revenue , quantity )
Page 357
Row level security rules reference
Function
pow
random
round
safe_divide
sign
sin
spherical_distance
February 07, 2019
Description
Examples
Returns the first number raised to
the power of the second number.
pow (5, 2) = 25
Returns a random number between 0 and 1.
random ( ) = .457718
Returns the first number rounded
to the second number (the default is 1).
round (35.65, 10) = 40
Returns the result of dividing the
first number by the second. If the
second number is 0, returns 0 instead of NaN (not a number).
safe_divide (12, 0) = 0
pow (width, 2)
random ( )
round (battingavg, 100)
safe_divide (total_cost,
units)
Returns +1 if the number is
greater than zero, -1 if less than
zero, 0 if zero.
sign (-250) = -1
Returns the sine of an angle
(specified in degrees).
sin (35) = 0.57
Returns the distance in km between two points on Earth.
sign (growth rate)
sin (beam angle)
spherical_distance
(37.465191, -122.153617,
37.421962, -122.142174) =
4,961.96
spherical_distance (start_latitude, start_longitude,
start_latitude, start_longitude)
sq
sqrt
Returns the square of a numeric
value.
sq (9) = 81
Returns the square root.
sqrt (9) = 3
sq (width)
sqrt (area)
tan
ThoughtSpot Users Guide
Returns the tangent of an angle
(specified in degrees).
tan (35) = 0.7
tan (beam angle)
Page 358
Row level security rules reference
February 07, 2019
Operators
Operator
and
Description
Examples
Returns true when both conditions
are true, otherwise returns false.
(1 = 1) and (3 > 2) = true
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,
otherwise returns the second.
ifnull (cost, 'unknown')
isnull
Returns true if the value is null.
isnull (phone)
not
Returns true if the condition is false,
otherwise returns false.
not (3 > 2) = false
Returns true when either condition is
true, otherwise returns false.
(1 = 5) or (3 > 2) = true
or
not (state = 'texas')
state = 'california' or state
='oregon'
Text functions
Function
concat
contains
Description
Returns the one or more values
as a concatenated text string.
Be sure to use single quotes
instead of double quotes
around each of the strings.
Returns true if the first string
contains the second string,
otherwise returns false.
Examples
concat ( 'hay' , 'stack' )
= 'haystack'
concat (last_name ,
first_name )
contains ('broomstick',
'room') = true
contains (product, 'trial
version')
ThoughtSpot Users Guide
Page 359
Row level security rules reference
Function
edit_distance
edit_distance_with_cap
similar_to
similarity
spells_like
ThoughtSpot Users Guide
February 07, 2019
Description
Accepts two text strings. Returns the edit distance (minimum number of operations required to transform one string
into the other) as an integer.
Works with strings under 1023
characters.
Accepts two text strings and
an integer to specify the upper
limit cap for the edit distance
(minimum number of operations required to transform one
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 under 1023 characters.
Accepts a document text string
and a search text string. Returns true if relevance score
(0-100) of the search string
with respect to the document
is greater than or equal to 20.
Relevance is based on edit distance, number of words in the
query, and length of words in
the query which are present in
the document.
Accepts a document text string
and a search text string. Returns the relevance score
(0-100) of the search string
with respect to the document.
Relevance is based on edit distance, 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, returns 100.
Accepts two text strings. Returns true if they are spelled
similarly and false if they are
not. Works with strings under
1023 characters.
Examples
edit_distance ('attorney',
'atty') = 4
edit_distance (color,
'red')
edit_distance_with_cap
('pokemon go', 'minecraft
pixelmon', 3) = 4
edit_distance_with_cap
(event, 'burning man', 3)
similar_to ('hello world',
'hello swirl') = true
similar_to (current team,
drafted by)
similarity ('where is the
burning man concert', 'burning man') = 46
similarity (tweet1, tweet2)
spells_like ('thouhgtspot',
'thoughtspot') = true
spells_like (studio, distributor)
Page 360
Row level security rules reference
Function
strlen
February 07, 2019
Description
Returns the length of the text.
Examples
strlen ('smith') = 5
strlen (lastname)
strpos
substr
Returns the numeric position
(starting from 0) of the first occurrence of the second string
in the first string, or -1 if not
found.
Returns the portion of the given string, beginning at the location specified (starting from
0), and of the given length.
strpos ('haystack_with_needles', 'needle') = 14
strpos (complaint,
'lawyer')
substr ('persnickety', 3,
7) = snicket
substr (lastname, 0, 5)
Variables
These variables can be used in your expressions.
Function
Description
Examples
ts_groups
Returns a list of all the groups the current logged
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_groups = 'east'
ts_username
Returns the user with the matching neame.
ts_username != 'mark'
ThoughtSpot Users Guide
Page 361
Formula function reference
February 07, 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
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
and
Description
Returns true when both conditions
are true, otherwise returns false.
Examples
(1 = 1) and (3 > 2) = true
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,
otherwise returns the second.
ifnull (cost, 'unknown')
isnull
Returns true if the value is null.
isnull (phone)
not
Returns true if the condition is false,
otherwise returns false.
not (3 > 2) = false
Returns true when either condition is
true, otherwise returns false.
(1 = 5) or (3 > 2) = true
or
not (state = 'texas')
state = 'california' or state
='oregon'
Aggregate functions (group aggregate)
These functions can be used to aggregate data.
Function
average
ThoughtSpot Users Guide
Description
Returns the average of all the values of a
column.
Examples
average (revenue)
Page 362
Formula function reference
Function
average_if
February 07, 2019
Description
Examples
Returns the average of all the columns that
meet a given criteria.
"San Francisco", rev-
average_if(city =
enue)
count
Returns the number of rows in the table
containing the column.
count_if
Returns the number of rows in the table
containing the column.
cumulative_average
cumulative_max
cumulative_min
cumulative_sum
group_aggregate
Takes a measure and one or more attributes. Returns the average of the measure, accumulated by the attribute(s) in the order
specified.
Takes a measure and one or more attributes. Returns the maximum of the measure,
accumulated by the attribute(s) in the order
specified.
Takes a measure and one or more attributes. Returns the minimum of the measure,
accumulated by the attribute(s) in the order
specified.
Takes a measure and one or more attributes. Returns the sum of the measure, accumulated by the attribute(s) in the order
specified.
Takes a measure and, optionally, attributes
and filters. These can be used to aggregate
measures with granularities and filters different from the terms/columns used in the
search. Especially useful for comparison
analysis.
count (product)
count_if(region
=’west’, region)
cumulative_average
(revenue, order date,
state)
cumulative_max (revenue, state)
cumulative_min (revenue, campaign)
cumulative_sum (revenue, order date)
group_aggregate (sum
(revenue) , {ship
mode, date} , {} )
group_aggregate (sum
(revenue) , {ship
mode , date},
This formula takes the form: group_aggregate (< aggregation (measure) >, < groupings >, < filters >)
{day_of_week (date) =
Lists can be defined with {} and optional list
functions query_groups or query_filters , which by default specify the lists or
filters used in the original search. Plus (+) or
(-) can be used to add or exclude specific
columns for query groups.
(revenue) ,
'friday'} )
group_aggregate (sum
query_groups() ,
query_filters() )
group_aggregate (sum
(revenue) ,
query_groups() +
{date} , query_filters() )
ThoughtSpot Users Guide
Page 363
Formula function reference
Function
group_average
group_count
group_max
group_min
group_stddev
group_sum
group_unique_count
group_variance
February 07, 2019
Description
Examples
Takes a measure and one or more attributes. Returns the average of the measure
grouped by the attribute(s).
enue, customer re-
Takes a measure and one or more attributes. Returns the count of the measure
grouped by the attribute(s).
customer region)
Takes a measure and one or more attributes. Returns the maximum of the measure
grouped by the attribute(s).
customer region)
Takes a measure and one or more attributes. Returns the minimum of the measure
grouped by the attribute(s).
customer region)
Takes a measure and one or more attributes. Returns the standard deviation of the
measure grouped by the attribute(s).
enue, customer region)
Takes a measure and one or more attributes. Returns the sum of the measure
grouped by the attribute(s).
customer region)
Takes a measure and one or more attributes. Returns the unique count of the measure grouped by the attribute(s).
(product , supplier)
Takes a measure and one or more attributes. Returns the variance of the measure
grouped by the attribute(s).
enue, customer region)
max
Returns the maximum value of a column.
max_if
Returns the maximum value among
columns that meet a criteria.
group_average (revgion, state)
group_count (revenue,
group_max (revenue,
group_min (revenue,
group_stddev (rev-
group_sum (revenue,
group_unique_count
group_variance (rev-
max (sales)
max_if( (revenue >
10) , customer region
)
min
Returns the minimum value of a column.
min_if
Returns the minimum value among columns
that meet a criteria.
min (revenue)
min_if( (revenue <
10) , customer region
)
ThoughtSpot Users Guide
Page 364
Formula function reference
Function
moving_average
moving_max
moving_min
moving_sum
ThoughtSpot Users Guide
February 07, 2019
Description
Takes a measure, two integers to define the
window to aggregate over, and one or more
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 Current, specify a negative number for Num2.
Returns the average of the measure over
the given window. The attributes are the ordering columns used to compute the moving average.
Takes a measure, two integers to define the
window to aggregate over, and one or more
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 Current, specify a negative number for Num2.
Returns the maximum of the measure over
the given window. The attributes are the ordering columns used to compute the moving maximum.
Takes a measure, two integers to define the
window to aggregate over, and one or more
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 Current, specify a negative number for Num2.
Returns the minimum of the measure over
the given window. The attributes are the ordering columns used to compute the moving minimum.
Takes a measure, two integers to define the
window to aggregate over, and one or more
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 Current, specify a negative number for Num2.
Returns the sum of the measure over the
given window. The attributes are the ordering columns used to compute the moving
sum.
Examples
moving_average (revenue, 2, 1, customer
region)
moving_max (complaints, 1, 2, store
name)
moving_min (defects,
3, 1, product)
moving_sum (revenue,
1, 1, order date)
Page 365
Formula function reference
Function
February 07, 2019
Description
Examples
stddev
Returns the standard deviation of all values
of a column.
stddev_if
Returns a standard deviation values filtered
to meet a specific criteria.
stddev (revenue)
stddev_if( (revenue >
10) , (revenue/10.0) )
sum
Returns the sum of all the values of a column.
sum_if
Returns sum values filtered by a specific
criteria.
revenue)
Returns the number of unique values of a
column.
tomer)
Returns the number of unique values of a
column provided it meets a criteria.
enue > 10) , order
unique count
unique_count_if
sum (revenue)
sum_if(region=’west’,
unique count (cus-
unique_count_if( (revdate )
variance
Returns the variance of all the values of a
column.
variance_if
Returns the variance of all the values of a
column provided it meets a criteria..
variance (revenue)
variance_if( (revenue
> 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
to_bool
Description
Returns the input as a boolean (true or false).
Examples
to_bool (0) = false
to_bool (married)
to_date
to_double
Accepts a date represented as an integer or text
string, and a second string parameter that can
include strptime date formatting elements. Replaces all the valid strptime date formatting elements with their string counterparts and returns
the result. Does not accept epoch formatted
dates as input.
Returns the input as a double.
to_date (date_sold, '%Y%m-%d')
to_double ('3.14') = 3.14
to_double (revenue * .01)
ThoughtSpot Users Guide
Page 366
Formula function reference
Function
to_integer
February 07, 2019
Description
Examples
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 convert a
date to a string, specify the date format you
want to use.
to_string (45 + 1) = '46'
to_string (revenue cost)
to_string
(date,('%m/%d/%y'))
Date functions
Function
add_days
Description
Returns the result of
adding the specified
number of days to
the given date.
Examples
add_days (01/30/2015, 5) = 02/04/
2015
add_days (invoiced, 30)
date
Returns the date
portion of a given
date.
date (home visit)
day
Returns the number
(1-31) of the day for
the given date.
day (01/15/2014) = 15
day_number_of_quarter
day_number_of_week
ThoughtSpot Users Guide
Returns the number
of the day in a quarter for a given date.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the number
(1-7) of the day in a
week for a given
date with 1 being
Monday and 7 being
Sunday.
day (date ordered)
day_number_of_quarter (01/30/2015)
= 30
day_number_of_quarter (01/30/2015,
'fiscal') = 91
day_number_of_week(01/15/2014) = 3
day_number_of_week (shipped)
Page 367
Formula function reference
Function
day_number_of_year
day_of_week
diff_days
diff_time
February 07, 2019
Description
Returns the number
(1-366) of the day in
a year from a given
date. Add an optional second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the day of
the week for the given date.
Subtracts the second date from the
first date and returns
the result in number
of days, rounded
down if not exact.
Subtracts the second date from the
first date and returns
the result in number
of seconds.
Examples
day_number_of_year (01/30/2015) =
30
day_number_of_year ( 01/30/2015,
'fiscal' ) = 275
day_number_of_year (invoiced)
day_of week (01/30/2015) = Friday
day_of_week (serviced)
diff_days (01/15/2014, 01/17/2014)
= -2
diff_days (purchased, shipped)
diff_time (01/01/2014, 01/01/2014)
= -86,400
diff_time (clicked, submitted)
hour_of_day
Returns the hour of
the day for the given
date.
hour_of_day (received)
is_weekend
Returns true if the
given date falls on a
Saturday or Sunday.
is_weekend (01/31/2015) = true
Returns the month
from the given date.
month (01/15/2014) = January
month
ThoughtSpot Users Guide
is_weekend (emailed)
month (date ordered)
Page 368
Formula function reference
Function
month_number
month_number_of_quarter
February 07, 2019
Description
Returns the number
(1-12) of the month
from a given date.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the month
(1-3) number for the
given date in a quarter. Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Examples
month_number (09/20/2014) = 9
month_number ( 09/20/2014, 'fiscal'
) = 5
month_number (purchased)
month_number_of_quarter (02/20/
2018) = 2
month_number_of_quarter (02/20/
2018,'fiscal' ) = 1
now
Returns the current
timestamp.
now ()
quarter_number
Returns the number
(1-4) of the quarter
associated with the
given date. Add an
optional second parameter to specify
'fiscal' or 'calendar'
dates. Default is
'calendar'. (In examples, start of fiscal
year is set to May
01.)
quarter_number ( 04/14/2014) = 2
ThoughtSpot Users Guide
quarter_number ( 04/14/2014, 'fiscal' ) = 4
quarter_number ( shipped )
Page 369
Formula function reference
Function
start_of_month
start_of_quarter
start_of_week
start_of_year
time
ThoughtSpot Users Guide
February 07, 2019
Description
Returns MMM yyyy
for the first day of
the month. Your installation configuration can override
this setting so that it
returns a different
format such as MM/
dd/yyyy . Speak
with your
ThoughtSpot administrator for information on doing this.
Returns the date for
the first day of the
quarter for the given
date. Add an optional second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the date for
the first day of the
week for the given
date.
Returns the date for
the first day of the
year for the given
date. Add an optional second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the time
portion of a given
date.
Examples
start_of_month ( 01/31/2015 ) = Jan
FY 2015
start_of_month (shipped)
start_of_quarter ( 04/01/2014) =
Apr 2014
start_of_quarter ( 04/01/2014, 'fiscal') = Feb 2014
start_of_quarter (sold)
start_of_week ( 06/01/2015 ) = 05/
30/2015 Week
start_of_week (emailed)
start_of_year (04/01/2014) returns
Jan 2014
start_of_year (04/01/2014, 'fiscal') returns May 2013
start_of_year (joined)
time (3/1/2002 10:32) = 10:32
time (call began)
Page 370
Formula function reference
Function
week_number_of_month
week_number_of_quarter
week_number_of_year
year
ThoughtSpot Users Guide
February 07, 2019
Description
Examples
Returns the week
number for the given
date in a month.
3
Returns the week
number for the given
date in a quarter.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01.)
Returns the week
number for the given
date in a year. Add
an optional second
parameter to specify
whether a 'fiscal' or
'calendar' year is
used to calculate
the result. Default is
'calendar'. (In examples, start of fiscal
year is set to May
01.)
Returns the year
from a given date.
Add an optional
second parameter
to specify whether a
'fiscal' or 'calendar'
year is used to calculate the result.
Default is 'calendar'.
(In examples, start
of fiscal year is set
to May 01. Per standard convention, the
fiscal year is defined
by the year-end
date.)
week_number_of_month(03/23/2017) =
week_number_of_quarter (04/03/2017)
= 1
week_number_of_quarter (04/03/2017,
'fiscal') = 10
week_number_of_year (01/17/2014) =
3
week_number_of_year ( 01/17/2014,
'fiscal') = 38
year (01/15/2014) = 2014
year (12/15/2013, 'fiscal' ) = 2014
year (date ordered)
Page 371
Formula function reference
February 07, 2019
Mixed functions
These functions can be used with text and numeric data types.
Function
!=
<
<=
=
>
>=
greatest
Description
Examples
Returns true if the first value is not
equal to the second value.
3 != 2 = true
Returns true if the first value is less
than the second value.
3 < 2 = false
Returns true if the first value is less
than or equal to the second value.
1 <= 2 = true
Returns true if the first value is equal to
the second value.
2 = 2 = true
Returns true if the first value is greater
than the second value.
3 > 2 = true
Returns true if the first value is greater
than or equal to the second value.
3 >= 2 = true
Returns the larger of the values.
greatest (20, 10) = 20
revenue != 1000000
revenue < 1000000
revenue <= 1000000
revenue = 1000000
revenue > 1000000
revenue >= 1000000
greatest (q1 revenue, q2 revenue)
least
Returns the smaller of the values.
least (20, 10) = 10
least (q1 revenue, q2 revenue)
Number functions
Function
*
+
-
/
ThoughtSpot Users Guide
Description
Examples
Returns the result of multiplying
both numbers.
3 * 2 = 6
Returns the result of adding both
numbers.
1 + 2 = 3
Returns the result of subtracting
the second number from the first.
3 - 2 = 1
Returns the result of dividing the
first number by the second.
6 / 3 = 2
price * taxrate
price + shipping
revenue - tax
markup / retail price
Page 372
Formula function reference
Function
^
abs
February 07, 2019
Description
Examples
Returns the first number raised to
the power of the second.
3 ^ 2 = 9
Returns the absolute value.
abs (-10) = 10
width ^ 2
abs (profit)
acos
asin
atan
atan2
cbrt
ceil
cos
cube
Returns the inverse cosine in degrees.
acos (0.5) = 60
Returns the inverse sine (specified in degrees).
asin (0.5) = 30
Returns the inverse tangent in
degrees.
atan (1) = 45
Returns the inverse tangent in
degrees.
atan2 (10, 10) = 45
Returns the cube root of a number.
cbrt (27) = 3
Returns the smallest following integer.
ceil (5.9) = 6
Returns the cosine of an angle
(specified in degrees).
cos (63) = 0.45
Returns the cube of a number.
cube (3) = 27
acos (cos-satellite-angle)
asin (sin-satellite-angle)
atan (tan-satellite-angle)
atan2 (longitude, latitude)
cbrt (volume)
ceil (growth rate)
cos (beam angle)
cube (length)
exp
exp2
Returns Euler’s number (~2.718)
raised to a power.
exp (2) = 7.38905609893
Returns 2 raised to a power.
exp2 (3) = 8
exp (growth)
exp2 (growth)
floor
ln
Returns the largest previous integer.
floor (5.1) = 5
Returns the natural logarithm.
ln (7.38905609893) = 2
floor (growth rate)
ln (distance)
log10
log2
mod
ThoughtSpot Users Guide
Returns the logarithm with base
10.
log10 (100) = 2
Returns the logarithm with base 2
(binary logarithm).
log2 (32) = 5
Returns the remainder of first
number divided by the second
number.
mod (8, 3) = 2
log10 (volume)
log2 (volume)
mod ( revenue , quantity )
Page 373
Formula function reference
Function
pow
random
round
safe_divide
sign
sin
spherical_distance
February 07, 2019
Description
Examples
Returns the first number raised to
the power of the second number.
pow (5, 2) = 25
Returns a random number between 0 and 1.
random ( ) = .457718
Returns the first number rounded
to the second number (the default is 1).
round (35.65, 10) = 40
Returns the result of dividing the
first number by the second. If the
second number is 0, returns 0 instead of NaN (not a number).
safe_divide (12, 0) = 0
pow (width, 2)
random ( )
round (battingavg, 100)
safe_divide (total_cost,
units)
Returns +1 if the number is
greater than zero, -1 if less than
zero, 0 if zero.
sign (-250) = -1
Returns the sine of an angle
(specified in degrees).
sin (35) = 0.57
Returns the distance in km between two points on Earth.
sign (growth rate)
sin (beam angle)
spherical_distance
(37.465191, -122.153617,
37.421962, -122.142174) =
4,961.96
spherical_distance (start_latitude, start_longitude,
start_latitude, start_longitude)
sq
sqrt
Returns the square of a numeric
value.
sq (9) = 81
Returns the square root.
sqrt (9) = 3
sq (width)
sqrt (area)
tan
Returns the tangent of an angle
(specified in degrees).
tan (35) = 0.7
tan (beam angle)
Text functions
Function
concat
ThoughtSpot Users Guide
Description
Returns the one or more values
as a concatenated text string.
Be sure to use single quotes
instead of double quotes
around each of the strings.
Examples
concat ( 'hay' , 'stack' )
= 'haystack'
concat (last_name ,
first_name )
Page 374
Formula function reference
Function
contains
February 07, 2019
Description
Examples
Returns true if the first string
contains the second string,
otherwise returns false.
'room') = true
contains ('broomstick',
contains (product, 'trial
version')
edit_distance
edit_distance_with_cap
similar_to
similarity
ThoughtSpot Users Guide
Accepts two text strings. Returns the edit distance (minimum number of operations required to transform one string
into the other) as an integer.
Works with strings under 1023
characters.
Accepts two text strings and
an integer to specify the upper
limit cap for the edit distance
(minimum number of operations required to transform one
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 under 1023 characters.
Accepts a document text string
and a search text string. Returns true if relevance score
(0-100) of the search string
with respect to the document
is greater than or equal to 20.
Relevance is based on edit distance, number of words in the
query, and length of words in
the query which are present in
the document.
Accepts a document text string
and a search text string. Returns the relevance score
(0-100) of the search string
with respect to the document.
Relevance is based on edit distance, 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, returns 100.
edit_distance ('attorney',
'atty') = 4
edit_distance (color,
'red')
edit_distance_with_cap
('pokemon go', 'minecraft
pixelmon', 3) = 4
edit_distance_with_cap
(event, 'burning man', 3)
similar_to ('hello world',
'hello swirl') = true
similar_to (current team,
drafted by)
similarity ('where is the
burning man concert', 'burning man') = 46
similarity (tweet1, tweet2)
Page 375
Formula function reference
Function
spells_like
strlen
February 07, 2019
Description
Accepts two text strings. Returns true if they are spelled
similarly and false if they are
not. Works with strings under
1023 characters.
Returns the length of the text.
Examples
spells_like ('thouhgtspot',
'thoughtspot') = true
spells_like (studio, distributor)
strlen ('smith') = 5
strlen (lastname)
strpos
substr
ThoughtSpot Users Guide
Returns the numeric position
(starting from 0) of the first occurrence of the second string
in the first string, or -1 if not
found.
Returns the portion of the given string, beginning at the location specified (starting from
0), and of the given length.
strpos ('haystack_with_needles', 'needle') = 14
strpos (complaint,
'lawyer')
substr ('persnickety', 3,
7) = snicket
substr (lastname, 0, 5)
Page 376
Alerts code reference
February 07, 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
Msg: Task {{.Service}}.{{.Task}} terminated on machine {{.Machine}}
Type
Type: INFO
This alert is raised when a task terminates.
DISK_ERROR
Msg
Msg: Machine {{.Machine}} has disk errors
Type
Type: INFO
Raised when a machine has disk errors.
ZK_AVG_LATENCY
Msg
Msg: Average Zookeeper latency is more than {{.Num}} msec
Type
Type: INFO
Raised when average Zookeeper latency is above a threshold.
ZK_MAX_LATENCY
Msg
Msg: Max Zookeeper latency is more than {{.Num}} msec
Type
Type: INFO
Raised when max Zookeeper latency is above a threshold.
ZK_MIN_LATENCY
Msg
Msg: Min Zookeeper latency is more than {{.Num}} msec
Type
Type: INFO
Raised when min Zookeeper latency is above a threshold.
ZK_OUTSTANDING_REQUESTS
Msg
Msg: Number of outstanding Zookeeper requests exceeds {{.Num}}
Type
Type: INFO
ThoughtSpot Users Guide
Page 377
Alerts code reference
February 07, 2019
Raised when there are too many outstanding Zookeeper requests.
ZK_NUM_WATCHERS
Msg
Msg: Number of Zookeeper watchers exceeds {{.Num}}
Type
Type: INFO
Raised when there are too many Zookeeper watchers.
MASTER_ELECTION
Msg
Msg: {{.Machine}} elected as Orion Master
Type
Type: INFO
Raised when a new Orion Master is elected.
PERIODIC_BACKUP
Msg
Msg: {{.Process}} periodic backup for policy {{.Name}} failed.
Type
Type: INFO
Raised when periodic backup fails.
PERIODIC_SNAPSHOT
Msg
Msg: {{.Process}} periodic snapshot {{.Name}} failed.
Type
Type: INFO
Raised when a periodic snapshot fails.
HDFS_CORRUPTION
Msg
Msg: HDFS root directory is in a corrupted state.
Type
Type: INFO
Raised when HDFS root directory is corrupted.
APPLICATION_INVALID_STATE
Msg
Msg: {{.Service}}.{{.Task}} on {{.Machine}} at location {{.Location}}
Type
Type: INFO
Raised when Application raises invalid state alert.
UPDATE_START
Msg
Msg: Starting update of ThoughtSpot cluster {{.Cluster}}
Type
Type: INFO
Raised when update starts.
ThoughtSpot Users Guide
Page 378
Alerts code reference
February 07, 2019
UPDATE_END
Msg
Msg: Finished update of ThoughtSpot cluster {{.Cluster}} to release {{.Release}}
Type
Type: INFO
Raised when update completes.
Errors
TIMELY_JOB_RUN_ERROR
Msg
Msg: Job run {{.Message}}
Type
Type: ERROR
Raised when a job run fails.
TIMELY_ERROR
Msg
Msg: Job manager {{.Message}}
Type
Type: ERROR
Raised when a job manager runs into an inconsistent state.
Warnings
DISK_SPACE
Msg
Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free
Type
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
Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free on root partition
Type
Type: WARNING
Raised when a machine is low on available disk space on root partition.
BOOT_DISK_SPACE
Msg
Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free on boot partition
Type
Type: WARNING
Raised when a machine is low on available disk space on boot partition.
ThoughtSpot Users Guide
Page 379
Alerts code reference
February 07, 2019
UPDATE_DISK_SPACE
Msg
Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free on update
partition
Type
Type: WARNING
Raised when a machine is low on available disk space on update partition.
EXPORT_DISK_SPACE
Msg
Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free on export
partition
Type
Type: WARNING
Raised when a machine is low on available disk space on export partition.
HDFS_NAMENODE_DISK_SPACE
Msg
Msg: Machine {{.Machine}} has less than {{.Perc}}% disk space free on HDFS namenode
drive
Type
Type: WARNING
Raised when a machine is low on available disk space on HDFS namenode drive.
MEMORY
Msg
Msg: Machine {{.Machine}} has less than {{.Perc}}% memory free
Type
Type: WARNING
Raised when a machine is low on free memory.
OS_USERS
Msg
Msg: Machine {{.Machine}} has more than {{.Num}} logged in users
Type
Type: WARNING
Raised when a machine has too many users logged in.
OS_PROCS
Msg
Msg: Machine {{.Machine}} has more than {{.Num}} processes
Type
Type: WARNING
Raised when a machine has more too many processes.
SSH
Msg
Msg: Machine {{.Machine}} doesn't have an active SSH server
ThoughtSpot Users Guide
Page 380
Alerts code reference
February 07, 2019
Type
Type: WARNING
Raised when a machine has more than 600 processes.
DISK_ERROR_EXTERNAL
Msg
Msg: Machine {{.Machine}} has disk errors
Type
Type: WARNING
Raised when more than 2 disk errors happen in a day.
ZK_FD_COUNT
Msg
Msg: Zookeeper has more than {{.Num}} open file descriptors
Type
Type: WARNING
Raised when there are too many open Zookeeper files.
ZK_EPHEMERAL_COUNT
Msg
Msg: Zookeeper has more than {{.Num}} ephemeral files
Type
Type: WARNING
Raised when there are too many Zookeeper ephemeral files.
HOST_DOWN
Msg
Msg: {{.Machine}} is down
Type
Type: WARNING
Raised when a host is down.
TASK_UNREACHABLE
Msg
Msg: {{.ServiceDesc}} on {{.Machine}} is unreachable over HTTP
Type
Type: WARNING
Raised when a task is unreachable over HTTP.
TASK_NOT_RUNNING
Msg
Msg: {{.ServiceDesc}} is not running
Type
Type: WARNING
Raised when a service task is not running on any machine in the cluster.
ThoughtSpot Users Guide
Page 381
Alerts code reference
February 07, 2019
Critical alerts
TASK_FLAPPING
Msg
Msg: Task {{.Service}}.{{.Task}} terminated {{._actual_num_occurrences}} times in last
{{._earliest_duration_str}}
Type
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
Msg: Oreo terminated on machine {{.Machine}}
Type
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
Msg: HDFS has less than {{.Perc}}% space free
Type
Type: CRITICAL
Raised when a HDFS cluster is low on total available disk space.
ZK_INACCESSIBLE
Msg
Msg: Zookeeper is not accessible
Type
Type: CRITICAL
Raised when Zookeeper is inaccessible.
PERIODIC_BACKUP_FLAPPING
Msg
Msg: Periodic backup failed {{._actual_num_occurrences}} times in last
{{._earliest_duration_str}}
Type
Type: CRITICAL
This alert is raised when a periodic backup failed repeatedly.
PERIODIC_SNAPSHOT_FLAPPING
Msg
Msg: Periodic snapshot failed {{._actual_num_occurrences}} times in last
{{._earliest_duration_str}}
Type
Type: CRITICAL
ThoughtSpot Users Guide
Page 382
Alerts code reference
February 07, 2019
This alert is raised when periodic snapshot failed repeatedly.
APPLICATION_INVALID_STATE_EXTERNAL
Msg
Msg: {{.Service}}.{{.Task}} on {{.Machine}} at location {{.Location}}
Type
Type: CRITICAL
Raised when Application raises invalid state alert.
ThoughtSpot Users Guide
Page 383
User action code reference
February 07, 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 worksheet 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 pinboard 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.
answer_viz_context_view
User opens an existing saved pinboard, edits a
context viz.
pinboard_insight_view
User opens SpotIQ tab pinboards.
ThoughtSpot Users Guide
Page 384
User action code reference
February 07, 2019
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 runtime filters.
ThoughtSpot Users Guide
Page 385
Error code reference
February 07, 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
been added to {2}.
\# {1} – name of visualization \# {2} –
{name/link to pinboard}
None
None
TS-00101
ERROR
Failure adding {1} to
{2}
Visualization could
not be added to {2}
\# {1} – name of visualization \# {2} –
name/link to pinboard
None
TS-00102
ERROR
Failure adding {1} to
{2} due to corruption
{1} could not be
added to {2} as the
pinboard has one or
more invalid visualizations
Please try again after
removing the invalid
visualization(s) from
{2} \# {1} – name of visualization \# {2} –
name/link to pinboard
TS-00103
INFO
Success. Visualization has been deleted from {1}. 1 –
name/link to pinboard
None
None
ThoughtSpot Users Guide
Page 386
Error code reference
February 07, 2019
TS-00104
ERROR
Failure deleting visual from {1}
Visualization could
not be deleted from
the pinboard. 1 –
name/link to pinboard
None
TS-00105
ERROR
Failure deleting visual from {1} due to
corruption
Visualization could
not be deleted from
{1} as the pinboard
has one or more invalid visualizations.
1 – name/link to pinboard
Please try again after
removing the invalid
visualization(s) from
the pinboard
TS-00106
INFO
Success. {1} created
successfully. 1 –
name/link to pinboard
None
None
TS-00107
ERROR
Failure creating {1}.
1 – name/link to pinboard
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00108
INFO
Sticker created successfully.
None
None
TS-00109
ERROR
Failure creating the
sticker.
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00110
INFO
Sticker deleted successfully.
None
None
TS-00111
ERROR
Failure deleting
sticker.
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00112
INFO
Pinboards deleted
successfully.
None
None
TS-00113
ERROR
Failure deleting pinboards
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00114
INFO
Answers deleted
successfully.
None
None
ThoughtSpot Users Guide
Page 387
Error code reference
February 07, 2019
TS-00115
ERROR
Failure deleting answers
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00116
INFO
Tables deleted successfully.
None
None
TS-00117
ERROR
Failure deleting tables
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00118
INFO
Relationship created
successfully.
None
None
TS-00119
ERROR
Failure creating relationship
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00120
INFO
Relationship updated successfully.
None
None
TS-00121
ERROR
Failure updating the
relationship
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00122
INFO
Relationship deleted
successfully.
None
None
TS-00123
ERROR
Failure deleting the
relationship
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00124
ERROR
Failure fetching details for table
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00125
ERROR
Failure fetching details for the tables
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
ThoughtSpot Users Guide
Page 388
Error code reference
February 07, 2019
TS-00126
ERROR
Failure fetching details for datasource
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00127
ERROR
Failure fetching details for datasources
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00128
ERROR
Failure fetching details for metadata
items
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00129
ERROR
Failure opening the
answer
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00130
ERROR
Failure opening the
pinboard
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00131
ERROR
Failure opening the
worksheet
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00132
INFO
Table saved successfully.
None
None
TS-00133
ERROR
There was a problem saving the table
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00134
INFO
Visualization update
successful
None
None
TS-00135
ERROR
Visualization failed
to update
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
ThoughtSpot Users Guide
Page 389
Error code reference
February 07, 2019
TS-00136
INFO
{1} saved 1 – name
of answer
None
None
TS-00137
ERROR
{1} could not be
saved 1 – name of
answer
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00138
INFO
{1} saved 1 - name
of pinboard / link
None
None
TS-00139
ERROR
{1} could not be
saved 1 - name of
pinboard / link
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00140
INFO
{1} saved 1 – name
of worksheet
None
None
TS-00141
ERROR
{1} could not be
saved 1 – name of
worksheet
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00142
INFO
{1} saved 1 – name
of answer
None
None
TS-00143
ERROR
{1} could not be
saved
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}. 1 – name
of answer
None
TS-00144
INFO
{1} saved 1 – name/
link to pinboard
None
None
TS-00145
ERROR
{1} could not be
saved
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}. 1 – name
of pinboard
None
TS-00146
INFO
Worksheet saved
None
None
TS-00147
ERROR
Worksheet could not
be saved
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
ThoughtSpot Users Guide
Page 390
Error code reference
February 07, 2019
TS-00148
INFO
Sticker updated
None
None
TS-00149
ERROR
The sticker could
not be updated
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00150
INFO
Successfully assigned sticker
None
None
TS-00151
ERROR
The sticker could
not be assigned
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00152
INFO
Successfully unassigned sticker
None
None
TS-00153
ERROR
The sticker could
not be unassigned
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00154
ERROR
Failed to fetch metadata list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00155
ERROR
Failed to fetch table
list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00156
ERROR
Failed to fetch relationship list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00157
ERROR
Failed to fetch answer list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
ThoughtSpot Users Guide
Page 391
Error code reference
February 07, 2019
TS-00158
ERROR
Failed to fetch pinboard list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00159
ERROR
Failed to fetch worksheet list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00160
ERROR
Failed to fetch aggregated worksheet
list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00161
ERROR
Failed to fetch imported data list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00162
ERROR
Failed to fetch system table list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00163
ERROR
Failed to DB view
list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00164
ERROR
Failed to fetch data
source list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00165
ERROR
Failed to fetch column list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00166
ERROR
Failed to label list
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
ThoughtSpot Users Guide
Page 392
Error code reference
February 07, 2019
TS-00167
ERROR
Failed to fetch answer
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00168
ERROR
Failed to fetch worksheet
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00169
INFO
Aggregated worksheet {1} created 1 –
name of aggregated
worksheet
None
None
TS-00170
ERROR
Failure creating Aggregated Worksheet.
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00171
INFO
{1} updated 1 –
name of aggregated
worksheet
None
None
TS-00172
ERROR
{1} failed to update
1 – name of aggregated worksheet
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00173
ERROR
{1} failed to update
1 – name of the formula
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00174
ERROR
Comments cannot
be fetched
Failed to save client
state
None
TS-00175
ERROR
Comment cannot be
created
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00176
ERROR
Comment cannot be
updated
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
ThoughtSpot Users Guide
Page 393
Error code reference
February 07, 2019
TS-00177
ERROR
Comment cannot be
deleted
Uh oh. We’re not
sure what happened. Please email
the trace file to {adminEmail}.
None
TS-00178
INFO
Rule saved successfully
None
None
TS-00179
ERROR
Rule could not be
saved
We're not sure what
happened. Please
email the trace file
to {adminEmail}.
None
TS-00180
INFO
Rule deleted successfully
None
None
TS-00181
ERROR
Rule could not be
deleted
We're not sure what
happened. Please
email the trace file
to {adminEmail}.
None
TS-00182
INFO
Item deleted successfully.
None
None
TS-00183
ERROR
Item could not be
deleted.
We're not sure what
happened. Please
email the trace file
to {adminEmail}.
None
TS-00184
INFO
Related link created
successfully.
None
None
TS-00185
ERROR
Related link could
not be created.
Uh oh. We're not
sure what happened. Please click
'Report Problem' to
email a report to
your administrator,
{adminEmail}.
None
TS-00186
INFO
Related link updated
successfully.
None
None
TS-00187
ERROR
Related link could
not be updated.
Uh oh. We're not
sure what happened. Please click
'Report Problem' to
email a report to
your administrator,
{adminEmail}.
None
TS-00188
INFO
Related link deleted
successfully.
None
None
ThoughtSpot Users Guide
Page 394
Error code reference
February 07, 2019
TS-00189
ERROR
Related link could
not be deleted.
Uh oh. We're not
sure what happened. Please click
'Report Problem' to
email a report to
your administrator,
{adminEmail}.
None
TS-00190
INFO
Related link detail
fetched successfully.
None
None
TS-00191
ERROR
Related link detail
could not be
fetched.
Uh oh. We're not
sure what happened. Please click
'Report Problem' to
email a report to
your administrator,
{adminEmail}.
None
Data Service Errors (500 - 699)
Code
Severity
Summary
Details
Action
TS-00500
ERROR
Failed to fetch
leaf level data
Failed to fetch leaf level data.
None
TS-00501
ERROR
Failed to fetch
excel data
Failed to fetch excel data.
None
TS-00502
ERROR
Failed to fetch visualization data
Failed to fetch visuzliation data.
None
TS-00503
ERROR
Failed to fetch visualizations data
Failed to fetch data for visualizations.
None
TS-00504
ERROR
Failed to fetch
chart data
Failed to fetch table data.
None
TS-00505
ERROR
Failed to fetch
table data
Failed to fetch table data.
None
TS-00506
ERROR
Failed to fetch
worksheet data
Failed to fetch worksheet data.
None
TS-00507
ERROR
Failed to fetch
filter data
Failed to fetch filter data.
None
TS-00508
ERROR
Failed to fetch
headline data
Failed to fetch filter data.
None
ThoughtSpot Users Guide
Page 395
Error code reference
February 07, 2019
Code
Severity
Summary
Details
Action
TS-00509
ERROR
Failed to fetch
natural query
Failed to fetch natural query.
None
TS-00510
INFO
File upload successful
None
None
TS-00511
ERROR
Failed to upload
file
Failed to upload
None
TS-00512
ERROR
The pinboard data could not be
exported to pdf.
Uh oh. We’re not sure what happened. Please
click ‘Report Problem’ to email a report to your
administrator, {adminEmail}.
None
Dependency Errors (700 - 799)
Code
Severity
Summary
Details
Action
TS-00700
ERROR
Failure fetching table dependents
Failed to fetch dependents for the
table.
None
TS-00701
ERROR
Failure fetching column dependents
Failed to fetch dependents for the
column.
None
TS-00702
ERROR
Failure fetching incomplete
items
Failed to fetch incomplete items.
None
Admin Service Errors (800 - 899)
Code
Severity
Summary
Details
Action
TS-00800
ERROR
Failure fetching MemCache
stats
Failed to fetch MemCache
stats.
None
TS-00801
ERROR
Failure MemCache Clear
Failed to clear MemCache.
None
TS-00802
ERROR
Failure searching from MemCache
Failed to search from MemCache.
None
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 successfully
None
None
ThoughtSpot Users Guide
Page 396
Error code reference
February 07, 2019
Code
Severity
Summary
Details
Action
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 permissions
Failed to fetch table permissions.
None
TS-00901
ERROR
Failure fetching answer permissions
Failed to fetch answer permissions.
None
TS-00902
ERROR
Failure fetching pinboard permissions
Failed to fetch pinboard permissions.
None
TS-00903
ERROR
Failure getting metadata permissions
Failed to get metadata permissions.
None
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
ThoughtSpot Users Guide
Page 397
Error code reference
February 07, 2019
Code
Severity
Summary
Details
Action
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
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 report to your administrator.
TS-01110
INFO
Successfully created job.
None
None
TS-01111
ERROR
The job could not
be created.
None
Please click ‘Report Problem’ to email a report to your administrator.
TS-01112
INFO
Successfully updated job.
None
None
TS-01113
ERROR
The job could not
be updated.
None
Please click ‘Report Problem’ to email a report to your administrator.
TS-01114
INFO
Successfully deleted jobs.
None
None
TS-01115
ERROR
The job could not
be deleted.
None
Please click ‘Report Problem’ to email a report to your administrator.
TS-01116
INFO
The job was
paused.
None
None
TS-01117
ERROR
The job could not
be paused.
None
Please click ‘Report Problem’ to email a report to your administrator.
TS-01118
INFO
The job was resumed
None
None
TS-01119
ERROR
The job could not
be resumed.
None
Please click ‘Report Problem’ to email a report 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 398
Error code reference
February 07, 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 groups
list
Failed to fetch users and
groups list
None
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 password
Successfully updated password
None
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
groups
Successfully assigned users to
groups
None
TS-01220
ERROR
Failed to assign users to groups
Failed to assign users to groups
None
TS-01221
ERROR
Failed to fetch profile pic
Failed to fetch profile pic
None
TS-01222
INFO
Successfully uploaded profile
pic
None
None
TS-01223
ERROR
Failed to upload profile pic
Failed to upload profile pic
None
TS-01224
ERROR
Successfully assigned groups to
group
Failed to assign user to group
None
ThoughtSpot Users Guide
Page 399
Error code reference
February 07, 2019
Code
Severity
Summary
Details
Action
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
info
Failed to fetch session info
None
TS-01401
ERROR
Failed to login
Uh oh. We’re not sure what happened.
Please email the trace file to {adminEmail}.
None
TS-01402
ERROR
Failed to logout
Failed to logout
None
TS-01403
ERROR
Failed to save client
state
Failed to save client state
None
TS-01404
ERROR
Failed to fetch login config
Failed to fetch login config
None
TS-01405
ERROR
Failed to fetch slack
config
Failed to fetch slack config
None
TS-01406
ERROR
Health check failed
Health check failed
None
TS-01407
ERROR
Failed to fetch health
portal token
Failed to fetch health portal token
None
TS-01408
ERROR
The health portal release
name could not be retrieved
Uh oh. We’re not sure what happened.
Please email the trace file to {adminEmail}.
None
ThoughtSpot Users Guide
Page 400
Error code reference
February 07, 2019
Data Management Service Errors (1600 - 1799)
Code
Severity
Summary
Details
Action
TS-01600
ERROR
Failed to fetch data
source types
Failed to fetch data source types
None
TS-01601
ERROR
Failed to fetch data
source sample values
Failed to fetch data source sample
values
None
TS-01602
ERROR
Failed to delete data
source
Failed to delete data source
None
TS-01603
ERROR
Failed to execute DDL
Failed to execute DDL
None
TS-01604
ERROR
Failed to update schedule
Failed to update schedule
None
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
DDL
Failed to get creation DDL
None
TS-01608
ERROR
Failed to load from data
source
Failed to load from data source
None
TS-01609
ERROR
Failed to create connection to data source
Failed to create connection to data
source
None
TS-01610
ERROR
Failed to create data
source
Failed to create data source
None
TS-01611
ERROR
Failed to connect to data
source
Failed to connect to data source
None
TS-01612
ERROR
Failed to get data source
connection field info
Failed to get data source connection
field info
None
TS-01613
ERROR
Failed to get connection
list for data source
Failed to get connection list for data
source
None
TS-01614
ERROR
Failed to get connection
attributes for data source
Failed to get connection attributes for
data source
None
TS-01615
ERROR
Failed to get connections
to data source
Failed to get connections to data
source
None
ThoughtSpot Users Guide
Page 401
Error code reference
February 07, 2019
Code
Severity
Summary
Details
Action
TS-01616
ERROR
Failed to fetch data
source config
Failed to fetch data source config
None
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
connection to data
source
None
None
TS-01620
INFO
Successfully updated data upload schedule
None
None
TS-01621
ERROR
Failed to execute sql.
Please check the failing command,
executed {1} statements successfully.
None
TS-01622
ERROR
Lightweight data-cache
disabled
Lightweight data-cache disabled
None
TS-01623
INFO
Selected tables were
queued for loading.
Selected tables were queued for loading.
None
TS-01624
ERROR
DataType conversion error.
No mapping found for source
datatype to ThoughtSpot datatype.
None
TS-01625
INFO
Successfully reload task
started.
None
None
TS-01626
INFO
Successfully connected
to data source.
None
None
TS-01627
INFO
Successfully created data
source.
None
None
TS-01628
INFO
Successfully stopped the
tasks.
None
None
TS-01629
INFO
Successfully deleted the
connection.
None
None
TS-01630
ERROR
There was an error deleting this connection.
None
None
TS-01631
INFO
Successfully executed
the DDL.
None
None
ThoughtSpot Users Guide
Page 402
Error code reference
February 07, 2019
Cluster Status Service Errors (1800 - 1899)
Code
Severity
Summary
Details
Action
TS-01800
WARNING
Failed to fetch cluster information from search
service.
None
None
TS-01801
WARNING
Failed to fetch table detail information from
search service.
None
None
TS-01802
WARNING
Failed to fetch cluster information from database service.
None
None
TS-01803
WARNING
Failed to fetch table detail information from
databse service.
None
None
TS-01804
WARNING
Failed to fetch cluster information from cluster
management service.
None
None
TS-01805
WARNING
Failed to fetch detail information from cluster
management service.
None
None
TS-01806
WARNING
Failed to fetch log from cluster management
service.
None
None
TS-01807
WARNING
Failed to fetch snapshot list from cluster management service.
None
None
TS-01808
WARNING
Failed to fetch cluster information from alert
management service.
None
None
TS-01809
WARNING
Failed to fetch cluster information from event
service.
None
None
TS-01810
WARNING
Failed to fetch alerts information from alert
management service.
None
None
TS-01811
WARNING
Failed to fetch events information from alert
management service.
None
None
TS-01812
INFO
Thanks for your feedback!
None
None
TS-01813
WARNING
Sorry! Unable to submit the feedback at this
moment!
None
None
TS-01814
INFO
Successfully exported objects. File can be
found at {1}.
None
None
TS-01815
ERROR
Sorry! Unable to export objects at this moment!
What happened? {1}.
None
ThoughtSpot Users Guide
Page 403
Error code reference
February 07, 2019
Code
Severity
Summary
Details
Action
TS-01816
INFO
Successfully imported objects
None
None
TS-01817
ERROR
Sorry! Unable to import objects at this moment!
What happened? {1}.
None
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
trying to delete
has some dependencies
Some objects depend on the data
you are trying to delete
delete the dependencies
before deleting this data.
TS-09001
ERROR
Uh oh. We’re not
sure what happened.
Please email the trace file to {adminEmail}.
None
TS-09002
ERROR
Could not authorize user
Try logging in again
None
TS-09003
ERROR
Uh oh. We’re not
sure what happened.
Please email the trace file to {adminEmail}.
None
TS-09004
WARNING
Still loading data,
come back soon
None
None
TS-09005
ERROR
Uh oh. We’re having trouble getting
data for this request.
Please email the trace file to {adminEmail}.
None
TS-09006
ERROR
Uh oh. We’re having trouble getting
data for this request.
Please email the trace file to {adminEmail}.
None
TS-09007
ERROR
Uh oh. We’re having trouble getting
data for this request.
Please email the trace file to {adminEmail}.
None
TS-09008
ERROR
Something went
wrong with your
search
Uh oh. We’re not sure what happened. Please email the trace file
to {adminEmail}.
None
ThoughtSpot Users Guide
Page 404
Error code reference
February 07, 2019
Code
Severity
Summary
Details
Action
TS-09009
ERROR
The calculation
engine has timed
out. Please try
again.
Please email the trace file to {adminEmail}.
None
TS-09010
ERROR
Cannot open Object
Object cannot be opened due to
errors in some of its dependencies
None
TS-09500
WARNING
Cannot connect
to the calculation
engine. Please try
again soon.
None
None
TS-09501
WARNING
The calculation
engine has timed
out. Please try
again.
None
None
TS-09502
WARNING
Cannot connect
to the search engine. Please try
again soon.
None
None
TS-09503
WARNING
The search engine has timed
out. Please try
again.
None
None
TS-09504
ERROR
Cannot open {1}
{1} cannot be opened due to errors in the following dependencies
1 - Type of the object Table/Answer/Pinboard etc.
None
TS-09505
WARNING
We’re still indexing this data, try
again soon
None
None
TS-09506
ERROR
Object is not present in the system
{1} is not present in the system 1 Type of the object Table/Answer/
Pinboard etc.
None
TS-09507
ERROR
ThoughtSpot is
unreachable.
Please try again
soon
None
None
TS-0Blink
Generated
Errors
(9500 9599)
ThoughtSpot Users Guide
Page 405
Error code reference
February 07, 2019
Common Errors (10000 - 10099)
Code
Severity
Summary
Details
Action
TS-10000
ERROR
A system error has occurred
Uh oh. We’re not sure what happened.
Please contact your administrator.
None
TS-10001
ERROR
Connection
failed
The metadata store is not reachable.
Please contact
your administrator
TS-10002
ERROR
The input is
invalid
Input from the client to the server is invalid.
Please contact
your administrator
TS-10003
ERROR
Unfortunately,
you can’t do
that
You are not authorized to perform {1}. #
{1} – action user is not authorized for
Please request
access from
your administrator
TS-10004
ERROR
The user
could not be
authorized
User {0} is not authorized to perform
{1}. # {0} – name of the user # {1} – action user is not authorized for
Please request
access from
your administrator
TS-10005
ERROR
The base object is missing
An underlying object referenced by this
object is missing in store.
Please contact
your administrator
TS-10006
ERROR
The connection to
Zookeeper
has failed
Zookeeper is not reachable.
Please contact
your administrator
TS-10007
ERROR
There’s invalid parameter(s)
Invalid parameter values: {0}.
Please contact
your administrator
TS-10008
ERROR
The user cannot be found
User {0} not found in store. # {0} –
name of the user
Please contact
your administrator
TS-10009
ERROR
Cannot add
group
This group already belongs to the
group you are trying to add it to.
None
ThoughtSpot Users Guide
Page 406
Error code reference
February 07, 2019
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 resultset
None
None
TS-11003
ERROR
Invalid column identifier
None
None
TS-11004
ERROR
Invalid visualization
identifier
None
None
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
failed
Error in Answer data generation for
Sage input.
None
TS-11008
ERROR
Data export failed
None
None
TS-11009
ERROR
Data generation failed
Error in data generation in Callosum.
None
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 invalid.
None
TS-12702
ERROR
No author provided.
None
None
TS-12703
ERROR
No pinboard provided.
None
None
ThoughtSpot Users Guide
Page 407
Error code reference
February 07, 2019
Code
Severity
Summary
Details
Action
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 unavailable.
None
None
TS-12712
ERROR
There are too many recipients.
The max number of recipients is
1000.
None
TS-12713
ERROR
Attachment size limit exceeded.
None
None
TS-12714
ERROR
Recipient domain is not
whitelisted.
None
None
More Metadata Errors (13000 - 13099)
Code
Severity
Summary
Details
Action
TS-13001
ERROR
Schema creation
failed
Error creating database
schema.
None
TS-13002
ERROR
Views creation
failed
Error creating view.
None
TS-13003
ERROR
The object cannot be found in
store
Object with Id: {0} of
type: {1} not found. #
{0} – identity of the object # {1} – type of object
None
TS-13004
ERROR
The object is in
an invalid state
Oject with Id: {0} of
type: {1} in invalid state.
# {0} – identity of the
object # {1} – type of
object
None
ThoughtSpot Users Guide
Page 408
Error code reference
February 07, 2019
Code
Severity
Summary
Details
Action
TS-13005
ERROR
Object already
exists
Object with Id: {0} of
type: {1} already exists.
# {0} – identity of the
object # {1} – type of
object
None
TS-13006
ERROR
Invalid object
type
Invalid type: {0} provided. # {1} – type of object
None
TS-13007
ERROR
Invalid Sage
question
Insufficient or invalid input from Sage: {0}. #
{0} – the invalid input
None
TS-13008
ERROR
Invalid Sage
question
Input from from Sage –
missing columns of
type: {0}. # {0} – column
type
None
TS-13009
ERROR
Invalid Sage
question
Invalid input from Sage
– invalid expression:
{0}. # {0} – the invalid
expression
None
TS-13010
ERROR
Sending logical
metadata to
Sage failed
Sending logical metadata to Sage failed due
to: {0}. # {0} – reason
for failure
None
TS-13011
ERROR
Answer generation failed
Answer generation
failed due to: {0}. # {0} –
reason for failure
None
TS-13012
ERROR
Worksheet generation failed
Worksheet generation
failed due to: {0}. # {0} –
reason for failure
None
TS-13013
ERROR
Service provider
unavailable
Service provider unavailable: {0}. # {0} –
provider details
None
TS-13015
ERROR
Physical model
not loaded
None
None
TS-13016
ERROR
Invalid physical
schema proto
Inconsistency in physical schema from Falcon: {0}. # {0} – error
details
None
TS-13017
ERROR
Invalid duplicate
columns
Duplicate columns: {0}.
# {0} – List of duplicate
column identities
None
ThoughtSpot Users Guide
Page 409
Error code reference
February 07, 2019
Code
Severity
Summary
Details
Action
TS-13018
ERROR
Cyclic relationship
Detected cycles: {0}. #
{0} – cycle details
None
TS-13019
WARNING
Older physical
schema version
received
Schema update for older version: {0} received
and ignored. # {0} – received version number
None
TS-13020
ERROR
Invalid relationship
Attempted to create invalid relationship: {0}. #
{0} – relationship details
None
TS-13022
ERROR
Invalid filter values: {values}
None
None
TS-13023
ERROR
Creating relationship failed.
None
None
TS-13024
ERROR
Deleting schema
failed.
None
None
TS-13025
ERROR
Expression validation failed.
None
None
TS-13026
INFO
Load schedule
successfully disabled.
None
None
TS-13027
ERROR
Load schedule
could not be disabled.
None
None
TS-13028
ERROR
Objects fetched
from the connection are invalid
for editing datasource.
None
To proceed with editing
the datasource, please
edit the connection below
to fetch valid source objects.
TS-13029
INFO
Successfully
edited data
source connection.
None
None
TS-13030
ERROR
Connection test
failed.
None
Please verify connection
attributes.
ThoughtSpot Users Guide
Page 410
Error code reference
February 07, 2019
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 411
Frequently asked questions
February 07, 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 412
Frequently asked questions
February 07, 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:
max date = true
ThoughtSpot Users Guide
Page 413
Frequently asked questions
February 07, 2019
This returns only those fields that pass the filter.
ThoughtSpot Users Guide
Page 414
Source Exif Data:
File Type : PDF
File Type Extension : pdf
MIME Type : application/pdf
PDF Version : 1.5
Linearized : No
Producer : Prince 12.1 (www.princexml.com)
Keywords : prince-no-fallback
Title : | ThoughtSpot
Page Count : 416
Language : en
EXIF Metadata provided by EXIF.tools
Navigation menu
Versions of this User Manual: