Release Date: February 2016
The ThoughtSpot 3.2 release includes features focused around APIs to enable using ThoughtSpot in a Web portal or application, administrative visibility into the state of the cluster, and user experience improvements.
New in Release 3.2
Ever wonder how a particular chart was created? Now you can instantly generate a step-by-step replay showing the creation of a chart or table. The replay shows how to create the chart or table you are viewing. Use it to teach yourself, or take a screencam of it and create your own ThoughtSpot training for your team.
When viewing a chart or table, select the Replay search icon.
Figure 1: The Replay search Icon
Then, select Start Replay to view the video. The replay will start automatically. You can pause and resume it by clicking on it.
Figure 2: Start Replay
If you are an Administrator and you are using a Firefox browser, you can also choose Record Replay. This requires some configuration of the Firefox browser. You can find the configuration procedure in the ThoughtSpot Administrator Guide.
Hyperlinked Data Values
When a data source contains URLs with top level domains (like .com, .net, .org, etc.), those are now displayed as hyperlinks that you can click to go to the website in a new browser tab. The hyperlink appears whenever a URL is detected. Email addresses are also linked using a “mailto:” link, so that your default email application opens with the address in the To: line when you click it.
Figure 3: Hyperlinked Data Values
In pinboards, there is a new Copy Link icon in the upper right hand side of charts and tables that lets you copy the link to access the visualization directly. You can copy and paste this link to include in a presentation or spreadsheet, or email or Slack it to other people in your company. Note that when clicking the link, the person must be authenticated to ThoughtSpot to see the visualization (e.g. by logging in or LDAP).
Figure 4: The Copy Link Icon
A dictionary of common word synonyms is now bundled with ThoughtSpot. The dictionary contains synonyms for common terms that occur in data. For example, if a user types 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.
You can now specify the format pattern for displaying columns containing numeric data. To do this, go to Data Management and click on Columns, or use the modeling file. Find the column Format Pattern for the data source column you want to configure, and set the format pattern using Java Decimal Notation.
The default values are:
- #,### for integer data types (INT32, INT64)
- #,###.00 for decimal data types (DOUBLE and FLOAT).
Here are some examples showing how to set different numeric format patterns:
User and Group Management
The user and group management workflows have been improved with so that you can more easily manage large numbers of users and groups.
When you view a user, you can see how many groups the user belongs to and their names.
Figure 5: User Management
When you view a group, you can see how many users it contains, and who they are. You can add and delete users or change the privileges for the group.
Figure 6: Group Management
You can now see all dependencies for any data source (worksheet or table) by going to the Data Management screen, clicking a data source, and selecting Dependents. This lists the names of the dependent objects (worksheets, answers, and pinboards), and the columns they use from that source. You can use this information to determine the impact of changing the structure of the data source or to see how widely used it is. Click on a dependent object to modify or delete it.
Figure 7: Data Source Dependencies
If you attempt to delete a data source with dependent objects, the operation will be blocked. You will see a list of dependent objects with links. Click on the link for an object to modify or delete it. When all its dependencies are removed, you will be able to delete the data source.
Figure 8: Warning message when trying to delete an object with dependencies.
Support for Web Portals, Applications, and Pages
To enable using data and visualizations from ThoughtSpot within Web portals, applications, and pages, there are several new features in this release:
- REST API
- Runtime Filters
All of these are explained in detail in the new ThoughtSpot Application Integration Guide.
- Authenticate to ThoughtSpot.
- Embed visualizations from ThoughtSpot in your Web page using iframes.
- Use the ThoughtSpot REST API to get data from ThoughtSpot and use it in your Web page.
The JS API works in the following browsers:
10 or later
38 or later
47 or later
9 or later
Embedding for Pinboards and Visualizations
Embedding allows you to display a pinboard, chart, or table from ThoughtSpot on your own Web page, Web portal, or application. When using Embedding, authentication is achieved through SAML.
After authentication, a URL is provided to call the desired visualization and populate it into an iframe. Only the visualization is displayed, without the ThoughtSpot navigation or controls. The visualization is rendered within an iframe on your Web page, portal, or application.
Figure 9: Sample Portal Showing Embedded Chart
REST API for Getting Data
Runtime filters allow you to filter an answer or pinboard through parameters you pass in the URL to filter the data that is returned. You can use them with the data API or with embedding of answers or pinboards.
Runtime Filters provide ability to filter data at the time of retrieval using Embedding or the REST API. This is done by providing filter information through the URL query parameters.
Quick Schema Import
You can now import a schema, even if you do not have access to the Linux shell on the ThoughtSpot Appliance. To do this, first create the TQL script that generates the data schema. Then go to the Data page and click + New and Import schema. For information on creating a schema and a list of supported TQL commands, see the ThoughtSpot Administrator Guide.
Figure 10: Import a Schema
Drag and drop your TQL script into the window, or browse for it in the file system.
Figure 11: Import Your TQL Script
You can view and edit the script, and when you’re ready to run it, click Execute.
Figure 12: Edit Your TQL Script in the Browser
There is a new administrative Control Center, for easy monitoring of usage and cluster health, including alerts. You can view the Control Center by clicking on the Administration icon and then clicking Health Management.
Figure 13: Getting to the Control Center
The Control Center shows the following information:
This section shows a summary of overall cluster status, usage information, configuration changes, and critical alerts.
Figure 14: Partial View of the Control Center: Overview
This section shows all the stored tables with details on the last update time, time taken for auto-indexing, number of rows, etc.
Figure 15: Partial View of the Control Center: Data
This section show detailed information about a cluster including latency over time, snapshot status, installed release, node functions, and logs.
Figure 16: Control Center: Cluster Manager
Alerts and Events
This section shows notifications, alerts, and an audit trail of cluster configuration changes.
Figure 17: Partial View of the Control Center: Alerts and Events
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 without losing any of the objects that depend on the underlying data (worksheets, pinboards, tables, and charts).
Primary key changes to a table no longer require a TRUNCATE table and data reload. However, changing the primary key could result in data deletion. This is because of the upsert behavior which is applied when multiple rows have the same primary key. This is very important to understand ahead of time, if you are considering changing to a primary key for which values are not unique.
1. You can now name foreign keys and generic relationships. Use these names to reference the relationship when dropping it:
ALTER TABLE promo_fact ADD RELATIONSHIP rel_customer WITH customer_dim AS promo_fact.custID = customer_dim.custID;
ALTER TABLE promo_fact DROP RELATIONSHIP rel_customer;
ALTER TABLE sales_fact ADD CONSTRAINT fk_product FOREIGN KEY (product_id) REFERENCES product_dim (product_id);
ALTER TABLE sales_fact DROP CONSTRAINT fk_product;
2. You can now create multiple generic relationships between a pair of tables:
ALTER TABLE promo_fact ADD RELATIONSHIP rel_customer WITH customer_dim AS promo_fact.custID = customer_dim.custID;
ALTER TABLE promo_fact ADD RELATIONSHIP rel_date WITH customer_dim AS promo_fact.promo_date > customer_dim.signing_date;
If you find that you need to 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 build on top of the table. This operation requires truncating the table, altering it, and re-loading the data.
The commands to accomplish the re-sharding of a table are:
TRUNCATE TABLE <table>;
ALTER TABLE <table> [SET DIMENSION | SET FACT [PARTITION BY HASH [(<shards>)][KEY(<column>)]]];
NAS (Network Attached Storage) Mounter
You can now mount an external NFS or CIFS storage device at a given mount point on all nodes with a tscli command. The new tscli commands to support this are:
tscli nas mount-nfs
tscli nas mount-cifs
tscli nas unmount
Download Incident Logs
If the system has trouble responding, you’ll see a red bar with a message at the top of the screen in the Web browser. You can click on the message for more details and download a log bundle related to the incident that caused the problem. There is a link to email your administrator the file for troubleshooting.
Audit Logs for Cluster Events
An audit log of cluster events became available starting in release 3.1.3. Now this audit log also includes database events. You can also access information on cluster updates, configurations, data loading and metadata events. Use the tscli events list command to display this audit information:
tscli events list [--include ] [--since | --from --to ] [--detail] [--summary_contains <'string1'| 'string2' ...>] [--detail_contains <'string1'| 'string2' ...>] [--attributes ]
Optional parameters are:
--include specifies the type of events to include, and can be all, config, or notification.
--detail returns the events in a detail format rather than a tabular summary, which is the default.
--attributes specifies attributes to match as key=value pairs. Separate multiple attributes with |. Events that match all specified key/value pairs will be returned. Put single quotes around the value(s).
--summary_contains <'string1'| 'string2' ...> specifies a string to check for in the event summary. Enclose strings in single quotes, and separate multiple strings with |. Events that match all specified strings will be returned.
--detail_contains <'string1'| 'string2' ...> specifies a string to check for in the detail. Enclose strings in single quotes, and separate multiple strings with |. Events that match all specified strings will be returned.
And a time window made up of either:
--since is a time in the past for where the event audit begins, ending at the present time. Specify a human readable duration string, e.g. 4h (4 hours), 30m (30 minutes), 1d (1 day).
--from is a timestamp for where to begin the event audit. It must be of the form: yyyymmdd-HH:MM.
--to is a timestamp for where to end the event audit. It must be of the form: yyyymmdd-HH:MM.
Other UX Improvements
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.
Create Bulk Filters
You can now enter a list of filters into the filter box, rather than selecting all of the filters individually from a list. This is useful in scenarios where a you want to select a large number of filter values from a very large list, particularly if a particular filter selection is made repeatedly.
You can select multiple cells in a table and copy them to the clipboard.
Figure 18: Copy Cells to the Clipboard
Then select Add values in bulk.
Figure 19: Add Values in Bulk
Paste the cells you copied into the filter box.
Figure 20: Paste Bulk Filter Values
You can also type the values in the box, separated by commas, semicolons, new line breaks, or tabs.
Keyword Spell Check
In addition to column names and values, spell check now works on keywords.
Changes in Release 3.2
New ODBC/JDBC Drivers
This release includes new ODBC/JDBC drivers with better performance. These are not compatible with older versions of ThoughtSpot. When upgrading to this release, you must also update your ODBC/JDBC drivers by downloading and installing the new drivers from the Help Center.
When configuring the new drivers, you must supply the IP addresses of all nodes in the ThoughtSpot cluster.
There are new books available in the ThoughtSpot documentation library:
- Application Integration Guide Information on SAML authentication and APIs for getting data and embedding in Web pages, Web portals and applications.
- Error Code Guide Information on ThoughtSpot error codes, what they mean, and how to resolve them.
Information about these topics has been removed from the ThoughtSpot Administrator Guide and moved to the appropriate new guide.
Fixed in Release 3.2.2
FIXED: Execute Permission for tsload
ISSUE ID: SCAL-13441
Description: The ThoughtSpot Loader (tsload) did not have the execute permission set, so you had to modify the file permissions to enable it to run. This has been fixed.
FIXED: Could Not View a Pinboard Because of Permissions
ISSUE ID: SCAL-13474
Description: When a pinboard contained visualizations using aggregate worksheets with formulas, a user without permissions on the underlying tables could not view the data in the pinboard. This has been fixed.
FIXED: No Data Message Shown when Filter Applied
ISSUE ID: SCAL-13220
Description: When a formula with date range filters was added to a search, no data was shown with the message “no data to display..." This has been fixed.
FIXED: Documentation for ODBC and JDBC Driver Server Connection String
ISSUE ID: SCAL-13418
Description: When specifying the server to connect to with ODBC or JDBC, the instructions said to specify the IP address of the master node. You should actually use the IP addresses for each node in the cluster, to provide high availability. This change began in release 3.2. The ODBC and JDBC configuraiton procedures have been updated in the ThoughtSpot Administrator Guide.
Fixed in Release 3.2.1
FIXED: Help Center Returning Wrong Version
ISSUE ID: SCAL-12958
Description: The Help Center sometimes displayed an older version of online help.
FIXED: Ask a Question After Import Data Fixed
ISSUE ID: SCAL-12746
Description: After importing data through the web browser, you could click the “Ask a question” button. Clicking the button took you to a new blank search page, but did not automatically select the data you just imported. Now this button takes you to the search bar with the new imported data selected as the data source, so you can search it right away.
FIXED: Multiple Grouping Formulas Not Working
ISSUE ID: SCAL-12991
Description: Grouping formulas were not working when a single answer contained multiple grouping formulas.
Fixed in Release 3.2
FIXED: Block Deletion of Tables with Dependent Objects
ISSUE ID: SCAL-11781
Description: In the past, you could delete a table, even if other objects (answers, pinboards, worksheets) were dependent upon it. This is now disallowed, because it left the dependent objects in an inconsistent state.
FIXED: Allow Changing the Name of Relationships
ISSUE ID: SCAL-11765
Description: In the past, relationships used only the system-generated names. Now you can name a relationship, which makes it easier for people to understand what it is and its purpose.
After a Snapshot Restore, tscli cluster status Hangs
ISSUE ID: SCAL-12466
Description: After restoring from a snapshot and issuing tscli cluster status, no status is returned. This does not mean that the snapshot restore has failed. Wait for ten minutes and issue the command again to check the cluster status.
Edits to pinboard charts don't show until screen refresh
ISSUE ID: SCAL-10560
Description: When making a change to a chart from within a pinboard, you’ll need to refresh the browser window in order to see the change reflected in the pinboard.
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:
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.