pub trait DataFusionQueryExecutorExt: MetricsRepository {
// Provided method
fn execute_datafusion_query<'life0, 'async_trait>(
&'life0 self,
query: MetricsQuery,
) -> Pin<Box<dyn Future<Output = Result<Vec<(ResultKey, AnalyzerContext)>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait { ... }
}Expand description
Extension trait to add DataFusion-powered query execution to any repository.
Provided Methods§
Sourcefn execute_datafusion_query<'life0, 'async_trait>(
&'life0 self,
query: MetricsQuery,
) -> Pin<Box<dyn Future<Output = Result<Vec<(ResultKey, AnalyzerContext)>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn execute_datafusion_query<'life0, 'async_trait>(
&'life0 self,
query: MetricsQuery,
) -> Pin<Box<dyn Future<Output = Result<Vec<(ResultKey, AnalyzerContext)>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
Executes a query using DataFusion’s optimized query engine.
This method leverages Apache Arrow’s columnar format and DataFusion’s vectorized query engine to provide significant performance improvements over manual filtering, especially for:
- Large datasets (>10k metrics)
- Complex filtering conditions
- Time-range queries with sorting
- Analytical aggregations
§Performance
Benchmarks show 3-10x performance improvement over manual filtering for datasets >1000 entries with multiple filter conditions.