You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are database-specific performance issues with totals and such. Some databases are better at e.g. window functions, some at joins with group by subquery. To avoid having this logic in the backend (will make creating new backends more difficult), there are multiple solutions:
Have the engine attached to the backend. def __init__(self, backend: Backend) for the Engine. Then the backend can give hints to the engine about its preferences. For example, window_functions = True class attribute would mean that the engine prefers window functions, False that it's better to use groupby + join
The engine provides a hint materialize=True to the QueryOperator, so the operator will emit a DataFrame instead of a query and the rest of the computation will be performed using Pandas. This will surely improve database performance, but might affect local performance, especially important in case of the cloud version (out-of-memory errors). Using dask might alleviate this.
The text was updated successfully, but these errors were encountered:
There are database-specific performance issues with totals and such. Some databases are better at e.g. window functions, some at joins with group by subquery. To avoid having this logic in the backend (will make creating new backends more difficult), there are multiple solutions:
def __init__(self, backend: Backend)
for the Engine. Then the backend can give hints to the engine about its preferences. For example, window_functions = True class attribute would mean that the engine prefers window functions, False that it's better to use groupby + joinThe text was updated successfully, but these errors were encountered: