/ Release Notes Version 3.3


Release Notes Version 3.3

Release 3.3

Release Date: May 2016

Release notes for ThoughtSpot 3.3, which introduces ThoughtSpot Data Connect, Rule-Based Row Security, New Privilege (Can Manage Data), New Formulas, and Pinboard Filters and Actions.

Download PDF version

What’s New in 3.3

Data Connect

You can now connect to external data sources directly from the ThoughtSpot application using ThoughtSpot Data Connect. Data Connect allows you to easily pull data from other databases and applications into ThoughtSpot for analysis. You can connect to multiple separate instances of each connection type, as needed. Connections are stored to make reconnecting seamless.

Figure 1: Select a connection type

Choose from the list of available tables to import. Then select only the columns of interest from each table.

Figure 2: Select tables and columns

It’s easy to apply transformations and filters to the data, too. So you only import the data you want to explore.

Figure 3: Apply a filter

Figure 4: Apply a transformation expression

You can also schedule incremental or full recurring data loads.

Figure 5: Schedule a data load

ThoughtSpot Data Connect is a premium feature, which is available at an additional cost. Please contact your ThoughtSpot representative, if you want to find out how to enable Data Connect.

Pinboard Filters

You can now apply global filters 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 you apply a filter, the pinboard is automatically saved with your filter applied.

The option to add filters can be found within the Actions button.

Figure 6: Add Filters to a Pinboard

After selecting Add filters, a menu will appear on the left side of the page, populated with all of the columns from the worksheets that make up the pinboard. Click the Filter icon next to the columns you would like to use as filters.

Figure 7: Add Filters Menu

Then choose the values you are interested in by typing them in, selecting the appropriate checkboxes, or using Add values in bulk.

Figure 8: Select Filter Values

Your applied filter will sit at the top of the pinboard, where you can either edit or delete it.

Figure 9: Applied 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 imported data, the filters don’t apply to them.

For a user to be able to use pinboard filters, they need to have edit access to the pinboard, and view access (or higher) to the underlying data source.

Rule-Based Row Security

You now have the ability to define row level security on any table using an expression. Row level security allows you to to control which groups have access to specific rows of data based on the values they contain. This update serves three functions:

  • You can apply row level security for up to thousands of groups. In older versions, you were limited to 64 groups.
  • You can designate multiple row level security rules with one expression, making it easier to manage thousands of groups with corresponding rules.
  • The expressions are evaluated at runtime, so when adding new groups and new data, they still work, as long as what you are adding conforms to the rules you have set.

If you are creating Row Level Security settings for the first time, use this new rule-based Row Security rather than the older method that existed prior to version 3.3. If you are using the legacy method for Row Level Security which requires you to edit the security CSV file, you should migrate your security settings to use this new feature when possible.

For information on how to set up rule-based row level security, see the ThoughtSpot Administrator Guide.

Figure 10: Rule-based row level security

New Formulas

There are a few new types of formulas in this release. These are available in the Formula Builder, and you can see syntax and usage examples in the Formula Assistant:

Aggregation Formulas

The following formulas are new in this release:

Formula Name




Takes a measure and one or more attributes. Returns the average of the measure, accumulated by the attribute(s) in the order specified.

( revenue , order date , state )


Takes a measure and one or more attributes. Returns the maximum of the measure, accumulated by the attribute(s) in the order specified.

cumulative_max ( revenue , campaign )


Takes a measure and one or more attributes. Returns the minimum of the measure, accumulated by the attribute(s) in the order specified.

cumulative_min ( revenue , state )


Takes a measure and one or more attributes. Returns the sum of the measure, accumulated by the attribute(s) in the order specified.

cumulative_sum ( revenue , order date )


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. Returns the average of the measure over the given window. The attributes are the ordering columns used to compute the moving average.

moving_average ( revenue , 2, 1, customer region )


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. Returns the maximum of the measure over the given window. The attributes are the ordering columns used to compute the moving maximum.

moving_max ( complaints , 1, 2, store name )


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. Returns the minimum of the measure over the given window. The attributes are the ordering columns used to compute the moving minimum.

moving_min ( defects , 3, 1, product )


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. Returns the sum of the measure over the given window. The attributes are the ordering columns used to compute the moving sum.

moving_sum ( revenue , 1, 1, order date )

Note that the above formulas are not supported over a chasm trap.

The following existing formulas have been moved to the Aggregation Formulas section in the Formula Assistant:

  • sum
  • average
  • variance
  • stdev
  • count
  • unique count
  • min
  • max
  • group_sum
  • group_average
  • group_variance
  • group_stdev
  • group_count
  • group_unique count
  • group_min
  • group_max

Date Formulas

Formula Name




Returns the difference in seconds between two timestamps.

diff_time ( clicked, submitted )


Returns the date for the first day of the year for the given date.

start_of_year ( 02/15/2015 ) = FY 2015


Returns the date for the first day of the quarter for the given date.

start_of_quarter ( 09/18/2015 ) = Q3 FY 2015


Returns the date for the first day of the month for the given date.

start_of_month ( 02/15/2015 ) = Feb FY 2015


Returns the date for the first day of the week for the given date.

start_of_week ( 06/02/2015 ) = 05/30/2015 Week

Text Formulas

Formula Name




Returns the two values as a concatenated text string.

concat ( ‘hay’, ’stack’ ) = ‘haystack’

Conversion Formulas

These formulas casts the input to a different datatype. The following conversions are supported:































The syntax for the conversion formulas is listed here:

Formula Name




Returns the input as a boolean value.

to_bool ( ‘false’ ) = false


Returns the input as a double value.

to_double ( ‘3.14’ ) = 3.14


Returns the input as an integer value.

to_integer ( ‘25’ ) = 25


Returns the input as a string value.

to_string ( 45 + 1 ) = ‘46’
to_string ( revenue - cost )

New Privilege: Can Manage Data

There is a new privilege called Can Manage Data.

Figure 11: Can Manage Data Privilege

Users who have this privilege can create a worksheet from the results of a search by selecting Save as Worksheet.

Figure 12: Save as Worksheet

Style Customization and Branding

A custom branding feature called Style Customization is available at an additional cost. With this feature enabled, you can now change the look and feel of your ThoughtSpot interface in order to create an experience more aligned with your brand. If enabled, custom branding can be found in the Admin panel.

Figure 13: Style Customization Page

There are options that let you change the logo, application background color, and chart color palettes. For more information on how to set these options, see the ThoughtSpot Administrator Guide.

System Generated Email Enable/Disable

The cluster sends notification and system status emails automatically, to the email address specified during installation. In the past, there was no easy way to completely disable all emails coming from the cluster. Now you can completely disable email from ThoughtSpot by issuing a single command. Contact ThoughtSpot Support if you would like to disable all email.

LDAP Sync Utility

As your organization grows, it will become increasingly difficult for you to sync your users and groups from LDAP to ThoughtSpot. Therefore, a synchronization script has been created to do all of the heavy lifting for you. It guides you through the process with prompts from start to finish. You can also write your own script using LDAP Python and ThoughtSpot Python APIs. For more information, see the ThoughtSpot Administrator Guide.

Easier SAML Setup

SAML setup has been simplified with a set of new tscli commands. The commands let you interactively set up SAML by answering the prompts.

To configure SAML, issue:

tscli saml configure

To remove an existing SAML configuration, issue:

tscli saml purge-configuration

TQL Editor

The TQL editor in the ThoughtSpot web application is now a full fledged editor. This means that you can launch the editor and interactively write TQL commands and run them from the blank screen. No need to first upload a SQL script before you can begin editing. Save your script when you’re done, to save it in source control or use as a template for a future script.

TQL Tab Completion

This small but useful feature in TQL lets you use tab completion when typing commands. Now, instead of typing or pasting long table and command names, you can type just a short prefix and hit the TAB key to complete the whole name.

Incremental Indexing

When you load new data, now only the data that has changed gets indexed. So your data is available for searching much more quickly after a data load or importing a table through the ThoughtSpot web interface.

Schema Flexibility

We’ve increased the schema flexibility even more in this release. After loading data into ThoughtSpot, and working with it for some period of time, you may find yourself wishing you’d built the schema differently. Some new commands in TQL now enable you to make the schema changes you want more easily.


If you need to shard a replicated table, re-shard a table to change the number of shards, or change a replicated table to a distributed (sharded) table, you can do this without losing any objects that were built on top of the table. This operation no longer requires truncating the table, altering it, and re-loading the data. Your data will be preserved and re-sharded (or replicated) as specified.

If you are sharding the table, the sharding key(s) must be identical to, or a subset of, the primary key(s). This way, the upsert behavior when loading data will be as expected. If the sharding key is not a subset of the primary key, you can still make the change, but you have to be aware that the upsert behavior may not work the same as before the resharding. As such, this change is considered unsafe, and you must start up TQL in unsafe mode by issuing the command:

tql --allow_unsafe

Then you can enter commands that change the table sharding, even though the sharding key is not a subset of the primary key.

The syntax to change the sharding on a table is:



[PARTITION BY HASH (<shards>) KEY (<column>)]];

Data Type Conversion

You can now convert a column from one data type to another automatically, without the need to truncate or reload data. Any values that can not be converted will be set to NULL.

The syntax to change the data type of a column is:


MODIFY COLUMN <column> <new_data_type>;

If any errors are encountered during data type conversion, the operation will be aborted. However as above, you can start TQL in unsafe mode by issuing the command:

tql --allow_unsafe

It’s important to note that changing the data type has implications on the primary key and sharding enforcement. For example, changing the data type of a column that is part of a sharding key will lead to redistribution of data.

In another example, the varchar values "00100", "0100", "100" would all be expressed as the same integer. So if the type of a column containing these values were changed from varchar to int, then the upsert behavior on primary keys would be applied. This means that only one of the rows containing those values would be preserved.

Be aware that data type conversion will preserve the data in the underlying database table, but there is no guarantee that any objects built on top of it (worksheets, answers, or pinboards) will be preserved. This is because you might make a data type change that makes a chart built on top of the table invalid (for example a growth chart would be invalidated if the date column it depends on were changed to a varchar column).

Change IP Addresses

You can now more easily change the IP addresses of a ThoughtSpot instance. If you need to change the IP addresses, please contact ThoughtSpot Support for the procedure.

Fast Snapshot Restore

Snapshot restore is now faster than in prior releases. The procedure is the same, but the restore will run noticeably faster.

Hotfixes for Updates

ThoughtSpot now offers an alternative mechanism for updating an existing system, called "hotfixes". Hotfixes are offered for only a subset of update paths. Hotfix updates run much faster than full updates, since they update only those services which have changed. Hotfix updates are also smaller in size, and so they are faster to download.

Other UX Improvements

Pinboard Actions

Pinboards have become more interactive, to support exploring and reorganizing data from anywhere. You can now access more detailed and customized data from within a visualization in a pinboard without having to go into the edit mode.

Drill Down from within Pinboard

The drill down feature is now supported in pinboards. Right click on the visualization or table cell where you want to drill down, and a menu of options appears.

Figure 14: Pinboard Drill Down option

Click Drill down to see all of the detailed data within your selection without ever having to leave the pinboard view.

Figure 15: Pinboard Drill Down data

You can click on any of the listed data to recreate the selected chart using just that data.

Figure 16: Pinboard Drill Down chart

Change Date Bucketing Granularity

You can change the date bucketing granularity on any applicable visualization in a pinboard. Click on the X-axis label to bring up a list of date options to choose from.

Figure 17: Change Date Bucketing Granularity

Add Filter on Visualization Using Column Filter

In addition to the new global Pinboard Filter feature, you can also add an individual filter to a table in a pinboard. Click Change configuration on a column heading to open the Filters menu, and apply your filter.

Figure 18: Add Filter Using Column Filter

Sort by Clicking Column Header

It is now possible to sort a table visualization by clicking on the column header of interest.

Reset to the Saved Visualization

You can undo all of your changes and reset to the original pinboard by clicking Reset in the upper right hand corner of each of the altered visualizations.

Resizable Columns Panel

You can now resize the left hand panel where the column names are listed when searching. This allows you to see the entire column name, even if it is very long.

Order of Values on the X-Axis

When there are multiple columns on the x-axis of a chart, they are now ordered based on the sequence in which the columns were added. The first field is used as the primary sorting field for the chart. Adding another field adds the field after the first one on the axis label. If you want to change the order, you can remove the fields and re-add them in the reverse order.

Figure 19: X-Axis Order for Multiple Values

New Line Column Chart

You can now combine bar and line charts into one chart, known as a Line Column chart.

Figure 20: Line Column Chart Type

Figure 21: Example Line Column Chart

This new chart type has separate left and right Y-axes for each metric, but you can lock them to the same scale using the chart configuration. Click the lock icon to enable shared y-axes.

Figure 22: Enable Shared Y-Axis

Numeric Keywords

You can now use either a number or an English language representation of a number when specifying keywords. For example:

top ten

is now equivalent to:

top 10

Automatic Date Bucketing

In past releases, dates were bucketed monthly by default. Now the default bucketing takes the search into account. For example, if your search includes last month, dates will be bucketed daily instead of monthly (which used to show just the single month).

Report a Problem

There is now a link called Report Problem that lets you send an email with a trace file directly to the administrator.

When you encounter an error, a message will appear at the top of the page. It will give you the option to either download a trace or report the problem automatically. Selecting Report Problem will let admin know by email that you have encountered a problem by attaching the trace log for your error. Your administrator will follow up with ThoughtSpot Support, if necessary.


Figure 23: Error Message

More Formats for Imported Data

When you import a spreadsheet through the Import Data page, you can now choose among a number of formats. Accepted field separators are comma, semicolon, pipe, space, or tab. Previously, only CSV (comma separated values) files were allowed.

Figure 24: File Types for Imported Data

New Buttons and Actions Menu

ThoughtSpot has a new look! You’ll notice a few new buttons and icons throughout the web interface. These changes are subtle, but we hope they will make using ThoughtSpot a little more fun.

It’s also easier to find actions that you can apply to the thing you are looking at. Now these actions are all located under the new Actions menu.

Figure 25: The new Actions menu

Fixed in Release 3.3.7

ThoughtSpot's Data API is compliant with JSON Schema


Description: ThoughtSpot's Data API is now compliant with JSON Schema standards and definitions. The following aspects have been added or modified in the public Data API:

  • ThoughtSpot now uses a standard root element "data" in place of "viz".
  • Responses are in key value pairs following the standard JSON response structure, as opposed to the previous implementation that used a single header row.
  • A schema prototype that includes the data types of each column is included for each data table.
  • ThoughtSpot provides support for offset, batchSize, and pageNumber in the Data API.
  • There is a separate data generation configuration for the Data API.

FIXED: Login enforces case change to lowercase


Description: Users could not log in to ThoughtSpot after setting up AD sync because the login would enforce lower casing. Changes have been made to the login authentication so that LDAP and SAML users with capital casing in their usernames can successfully log in.

Fixed in Release 3.3.6

FIXED: Alert for exceeding 1500 processes


Description: Warning alerts appeared on clusters where the number of processes exceeded 1500. A fix has been added to address the build up.

FIXED: Node-add and ext4 bug fixes

Description: A number of node-add and ext4 bug fixes have been implemented. In addition, changes have been made in HDFS and other architectures.

Fixed in Release 3.3.5

FIXED: Object Search Not Working for Incomplete Objects


Description: In certain cases when data included missing relationships, object search was not working. This has been fixed.

Fixed in Release 3.3.4

FIXED: DISK_ERROR Alerts During Upgrades


Description: Invalid DISK_ERROR alerts, which were introduced in 3.3.3, have been fixed. These production alerts would occur after upgrading to 3.3.3 and higher.

Fixed in Release 3.3.3

FIXED: Documentation: Worksheet Join Rule with Rule-Based Row Level Security


Description: With the Rule-Based Row Level Security that was introduced in 3.3, the worksheet join rule works differently than with Legacy Row Level Security. This has now been explained in the ThoughtSpot Administrator Guide. Basically, you must now set row level security on every table that contains sensitive data, rather than setting it on only one table and depending on the worksheet join rule to protect data in other tables. This is particularly important when your schemas includes any chasm traps.

FIXED: Object Search Is Broken


Description: Inputting a search string for an existing answer or pinboard returned no results. Normally the search would return a list of objects that use the searched for data. This feature has been reactivated.

Fixed in Release 3.3.2

FIXED: Data Connect - Schedule Dialog Disappears When There Is an Error


Description: During schedule creation, the schedule dialog would disappear when there was an error. The dialog no longer goes away in the case of an error.

FIXED: Data Connect - Last Load Value Is Not Accurate

ISSUE ID: SCAL-14605, 14886

Description: Checking the table during and after the load would display an incorrect Last Load time. The end time of the load is now correctly displayed.

FIXED: Data Connect - Load Status Doesn't Show "In Progress"


Description: The Load Status would not show "In Progress" when clicking Refresh after performing a restart. This has been fixed.

FIXED: Data Connect - Data Load from JIRA Fails


Description: Running a data load from JIRA to ThoughtSpot would fail with a connection parameters error. The error no longer occurs.

FIXED: Data Connect - DDL Generation Errors

ISSUE ID: SCAL-14722, 14757

Description: DDL generation would prompt an invalid metadata object type error for a new "Can manage data" privilege user. It would also fail when there is a column with FLOAT data type. Both errors have been fixed.

FIXED: “Invalid Date” When Using a Composite Key with a Chasm Trap


Description: Comparing two measures across a chasm trap that used a joining key made up of more than one column (composite key) only worked when part of the key was used to make the full outer join. It did not work when the entire composite key is used. This led to unexpected results, such as invalid rows. This has been fixed.

FIXED: Cluster Update Banner Doesn’t Display


Description: The Cluster Update banner would not show up after upgrading from any version of 3.2 to 3.3. The banner now correctly displays after the upgrade steps.

FIXED: to_string Formula Doesn’t Work with Dates


Description: The to_string conversion formula was not supported to work with dates and timestamps in 3.3.1. Creating such a formula would ask you to enter a comparison operator, which is no longer required.

FIXED: tscli nas mount Command Is Broken


Description: The tscli nas mount command was broken due to the system not being able to locate the proper executable file in its $PATH. This issue has now been fixed.

FIXED: Group Display Names Are Not Shown


Description: On the Group Management page, only group names were being displayed. This was unhelpful, especially when using LDAP sync, since the group names were cryptic and hard to read. We now show the group display names instead.

FIXED: Horizontal Scrollbar Is Missing in the Answer


Description: After some clusters were upgraded to 3.3, the horizontal bar would go missing from the answer view. This has been fixed.

FIXED: Chart View Does Not Work After Changing the Default Currency Type


Description: In the Data Management section, the Currency Type is set to NONE for all values by default. Previously, when the Currency Type was changed from the default and set to “From a column” for a column that was part of a query, the data could only be accessed in the Data View. The Chart View would not work, showing a blank page. This has been fixed.

Fixed in Release 3.3.1

Currency Formatting


Description: You can now specify the currency type of your data. To do so, click the Data icon in the main menu, and select a table data source by clicking on its name. In the Columns view, find the column for which you want to add currency formatting. Scroll to the right until you reach the new Currency Type column.

Figure 26: Currency Type Column

Click the value in the cell to bring up the Specify Currency Type dialog box. Select a currency type from the available choices.

Figure 27: Specify Currency Type Menu

Available settings are:

  • None omits the currency formatting and displays the value the column contains.
  • Infer from Browser sets the currency format to match the locale of the user's’ web browser.
  • From a column inherits the currency setting from the setting for another column, which you specify.
  • Specify ISO Code allows you to enter an ISO code for a type of currency. For example USD for United States Dollars. ISO codes are available online at http://www.xe.com/iso4217.php.

Make your setting and click OK. Your currency data will now display the correct format and symbol.

Locale-Based Number Formatting


Description: Number formatting is now based on your browser locale setting. This has been set in order to accommodate users in various geographical locations, primarily in the US and Europe regions. For example, if you are using ThoughtSpot in the US, the number formatting would look like this: xxx,xxx.xx. And in Europe, it would look like this: xxx.xxx,xx.

New Data Integration Guide

ISSUE ID: SCAL-12028, SCAL-14253

Description: There is a new book called ThoughtSpot Data Integration Guide. It covers connecting ThoughtSpot with other data sources using ODBC, JDBC, or Informatica. There is also specific information on how to connect to Microsoft SSIS (SQL Server Integration Services). The section on ThoughtSpot Clients has been moved out of the ThoughtSpot Administrator Guide and into this new book.

Documentation Updates for Release 3.3.1

ISSUE ID: SCAL-11526, SCAL-14454, SCAL-14061, SCAL-8690

Description: Because release 3.3.1 contains some new features, a new version of the ThoughtSpot Administrator Guide is available with these updates. There are also some additions and minor documentation bug fixes included in this version of the guide. Because of this, you should obtain the newest version of the ThoughtSpot Administrator Guide when updating to 3.3.1.

FIXED: Background Colors Are Not Uniformly Applied


Description: Changing the background color under the Style Customization feature did not uniformly apply the new color across all pages. Now the background color is appropriately applied on every page.

FIXED: Broken Support Features


Description: Remote support features, including tunnel, call home, and the NAS mounter, were not working properly. ThoughtSpot Support could not access your appliance, and they were not receiving usage statistics. These support features have since been fixed.

Fixed in Release 3.3

FIXED: Can’t See Edits to Pinboard Until Page Refresh


Description: In the past, when you edited the charts in a pinboard, your changes would not be reflected in the pinboard until you refreshed the page in your browser. Now when you make changes and save them, they are reflected in the pinboard.

FIXED: After a User Imports Data, the Ask a Question Link Doesn’t Show the Data

ISSUE ID: SCAL-4392, SCAL-9126

Description: After importing data through the web interface, a button appears saying Ask a Question. Clicking it would take you to an empty search screen, but you still had to select your data source. Now the data source is pre-selected for you.

FIXED: TLS Updated to Version 1.2


Description: TLS has been updated to version 1.2 due to a security vulnerability in TLS version 1.0 that was discovered during a security scan.

Known Issues

Data Filter for TIME Is Not Supported


Description: Data filtering in a table column does not allow you to properly filter time values.

View of Underlying Data Is Not Protected Based on Privilege


Description: It is not yet possible to prevent user access to detailed underlying data while providing access to aggregated data.

Pinboard Layout Is Not Saved


Description: When you rearrange a pinboard, the changes to its layout are not saved.

Blank Zero Values in Heatmaps


Description: The heatmap’s default behavior is to display “{Blank}” in cells whose numeric value is zero. These cells should instead display “0”.

Data Connect - Days Option Is Not Honored in Schedules


Description: Your scheduled job does not trigger correctly on the days you specify in the Schedules menu. The current workaround is to configure the schedule “Start Time” and “End Time” to run on “All Days”.

Data Connect - Job Fails After Cluster Upgrade in 3.3


Description: After a cluster upgrade in 3.3, the load run fails with a java.lang error. Disabling and reenabling the ETL via tscli resolves the issue.

Data Connect - List of Tables is Truncated During Metadata Fetch


Description: In the Select Tables section of the Data Connect procedure, only a limited number of objects show up in the Available Tables list. The Metadata fetch is only happening for the first 200 objects. A new object search feature is in the works to address this issue. It will let you search for table names when browsing the tables list. For now, you can move the tables of interest to a different schema that contains less than 200 objects.

Supported Upgrade Paths

If you are running a release that begins with one of the following ThoughtSpot version numbers, you can upgrade to this release directly:

  • 3.2
  • 3.3

If you are running a different version, you need to do a multiple pass upgrade. First upgrade to one of the above versions, and then to this version.