What is Index Awareness? How is it implemented.
Index awareness is a property of the universe, by means of which values in the filter conditions of the queries/data providers built from the universe, are substituted by their corresponding indexes or surrogate keys. Generally the values in the filter condition come from a dimension table (like country etc) and we require a join with the fact table to get this value.
However, if index awareness is implemented, this join is eliminated and the query filter takes the equivalent index value from the fact table itself.
To implement index awareness, one needs to identify the dimension fields which are to be used in query filter. In the Edit Properties of the object, we get a Keys tab. In this tab, the source primary key of the table from which the object is derived needs to be defined as primary key, and the database columns for all foreign key relationships with the other tables also need to be defined here. Once this is done for all required dimensions, the universe will become index aware