ThoughtSpot Modeling Language
Use TML to modify a ThoughtSpot object in a flat-file format. Then, migrate the object to a different cluster, or restore it to the same cluster.
To work with TML files for Worksheets, views, SQL views, tables, Answers, Liveboards, and Monitor alerts in ThoughtSpot, you can download these objects to a flat file in .TML
format, modify it, and subsequently upload this file either to the same cluster, or to a different cluster.
To learn how to export, change, and update Worksheets, views, tables, Answers, and Liveboards, see Import and export TML files. To learn how to migrate multiple TML files at a time, see Migrate multiple TML files.
In this section, you learn the syntax of the TML files for each object. You also learn how to add and modify joins for Worksheets, views, SQL views, and tables.
See the following articles for the full syntax of each type of TML file:
Limitations of working with TML files
There are certain limitations to the changes you can apply by editing a Worksheet, Answer, table, view, Liveboard, or Monitor alert through TML.
-
Formulas and columns can either have a new name, or a new expression. You can’t change both, unless migrating or updating the Worksheet two times.
-
It isn’t possible to reverse the join direction in the TML script.
-
You can’t create new tables using TML files. You can only update existing tables.
-
You can only change logical tables using TML files. You can’t change the physical version of the table that exists in a database. When you change the
column_name
, for example, the name changes in the application, but not in the physical table in the database. -
You can’t create or export TML files for R- or Python-powered visualizations.
-
You can’t import manually compressed .zip files. You can only import .zip files that you exported from ThoughtSpot: a custom set of TML files, an object and its associated data sources, or multiple objects of the same type that you exported from the object list page.
-
Joins only appear in the table TML file of the source table in a join, or the table on the Many side of a Many-to-One join. You can only add and edit table joins from the TML file of the table on the Many side of the join. You can’t view or modify table-level joins from the destination table’s TML file.
-
You can’t modify joins at the table level from the Worksheet, view, or Answer TML file. You can only override the joins for that specific Worksheet, view, or Answer. To modify table-level joins, you must edit the source table’s TML file.
-
You can’t remove tables from a connection. You can only add them.
-
You can only delete table columns that have no dependents. If the table column has any dependents, ThoughtSpot returns an error when you try to import or validate the TML file. To delete a table column, you must first delete the dependents.
-
When deleting columns, you only delete ThoughtSpot’s record of the column. You don’t delete the column in your external database.
-
If there is an error in any row-level security (RLS) rule when importing a table, all RLS rules for the table are removed. ThoughtSpot warns you about this on import, and highlights the rule that is in an error state, so you can fix it or remove it.
-
Changing the filter order for Answers in the UI doesn’t change the filter order in the TML file.
-
Import of TML does not support worksheets that have the same name for parameters as for column names. This will result in a timeout during the TML validation process.