Configuring How Data is Exposed to BI Software
Xpress Insight dynamically creates and manages a MySQL database schema per copy of an app hosted by the system. The schema and content of the mirror database is also managed by Xpress Insight. Apps define the data entities that are to be mirrored in the companion file, grouped into tables.
![]() |
Note:
The mirror database acts a short-lived cache of the scenario data in relational format. The data is deleted from the mirror based on configurable rules. For more information about configuring mirror eviction rules, see Configuring FICO® Xpress Insight for Tableau. |
- Array entities in the same table must have identical index sets.
- Scalars can only be combined with other scalars.
- A set can be mirrored explicitly. It must be the only entity defined for the mirror table.
- The table-name must not exceed 64 characters.
- The column name must not exceed 64 characters.
- The table name and column name must be a character in the Unicode range U+0001 to U+FFFF, excluding the back quote (`).
- Column names must also be unique when case insensitive.
- Entities of Boolean data type will be mirrored as integers with a value of 1 indicating true and a value of 0 indicating false (when labels are not applied).
- The column names mirror_row_id and scenario_id are reserved column names.
<database-mirror>
<mirror-tables>
<!-- array(CountryValues) -->
<mirror-table name="country_info">
<entity name="Country_Count"></entity> <!-- of string -->
<entity name="Country_CurrentFraction"></entity> <!-- of real -->
<entity name="Country_Fraction"></entity> <!-- of real -->
</mirror-table>
<!—scalars -->
<mirror-table name="kpis">
<entity name="TotalBudget"></entity>
<entity name="TotalCombined"></entity>
<entity name="TotalReturn"></entity>
<entity name="TotalRisk"></entity>
<entity name="TotalValue"></entity>
</mirror-table>
<!-- a set of string -->
<mirror-table name="shares_list">
<entity name="Shares"></entity>
</mirror-table>
</mirror-tables>
</database-mirror>
Results in the following schema:
> describe country_info;
+-----------------------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------------------------+--------------+------+-----+---------+----------------+
| mirror_row_id | bigint | NO | PRI | NULL | auto_increment |
| scenario_id | char(36) | NO | PRI | NULL | |
| CountryValues | varchar(512) | NO | | NULL | |
| Number of shares per country | int | YES | | NULL | |
| Aggregated Current Fraction per Country | double | YES | | NULL | |
| Aggregated Fraction per Country | double | YES | | NULL | |
+-----------------------------------------+--------------+------+-----+---------+----------------+
> describe kpis;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| scenario_id | char(36) | NO | PRI | NULL | |
| name | varchar(512) | NO | PRI | NULL | |
| value | varchar(512) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
> describe shares_list;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| scenario_id | char(36) | NO | PRI | NULL | |
| Shares | int | NO | PRI | NULL | |
| Label | varchar(512) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
![]() |
Note:
|
There are 3 system tables included in every schema.
insight_selection table:
The contents of this table represent a mapping of a request from a vdl-tableau component in a custom UI view to the list of scenarios in the request. The query from BI software e.g., Tableau data source must join this table to the entity table(s) to select the right scenarios. The query must also filter on username to implement the expected user access model i.e., only a user who has requested the data can see the data.
The table also supplies useful meta-data for a BI visualization to use such as the names of the app and scenarios, the type of the scenarios and the order of the scenarios on the UI shelf.
Column | Type | Description |
selection_id | char(36) | UUID of the mirror request containing the tables and scenarios to mirror. |
app_name | varchar(255) | Name of the Insight app |
scenario_id | char(36) | UUID of the scenario. The app mirror tables should be joined to this table by the scenario id. |
scenario_name | varchar(255) | Name of the scenario |
scenario_path | varchar(8192) | Full path to the scenario |
scenario_type | varchar(255) | Type of the scenario (blank if scenario types are not used) |
scenario_ordinal | smallint | Position on the shelf |
username | varchar(255) | Username of the Insight user who requested the data to be mirrored. |
scenario_type | varchar(255) | The type of the scenario. |
insight_authorities table:
This table exposes the list of authorities for a user.
Column | Type | Description |
username | varchar(255) | Username of the Insight user who requested the data to be mirrored. |
authority_name | varchar(255) | An authority that is assigned to the user. |
insight_authority_groups
This table exposes the list of authority groups for a user.
Column | Type | Description |
username | varchar(255) | Username of the Insight user who requested the data to be mirrored. |
authority_group_name | varchar(255) | An authority group that is assigned to the user. |
The mirror database also includes tables prefixed with __internal
. These tables are internal to Xpress Insight, should not be used by Tableau views and may change in future releases.
© 2001-2024 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.