Cross-link provides a no code interface for you to link two datasources by one or multiple columns. Immerse can then automatically crossfilter between datasources using cross-links.
Cross-links or Joins
A join is a new datasource that performs a SQL join. Columns from both tables can be queried and used in one or many charts.
A cross-link pertains only to filtering. By specifying cross-linked columns, you can automatically apply filters applied to one dataset, to another.
Begin by selecting the cross-link tab in the dashboard view
To create a cross-link, select the "Setup cross-link" button.
This opens the cross-link creation form
The components of a cross-link are exactly two datasources and one or more sets of columns from each datasource to link. Click "Save" to save and apply the crosslink to the current dashboard.
In the above scenario a crosslink is setup between the datasource heavyai_us_states,
column abbr
and datasource flights
, column dest_state
. This means that if you crossfilter a chart that uses datasource heavyai_us_states
immerse will automatically crossfilter any charts that use the flights
table to contain only records where dest_state
matches the abbr
column from the filtered heavyai_us_states
chart.
In the full example below, a crosslink is setup as described above. The US States
chart is crossfiltering to records only containing the abbr
of CO
. On the right are two charts showing flight data in a point map and in a table grouped by state. Because of the cross-link, these two charts are only showing records with a dest_state
that equals CO
.
Note: Cross-links go both ways, so in our example if I filter heavyai_us_states
by an abbr
of CO
it will filter the flights table by a dest_state
of CO
, but if I filter flights
by a dest_state
of CO
it will also filter the heavyai_us_states
chart by an abbr
of CO.
Once a cross-link is saved, you can access other actions like "Edit a cross-link" by selecting the ellipses in the upper right corner, which appear on hover.
From here you can select Edit or Delete actions. Selecting edit will enable edit mode where you can select datasources and update or add columns. You have the option to Save or Cancel your changes.
You can toggle cross-links on and off using the toggle switch in the upper left corner.
For more complex use cases you can set up multiple cross-links or create cross-links with multiple sets of columns
If you have many datasources in a dashboard, you can also setup multiple cross-links between them.
In the above dashboard we have added a chart with a third datasource sales
and setup a cross-link between the origin_state
of the flights
table with the state
column of the sales
table.
Scenario 1: Selecting "CO" of the US States chart
In this scenario the two charts that use the flights
table will be filtered by dest_state
and origin_state
equal to CO
but the Sales by State table will not also be filtered by state
equals CO
.
Scenario 2: Selecting the row with origin_state
of CO
in the "# Flights" chart
In this scenario both the Sales by State and US States tables will be filtered, because there is a crosslink setup between the flights
table and both the heavyai_us_states
and the sales
tables.
Cross-links do not chain. The above scenario only works because the flights
table is being filtered, which is cross-linked to both other tables. Filtering heavyai_us_states
for example would not filter flights
AND state_sales
, it would only filter the flights table
To add additional sets of columns to cross-link on, click the "Add column match" link when editing a cross-link.
This will add an additional row of columns, where you can select an additional column to link.
In our example, if we wanted the CO
crossfilter to filter both dest_state
and origin_state
we could add an additional column match for this.
Now if we filter heavy_ai_states
by an abbr
of CO
, Immerse will only show us flights that departed and landed in Colorado in the charts that use the flights
datasource.
You can add as many column matches as you would like.