Field Values caching - increase scan frequency (to minutes) or disable Field Values caching

Metabase version: 0.48.6
DB: PostgreSQL

Scenario: we have a frequently updated table and would like to see new values in filters (dropdown, field values) ASAP (within minutes, <5 min).

  • Proposed solutions suggest manually configuring scheduler, but the update frequency is limited to hours (too long).
  • We don't mind more queries to the DB.

Issue: creating model based of such table and linking dropdown filter directly works fine. But when using linked filters the dropdown values aren't updated for dependent filters. (see example below)

Example:

  1. database my_table with two columns - "category_parent", "category_child"
  2. corresponding metabase's model my_model (created with SQL query select * from my_table)
  3. dashboard with two Dropdown Field Value filters.
  • First filter is based of my_model's column "category_parent".
  • Second is linked to the first one, and presents values from "category_child"
  1. Insert some data:
  • parentvalue1, childvalueA
  • parentvalue2, childvalueB
  • parentvalue2, childvalueC
  1. Check dropdowns
  • first dropdown contains parentvalue1, parentvalue2
  • second dropdown contains childvalueA for parentvalue1 and childvalueB, childvalueC for parentvalue 2
  1. Insert single row
  • parentvalue2, childvalueX
  1. check second dropdown with parentvalue2 seleted

Expected behavior: dropdown must contain childvalueX
Actual behavior: it doesn't. Value appears only after field-value rescanning

Notes:

  1. New rows are visible when viewing my_model right away
  2. New values are available right away if filters aren't linked
  3. metabase_fieldvalues contains "old" values for filter unless field-value rescanning is triggered

You can just simply hit the endpoint that you use to refresh the filter values (check what gets hit when you go to settings->admin->table metadata-> select a table and then select q field (icon on the right which looks like a gear)

Yes, I thought about that - it's definitely a workaround. But unfortunately it's very hack-ish from my POV:

  • it would require us to run some cron / scheduled job
  • it would have to possess means to authorize as admin, which is less than ideal from security perspective.

EDIT: another thing that strikes me as odd is the fact that not-linked filters are updated instantaneously. I don't get why though.