Depending on your use case, a different type of plugin may be more suitable. Luzmo distinguishes between two types of plugins, basic and pushdown.
A basic plugin will let Luzmo handle the aggregations and filters while a pushdown plugin will construct queries in such a way that the database or the underlying API handles the aggregations and filters. A basic pushdown should always return all the columns in your dataset in a non-aggregated manner, a pushdown plugin on the other hand returns only the requested columns in an aggregated manner.
The term pushdown comes from the database world where they often talk about ‘predicate pushdown’. Predicates in databases are filters and what they mean with predicate pushdown is to push the filter as close to the read operation as possible. In other words, filter data as early as possible to avoid unnecessary work.
In Luzmo, pushdown applies to both aggregations and filters. When we write a pushdown plugin, we push the aggregations and filters from the query engine to the underlying database or API.
What the animation illustrates is:
A pushdown plugin is far more efficient than a basic plugin. This becomes more apparent as your dataset grows. If your data is small (up to 100,000 rows) you probably won’t see a lot of benefit from pushdown.