TML for SQL views
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 SQL views, you can download these objects to flat files in .TML
format, modify the files, and subsequently upload the files either to the same cluster, or to a different cluster.
To learn how to export, change, and update SQL views, see Import and export TML files.
The syntax examples in this article contain every possible parameter in TML files for SQL views.
Some of these parameters are not in these files by default.
If you want to use them, you must add them yourself.
For example, the fqn
parameter is not present in any TML file by default, but you can add it to differentiate a table from another table with the same name.
As you work with TML files, keep in mind that changing elements of the TML file, such as the name of a column or table, may affect dependents. This is specifically true if you are editing TML files outside ThoughtSpot. When you change the name of a table in a TML file, and then import that file into ThoughtSpot, ThoughtSpot automatically updates that table name in any dependents, such as Answers that use the table as a data source. However, if you download multiple TML files from one ThoughtSpot cluster, then change the table name in TML, and upload all the files to a brand-new cluster, ThoughtSpot doesn’t know that the dependents should use that table. You must also change the table name in the dependents.
Syntax of the SQL view TML file
The TML
file for SQL views has a specific syntax.
See the TML parameters for SQL views for details about the keywords used in this example.
See Limitations of working with TML files for more information about actions you can’t perform using TML.
You may not see each of these parameters in your own TML files, depending on whether each variable is explicitly defined.
For example, if you did not define the SpotIQ preference, the spotiq_preference
variable does not appear.
You can add that variable in the TML file to specify the SpotIQ preference.
To reduce ambiguity, you may need to add the optional fqn
parameter to your TML file when you reference source tables or connections. This is necessary if you have multiple connections or tables with the same name. If you do not add the fqn
parameter, and the connection or table you reference does not have a unique name, the file import fails.
Refer to TML for joins for more information on the functionality and syntax of SQL view joins in TML.
If you edit the joins in the SQL view TML file, you are only editing the joins for that specific SQL view. You are not editing the joins at the table level. To modify table-level joins, you must edit the source table’s TML file. |
guid: <sql_view_guid> sql_view: name: <view_name> description: This is a multi-line description of the View. Description line 2 connection: name: <connection_name> fqn: <optional_connection_GUID> sql_query: <sql_query_string> sql_view_columns: - name: <column_name_1> description: <optional_column_description> sql_output_column: <sql_query_column_name> properties: column_type: [ MEASURE | ATTRIBUTE ] aggregation: [ SUM | COUNT | AVERAGE | MAX | MIN | COUNT_DISTINCT | NONE | STD_DEVIATION | VARIANCE] index_type: [ DONT_INDEX | DEFAULT | PREFIX_ONLY | PREFIX_AND_SUBSTRING | PREFIX_AND_WORD_SUBSTRING ] index_priority: <index_priority> synonyms : <synonym_1> <synonym_2> is_attribution_dimension : [true | false] is_additive : [ true | false ] calendar : [ default | calendar_name ] format_pattern : <format_pattern_string> currency_type : is_browser : true OR column : <column_name> OR iso_code : <valid_ISO_code> is_hidden : [ true | false ] geo_config : latitude : true OR longitude : true OR country : true OR region_name: - country : <name_supported_country> - region_name : <region_name_in_UI> spotiq_preference : <spotiq_preference_string> - name : <column_name_2> description : <column_description_2> sql_output_column: <sql_query_column_name_2> properties: ... - name : <column_name_n> description : <column_description_n> sql_output_column: <sql_query_column_name_n> properties: ... joins_with: - name: <join_name_1> description: <optional_join_description_1> destination: name: <destination_table_name_1> fqn: <optional_table_guid_1> on: <join_expression_string_1> type: [RIGHT_OUTER | LEFT_OUTER | INNER | OUTER] is_one_to_one: [ false | true ] - name: <join_name_2> - name: <join_name_n>
TML parameters for SQL views
These parameters and their definitions are specific to SQL views; this list doesn’t contain every parameter in every TML file. Similarly, the parameter definitions may vary from object to object, since the parameters may have different roles in different objects.
a - f | g - n | o - t |
---|---|---|
- aggregation
-
The default aggregation of the SQL view column.
Aggregation options depend on the data type.
Possible values are
SUM
,COUNT
,AVERAGE
,MAX
,MIN
,COUNT_DISTINCT
,NONE
,STD_DEVIATION
, andVARIANCE
Default:
SUM
.
- calendar
-
Specifies the calendar used by a date column.
Can be the Gregorian calendar (
default
), a fiscal calendar, or any custom calendar.
- column_type
-
The type of data the column represents.
Possible values:
MEASURE
orATTRIBUTE
- connection
-
A way to identify the external data warehouse connection that the SQL view uses. To add tables or columns to an external connection, you must specify this parameter.
- currency_type
-
The source of the currency type.
One of:
is_browser : true
-
infer the currency data from the locale of your browser
column : <column_name>
-
extracts the currency information from a specified column
iso_code : <valid_ISO_code>
-
applies currency based on the ISO code;
See ISO 4217 Currency Codes and Set currency type for more information.
- description
-
The text that describes an object: a
sql_view
,sql_view_column
and so on.
- destination
-
The name of the destination table or view for a join.
- format_pattern
-
The format pattern string that controls the display of a number, date, or currency column.
- fqn
-
The table or connection’s GUID. You can find this string of letters and numbers at the end of the URL for that table or connection.
For example, in
https://<company>.thoughtspot.com/#/data/tables/34226aaa-4bcf-4d6b-9045-24cb1e9437cb
, the GUID is34226aaa-4bcf-4d6b-9045-24cb1e9437cb
.Use this optional parameter to reduce ambiguity and identify a specific table, if you have multiple tables with the same name. When exporting a TML file, you have the option to Export FQNs of referenced objects, which ensures that the TML files you export contain FQNs for the underlying tables and connections. If you do not add the
fqn
parameter, and the connection or table you reference does not have a unique name, the file import fails.
- geo_config
-
Specifies the geographic information of a column. See Add a geographical data setting
One of:
latitude : true
-
for columns that specify the latitude
longitude : true
-
for columns that specify the longitude
country : true
-
for columns that specify the country
region_name
-
for specifying a region in a country
Uses two paired parameters:
-
country: <country_name>
-
region_name: <region_name_in_UI>
; can be State, Postal Code, District, and so on.
-
- guid
-
The GUID for the SQL view.
You can find this string of letters and numbers at the end of the URL for an object.
- index_priority
-
A value (1-10) that determines where to rank a column’s name and values in the search suggestions
ThoughtSpot prioritizes columns with higher values.
- index_type
-
The indexing option of the SQL view column.
Possible values:
DONT_INDEX
,DEFAULT
(see Understand the default indexing behavior),PREFIX_ONLY
,PREFIX_AND_SUBSTRING
, andPREFIX_AND_WORD_SUBSTRING
Default:
DEFAULT
See Index Type Values.
- is_additive
-
Controls extended aggregate options for attribute columns.
For attribute columns that have a numeric data type (
FLOAT
,DOUBLE
, orINTEGER
) or a date data type (DATE
,DATETIME
,TIMESTAMP
, orTIME
)Possible values:
true
orfalse
.Default:
true
.
- is_attribution_dimension
-
Controls if the column is an attribution dimension.
Used in managing chasm traps.
Possible values:
true
by default,false
to designate a column as not producing meaningful attributions across a chasm trap.Default:
true
- is_one_to_one
-
Specifies the cardinality of the join. This is an optional parameter.
Possible values:
true
,false
Default:
false
- joins_with
-
Contains a list of external joins for which this SQL view is the source.
Each join is identified byname
and optionaldescription
, and the additional attributes ofdestination
,type
,on
, andis_one_to_one
.
- name
-
The name of an object. Applies to
joins
,SQL view
, and so on.
- on
-
The join expression: the relationship definition, or the keys that your tables are joined on. For example,
[sale::Sale_Last Name] = [employee::Employee_Last Name] AND [sale::Sale_First Name] = [employee::Employee_First Name]
.To alter a relationship definition, edit this parameter.
- properties
-
The list of properties of a SQL view column.
Each column can have the following properties, depending on its definition:
column_type
,aggregation
,index_type
,is_hidden
,index_priority
,synonyms
,is_attribution_dimension
,is_additive
,calendar
,format_pattern
,currency_type
,geo_config
, andspotiq_preference
.
- spotiq_preference
-
Specifies whether to include a column in SpotIQ analysis. Specify
EXCLUDE
, or this property defaults to include the column in SpotIQ Analysis.
- sql_output_column
-
Name of the SQL’s output column as per the select clause in the view’s SQL query.
- sql_query
-
A string that represents the SQL query used to create the SQL view.
- sql_view
-
Top-level container for all object definitions within the SQL view.
- sql_view_columns
-
The list of columns in the SQL view.
Each column is identified by
name
,description
, andproperties
.
- synonyms
-
Alternate names for the column, used in search.
See Hide a column.
- type
-
This is the join type. This is an optional parameter.
Possible values:
LEFT_OUTER
for left outer join,RIGHT_OUTER
for right outer join,INNER
for inner join,OUTER
for full outer join.Default:
INNER
Limitations of working with TML files
There are certain limitations to the changes you can apply by editing SQL views through TML.
-
It isn’t possible to reverse the join direction in the TML script.
-
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.