ParquetFileMetrics

Struct ParquetFileMetrics 

Source
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: PruningMetrics

Number 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: Count

Number of times the predicate could not be evaluated

§row_groups_pruned_bloom_filter: PruningMetrics

Number of row groups whose bloom filters were checked, tracked with matched/pruned counts

§row_groups_pruned_statistics: PruningMetrics

Number of row groups whose statistics were checked, tracked with matched/pruned counts

§bytes_scanned: Count

Total number of bytes scanned

§pushdown_rows_pruned: Count

Total rows filtered out by predicates pushed into parquet scan

§pushdown_rows_matched: Count

Total rows passed predicates pushed into parquet scan

§row_pushdown_eval_time: Time

Total time spent evaluating row-level pushdown filters

§statistics_eval_time: Time

Total time spent evaluating row group-level statistics filters

§bloom_filter_eval_time: Time

Total time spent evaluating row group Bloom Filters

§page_index_rows_pruned: PruningMetrics

Total rows filtered or matched by parquet page index

§page_index_eval_time: Time

Total time spent evaluating parquet page index filters

§metadata_load_time: Time

Total time spent reading and parsing metadata from the footer

§predicate_cache_inner_records: Count

Predicate Cache: number of records read directly from the inner reader. This is the number of rows decoded while evaluating predicates

§predicate_cache_records: Count

Predicate 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

Source

pub fn new( partition: usize, filename: &str, metrics: &ExecutionPlanMetricsSet, ) -> Self

Create new metrics

Trait Implementations§

Source§

impl Clone for ParquetFileMetrics

Source§

fn clone(&self) -> ParquetFileMetrics

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ParquetFileMetrics

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

impl<T> ErasedDestructor for T
where T: 'static,