Skip to content

Customization

You can customize the settings of Indexima for Snowflake in your interface: https://autopilot.indexima.io/settings

Dynamic Tables creation

You can enable or disable automatic creation / deletion of Dynamic Tables. By default this option is enabled to make sure you always benefit from the best aggregation layer without any action required.
If you deactivate the DT creation, Indexima will still calculate and suggest the best aggregation layer (see https://autopilot.indexima.io/aggregation) but Dynamic Tables won’t be created automatically. You will have to create them manually in Snowflake if you want to benefit from query acceleration.
Be aware that as your activity increases this can become time and resource consuming as the number of dynamic tables will increase and the best aggregation layer can change at any time.

Query acceleration

You can enable or disable query acceleration. By default this option is enabled. This allows Indexima to automatically redirect your SQL Queries towards relevant Dynamic Tables, and therefore improve performance.
If you disable this option, queries won’t be redirected and you won’t benefit from any Dynamic Tables. The only way to use them would be to rewrite your query to force them through Dynamic Tables or to redefine your data model in your BI Tool so it points to Dynamic Tables when needed.
In most cases this is highly time consuming and will force you to duplicate Data sources as some queries can use an aggregation layer but others still need to access the raw data.

Service user

You can update the service user authentication, to adapt the role and authorisation that Indexima will have when connecting to your Snowflake.
The service user supports User/Password or Key-pair authentication modes. For Key-pair authentication, if you private key is encrypted, you need to provide the Service private key password.
In any case, the queries proxied by Indexima will always be executed with the original Snowflake user defined in your dataviz tool. The Service user is only used for Indexima to requets metadata from your Snowflake and to create Dynamic Tables.

Advanced settings

The folowing parameters are available to fine-tune the behaviour of Indexima:

  • Snowflake OAuth Client Id: This parameter allows to add a client id in order to sign-in to Indexima interface with Snowflake OAuth. Please see dedicated documentation to enable Snowflake Oauth.
  • DT Target lag: Target lag parameter for Dynamic Tables automatically created. Please refer to Snowflake documentation
  • DT refresh warehouse: Warehouse used to refresh the Dynamic Tables. Please refer to Snowflake documentation
  • Query analysis period: The maximum age of a query to be considered when calculating the best aggregation layer.
  • Query minimum hits: Minimal number of queries seen during the computation period necessary for a candidate materialization to be taken into account.
  • Refresh aggregation layer frequency: The frequency at which to recalculate the best aggregation layer and adapt Snowflake Dynamic Tables.
  • Scope limitation: Limit the scope of DT automatic creation to a specific database or a specific schema. You can define several scopes (comma separated) of database or database.schema. Eg: "DB1, DB2.SC1, DB2.SC2"
  • DT location: Store every DT in a specific schema. If empty (default), DT are stored next to their source table. Format is MYDATABASE.MYSCHEMA.
    This setting is especially usefull if you want to accelerate a Snowflake shared database: as the consumer has read-only access to the shared database, you need to setup this parameter in order to create DT in a specific location outside of the shared database.

Snowflake Oauth

You can enable Snowflake OAuth in order to connect to the Indexima interface with Snowflake authentication.

Execute in Snowflake the following command to create a security integration (no need to change anything in this command):

sql
CREATE SECURITY INTEGRATION OAUTH_INDEXIMA
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_REDIRECT_URI = 'https://autopilot.indexima.io/oauth/callback'
  OAUTH_ISSUE_REFRESH_TOKENS = TRUE
  OAUTH_REFRESH_TOKEN_VALIDITY = 86400
  BLOCKED_ROLES_LIST = ('SYSADMIN'),
  OAUTH_CLIENT_RSA_PUBLIC_KEY='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx+IETgskVcdEJ5jsx4IO
ILxshkbxz8Q9X/PIdgDA80SyXTn1FTxDqB6tlSbUDJp6znQt/N/9OCwu7iVDNXUa
JsOnSV5p7T6H8lJr/8Hmr7iNAgWbSb0sY27HJ0aXDbOuI8TzvLRqlNiubT8z7kyk
TYmGL/TgUNFzWfuyi78Ejnx/iNoZLBuGlCO9tEoW9LMx6gkYNp7Bbb2Q7qBqXuno
M9yNtuZhcqwBX7G3KeXhl2pm/nXpuHQtFdMhYPpaDGC4R9jID6KQM8lApxc0ah//
ZoEmlzYzIDn9dO7nAfMUourn9tzMVxiH9eFaGelt1OhXCGUHgtBxYTUYIytSUqOO
rQIDAQAB';

Verify the new OAUTH_CLIENT_ID generated by Snowflake for this integration:

sql
DESCRIBE SECURITY INTEGRATION OAUTH_INDEXIMA;

You can then add this OAUTH_CLIENT_ID in the Snowflake OAuth Client Id setting field. Upon next connection to Indexima interface, a Sign-in with Snowflake button will allow you to connect with Snowflake authentication.