For Snowflake datasources, allow warehouse to be defined at report level
I know this is DWH vendor specific but I think this would be incredibly useful
Snowflake allows elastic compute power with what they call virtual warehouses. These range from X-Small (1 node, 8 CPU cores, 12GB RAM) all the way up to 4X-Large (128 nodes). These can be dynamically changed on a whim depending on your requirements, either through some SQL commands or by appending the warehouse name to the connection string
In Yellowfin, when defining a Snowflake datasource connection, there is a space to specify a named warehouse. This means all connections on this source will use this warehouse.
For static workloads, this is fine but for ultimate flexibility we do not define this and use pass through authentication which means that Snowflake will use the default warehouse attached to the users' account.
For most of our use cases, this suits us perfectly as we can assign different warehouses to different users depending on their department/need etc. This also means we can monitor cost and performance for each department and adjust as needed
It also means that to achieve this level of flexibility, we do not have to create different datasources for each department and hence otherwise identical views and suites of reports that would all need to be maintained separately, leading to a lot of duplication of work.
However, we have had some use cases where a particular report is quite heavy and would benefit from a more powerful warehouse. We could adjust all users' default warehouse but that would incur extra cost for power that may not be needed in all cases
A solution to this would be to be able to define a warehouse per report. I imagine it would work similarly to the same field in the datasource properties where if left blank, it would default to the datasource one (or the user one if not defined there also) but if populated, it would override the datasource one and use the named warehouse. This way the report will get the extra power it needs but users would still be on their default warehouse for other reports where it is not defined
For dashboards this might mean several reports, all with different connection properties. While this is ideal in the sense that it respects the power levels we want for the report, I realise it might be alot. A suitable compromise might be to define this per dashboard also
The heirarchy then being Dashboard->Report->Datasource
Apologies for the essay but I thought it best to give the thinking behind this suggestion
If you need any more details, please let me know