pub struct DefaultParquetHandler<E: TaskExecutor> { /* private fields */ }Implementations§
Source§impl<E: TaskExecutor> DefaultParquetHandler<E>
impl<E: TaskExecutor> DefaultParquetHandler<E>
pub fn new(store: Arc<DynObjectStore>, task_executor: Arc<E>) -> Self
Sourcepub fn with_buffer_size(self, buffer_size: NonZero<usize>) -> Self
pub fn with_buffer_size(self, buffer_size: NonZero<usize>) -> Self
Set the maximum number of files to read concurrently in Self::read_parquet_files().
Defaults to super::DEFAULT_READ_BUFFER_SIZE.
This setting applies only to object-store reads. When every file in the batch uses a
presigned URL (https://...), reads bypass the object store and this value has no effect;
use Self::with_batch_size to tune RecordBatch chunking in that path.
Memory constraints can be imposed by constraining the buffer size and batch size. Note that overall memory usage is proportional to the product of these two values.
- Batch size governs the size of RecordBatches yielded in each iteration of the stream.
- Buffer size governs the number of concurrent file reads (which equals the size of the readahead buffer).
Sourcepub fn with_batch_size(self, batch_size: NonZero<usize>) -> Self
pub fn with_batch_size(self, batch_size: NonZero<usize>) -> Self
Set the maximum number of rows per RecordBatch yielded by Self::read_parquet_files().
Defaults to super::DEFAULT_READ_BATCH_SIZE rows.
Sourcepub async fn write_parquet_file(
&self,
data: Box<dyn EngineData>,
write_context: &BoundWriteContext,
) -> KernelResult<Box<dyn EngineData>>
pub async fn write_parquet_file( &self, data: Box<dyn EngineData>, write_context: &BoundWriteContext, ) -> KernelResult<Box<dyn EngineData>>
Write data to a new parquet file under the BoundWriteContext::write_dir and return
Add action metadata ready for Transaction::add_files.
The metadata schema does not contain the dataChange column. Kernel uses the
data_change flag supplied when constructing the transaction builder.
Trait Implementations§
Source§impl<E: Debug + TaskExecutor> Debug for DefaultParquetHandler<E>
impl<E: Debug + TaskExecutor> Debug for DefaultParquetHandler<E>
Source§impl<E: TaskExecutor> ParquetHandler for DefaultParquetHandler<E>
impl<E: TaskExecutor> ParquetHandler for DefaultParquetHandler<E>
Source§fn write_parquet_file(
&self,
location: Url,
data: KernelResultIteratorStatic<Box<dyn EngineData>>,
) -> KernelResult<FileSize>
fn write_parquet_file( &self, location: Url, data: KernelResultIteratorStatic<Box<dyn EngineData>>, ) -> KernelResult<FileSize>
Writes engine data to a Parquet file at the specified location.
This implementation uses asynchronous file I/O with object_store to write the Parquet file. If a file already exists at the given location, it will be overwritten.
§Parameters
location- The full URL path where the Parquet file should be written (e.g.,s3://bucket/path/file.parquet,file:///path/to/file.parquet).data- An iterator of engine data to be written to the Parquet file.
§Returns
The exact number of bytes written to the parquet file.
Source§fn read_parquet_files(
&self,
files: &[FileMeta],
physical_schema: SchemaRef,
predicate: Option<PredicateRef>,
) -> KernelResult<FileDataReadResultIterator>
fn read_parquet_files( &self, files: &[FileMeta], physical_schema: SchemaRef, predicate: Option<PredicateRef>, ) -> KernelResult<FileDataReadResultIterator>
physical_schema, and they must be in schema order. Read moreSource§fn read_parquet_files_with_cancellation(
&self,
files: &[FileMeta],
physical_schema: SchemaRef,
predicate: Option<PredicateRef>,
cancellation_token: Option<CancellationTokenRef>,
) -> KernelResult<FileDataReadResultIterator>
fn read_parquet_files_with_cancellation( &self, files: &[FileMeta], physical_schema: SchemaRef, predicate: Option<PredicateRef>, cancellation_token: Option<CancellationTokenRef>, ) -> KernelResult<FileDataReadResultIterator>
read_parquet_files. Read moreread_parquet_footer. Read moreAuto Trait Implementations§
impl<E> !RefUnwindSafe for DefaultParquetHandler<E>
impl<E> !UnwindSafe for DefaultParquetHandler<E>
impl<E> Freeze for DefaultParquetHandler<E>
impl<E> Send for DefaultParquetHandler<E>
impl<E> Sync for DefaultParquetHandler<E>
impl<E> Unpin for DefaultParquetHandler<E>
impl<E> UnsafeUnpin for DefaultParquetHandler<E>where
Arc<E>: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> AsAny for T
impl<T> AsAny for T
Source§fn any_ref(&self) -> &(dyn Any + Send + Sync + 'static)
fn any_ref(&self) -> &(dyn Any + Send + Sync + 'static)
dyn Any reference to the object: Read moreSource§fn as_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ
fn as_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ
Arc<dyn Any> reference to the object: Read moreSource§fn into_any(self: Box<T>) -> Box<dyn Any + Send + Sync>
fn into_any(self: Box<T>) -> Box<dyn Any + Send + Sync>
Box<dyn Any>: Read moreSource§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
std::any::type_name, since Any does not provide it and
Any::type_id is useless as a debugging aid (its Debug is just a mess of hex digits).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> FoldWithOption for T
impl<T> FoldWithOption for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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