Using Cross-link

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.

Advanced Usage

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 statecolumn 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

Multiple Column Match

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.