Frequently Asked Questions
How can I monitor the gain provided by Indexima ?
First of all, you will monitor the gain on your monthly Snowflake bill. You will also monitor in your Indexima interface the real-time queries accelerated and the Dynamic Tables created.
I want to beneficiate from the acceleration, but I’m afraid to let Indexima create Dynamic Table in full autonomy
Indexima for Snowflake has two main features:
- creating and maintaining relevant Dynamic Tables
- substituating those Dynamic Tables in queries
You can decide to deactivate the automatic creation, and create manually the Dynamic Tables proposed by Indexima. Indexima for Snowflake will auto-discover those Dynamic Tables and use them for substitution.
I'm afraid to test Indexima on my production dashboard
When Indexima creates Dynamic Tables, if nobody specifically calls them, they won't have any impact. Creating Dynamic Tables on your production schema has absolutely no impact on your dashboard if you don't route your traffic through Indexima. So you can safely test Indexima by switching only one user / one board to use Indexima.
Moreover, Indexima features can be enabled/disabled by a click of a button. When you disable the query acceleration in your settings, instantly the queries will be forwarded to Snowflake without any rewritting.
What is the performance impact of Indexima
The treatment of a query by Indexima takes less than 20ms.
- If a query can't be accelerated by a Dynamic Table, the performance impact will be only 20ms.
- If a query can be accelerated by a Dynamic Table, the performance gain can be from x5 up to x100 depending on the usecase.
When are the Dynamic Table refreshed ?
The Dynamic Tables are refreshed based on the Snowflake refresh algorithm. The TARGET_LAG parameter define the frequency at which the Dynamic Table will be refreshed (in fact, the worse lag we accept for the Dynamic Table compared to the source table). The TARGET_LAG of Dynamic Tables created by Indexima is customisable in your Indexima Settings.
Why not just create the Dynamic Tables manually in Snowflake ?
First of all, Snowflake doesn't support query substitution on Dynamic Tables. It’s supported on Materialized Views, but they have some critical limitations that makes them inappropriate candidates for query acceleration on large dataset. Without subsitution, the BI tool would need to target directly the Dynamic table, which defeat the purpose of automatic aggregation layer, as boards would need to adapt to each change in aggregation layer.
Secondly, your dashboard are changing, and the workload for data engineer to permanently monitor the queries to build an appropriate aggregation layer is huge. Indexima obliterates this workload.