pub struct ParquetFileMetrics {Show 15 fields
pub files_ranges_pruned_statistics: PruningMetrics,
pub predicate_evaluation_errors: Count,
pub row_groups_pruned_bloom_filter: PruningMetrics,
pub row_groups_pruned_statistics: PruningMetrics,
pub bytes_scanned: Count,
pub pushdown_rows_pruned: Count,
pub pushdown_rows_matched: Count,
pub row_pushdown_eval_time: Time,
pub statistics_eval_time: Time,
pub bloom_filter_eval_time: Time,
pub page_index_rows_pruned: PruningMetrics,
pub page_index_eval_time: Time,
pub metadata_load_time: Time,
pub predicate_cache_inner_records: Count,
pub predicate_cache_records: Count,
}Expand description
Stores metrics about the parquet execution for a particular parquet file.
This component is a subject to change in near future and is exposed for low level integrations
through ParquetFileReaderFactory.
Fields§
§files_ranges_pruned_statistics: PruningMetricsNumber of file ranges pruned or matched by partition or file level statistics. Pruning of files often happens at planning time but may happen at execution time if dynamic filters (e.g. from a join) result in additional pruning.
This does not necessarily equal the number of files pruned: files may be scanned in sub-ranges to increase parallelism, in which case this will represent the number of sub-ranges pruned, not the number of files. The number of files pruned will always be less than or equal to this number.
A single file may have some ranges that are not pruned and some that are pruned.
For example, with a query like ORDER BY col LIMIT 10, the TopK dynamic filter
pushdown optimization may fill up the TopK heap when reading the first part of a file,
then skip the second part if file statistics indicate it cannot contain rows
that would be in the TopK.
predicate_evaluation_errors: CountNumber of times the predicate could not be evaluated
row_groups_pruned_bloom_filter: PruningMetricsNumber of row groups whose bloom filters were checked, tracked with matched/pruned counts
row_groups_pruned_statistics: PruningMetricsNumber of row groups whose statistics were checked, tracked with matched/pruned counts
bytes_scanned: CountTotal number of bytes scanned
pushdown_rows_pruned: CountTotal rows filtered out by predicates pushed into parquet scan
pushdown_rows_matched: CountTotal rows passed predicates pushed into parquet scan
row_pushdown_eval_time: TimeTotal time spent evaluating row-level pushdown filters
statistics_eval_time: TimeTotal time spent evaluating row group-level statistics filters
bloom_filter_eval_time: TimeTotal time spent evaluating row group Bloom Filters
page_index_rows_pruned: PruningMetricsTotal rows filtered or matched by parquet page index
page_index_eval_time: TimeTotal time spent evaluating parquet page index filters
metadata_load_time: TimeTotal time spent reading and parsing metadata from the footer
predicate_cache_inner_records: CountPredicate Cache: number of records read directly from the inner reader. This is the number of rows decoded while evaluating predicates
predicate_cache_records: CountPredicate Cache: number of records read from the cache. This is the number of rows that were stored in the cache after evaluating predicates reused for the output.
Implementations§
Source§impl ParquetFileMetrics
impl ParquetFileMetrics
Sourcepub fn new(
partition: usize,
filename: &str,
metrics: &ExecutionPlanMetricsSet,
) -> Self
pub fn new( partition: usize, filename: &str, metrics: &ExecutionPlanMetricsSet, ) -> Self
Create new metrics
Trait Implementations§
Source§impl Clone for ParquetFileMetrics
impl Clone for ParquetFileMetrics
Source§fn clone(&self) -> ParquetFileMetrics
fn clone(&self) -> ParquetFileMetrics
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ParquetFileMetrics
impl RefUnwindSafe for ParquetFileMetrics
impl Send for ParquetFileMetrics
impl Sync for ParquetFileMetrics
impl Unpin for ParquetFileMetrics
impl UnwindSafe for ParquetFileMetrics
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more