Indexing
Before creating the first insight, Mitzu must collect information about how you structured the events in your data warehouse. We call this process indexing. Indexing populates Mitzu's semantic layer with the events, properties, and filter values discovered in your warehouse.
Indexing runs on demand: when you add an event table or dimension table, or re-index one. There is no scheduled re-index, so events and properties that appear in your warehouse later show up in Mitzu after the next re-index.
Stored data
To generate the insights and Catalog pages, Mitzu collects the following information during the indexing process:
- events: Lists all events Mitzu finds in the configured event tables. Mitzu uses this to generate the insights and catalog pages.
- event properties: Lists all event properties assigned to each event found.
- event filter values: Lists the possible values of each event property found.
- event volume statistics: Counts each event's rows per day for the 14 days before the indexing run's end date. The Catalog page and the analytics agent use these counts to show whether an event currently records data.
- dimension properties: Lists all dimension properties that Mitzu finds in the configured dimension tables.
- dimension filter values: Lists the possible values of each dimension property found.
Together, these elements form the runtime semantic layer the analytics engine uses to answer questions and construct queries.
Mitzu will never copy data from your data warehouse or fetch data not required to generate the forms in the Mitzu web app.
For performance reasons, the number of Event filter values and Dimension filter values is limited to 500. For example, Mitzu won't store the possible values of the event time property due to its high cardinality. If you contact Mitzu support, we will increase this limit.
Event table indexing
When you add a new event table or re-index an existing table, Mitzu fetches a sample from the event table and stores the events found in this sample. You can configure the sample size in several ways:
- Mitzu calculates the time window of the sample so that it ends on the workspace end date (End date mode on the Insights tab) and begins one Lookback window earlier, set on the Indexing tab.
- You can configure the Event tables sample size on the Indexing tab. In a table that holds many events it is a cap per event name.
- You can enable Randomise read order to randomize the order of the queried records.
You should configure the sample size to maximize the cardinality of your events in the sample; otherwise, Mitzu will not recognize some of your events. If you need help with this configuration, please contact support at support@mitzu.io.
Once Mitzu has identified your events, it indexes each event's available properties. As with event indexing, Mitzu fetches a sample of the events containing all event properties. If your event tables contain many columns, consider setting Columns per chunk to choose how many columns Mitzu indexes per query, decreasing the indexing time of large tables. In workspaces created since April 2026, tables that hold many events are indexed 50 event names per query (Events per chunk); older workspaces index all events in one query until you set it.
Indexing also collects volume statistics for each recognized event: one aggregate query counts the event's rows per day over the 14 days ending on the workspace end date (End date mode on the Insights tab). Unlike event and property discovery, this count is not sampled. Events with no rows in that window are stored with a count of zero. Mitzu records both the counted window and the time the indexing run computed it — on workspaces with a custom end date, the window can lie in the past even when the stats were collected moments ago. The counts appear in the 14d volume column of the Catalog page and refresh on every re-index.
Mitzu can generate the insights page from the recognized events and event properties.
Dimension table indexing
When you add a new dimension table, Mitzu fetches a sample from the dimension table and stores the dimension properties found in this sample. You can configure the sample size in several ways:
- You can configure the Dimension tables sample size on the Indexing tab.
- You can enable Randomise read order to randomize the order of the queried records.
- You can set Sampling steps to read several consecutive samples from the table instead of one.
You should configure the sample size to maximize the cardinality of your dimension properties in the sample; otherwise, Mitzu will not recognize some of your properties. If you need help with this configuration, please contact support at support@mitzu.io.
Mitzu can generate the insights page from the recognized dimension properties. Mitzu only indexes dimension filter values when needed. For example, when you add a new dimension filter on the insight page, Mitzu will index the possible values of that specific dimension property using the same sampling mechanism.