pub struct DataBackendSession {
pub chunk_size: usize,
pub runtime: Arc<Runtime>,
/* private fields */
}
Expand description
Provides a DataFusion session and registers DataFusion queries.
The session is used to register data sources and make queries on them. A
query returns a Chunk of Arrow records. It is decoded and converted into
a Vec of data by types that implement [DecodeDataFromRecordBatch
].
Fields§
§chunk_size: usize
§runtime: Arc<Runtime>
Implementations§
Source§impl DataBackendSession
impl DataBackendSession
Sourcepub fn new(chunk_size: usize) -> Self
pub fn new(chunk_size: usize) -> Self
Creates a new DataBackendSession
instance.
Sourcepub fn register_object_store(
&mut self,
url: &Url,
object_store: Arc<dyn ObjectStore>,
)
pub fn register_object_store( &mut self, url: &Url, object_store: Arc<dyn ObjectStore>, )
Register an object store with the session context
Sourcepub fn register_object_store_from_uri(
&mut self,
uri: &str,
storage_options: Option<HashMap<String, String>>,
) -> Result<()>
pub fn register_object_store_from_uri( &mut self, uri: &str, storage_options: Option<HashMap<String, String>>, ) -> Result<()>
Register an object store with the session context from a URI with optional storage options
pub fn write_data<T: EncodeToRecordBatch>( data: &[T], metadata: &HashMap<String, String>, stream: &mut dyn WriteStream, ) -> Result<(), DataStreamingError>
Sourcepub fn add_file<T>(
&mut self,
table_name: &str,
file_path: &str,
sql_query: Option<&str>,
) -> Result<()>where
T: DecodeDataFromRecordBatch + Into<Data>,
pub fn add_file<T>(
&mut self,
table_name: &str,
file_path: &str,
sql_query: Option<&str>,
) -> Result<()>where
T: DecodeDataFromRecordBatch + Into<Data>,
Query a file for its records. the caller must specify T
to indicate
the kind of data expected from this query.
table_name
: Logical table_name
assigned to this file. Queries to this file should address the
file by its table name.
file_path
: Path to file
sql_query
: A custom sql query to retrieve records from file. If no query is provided a default
query “SELECT * FROM <table_name
>” is run.
§Safety
The file data must be ordered by the ts_init
in ascending order for this
to work correctly.
pub fn get_query_result(&mut self) -> QueryResult
Trait Implementations§
Source§impl<'py> IntoPyObject<'py> for DataBackendSession
impl<'py> IntoPyObject<'py> for DataBackendSession
Source§type Target = DataBackendSession
type Target = DataBackendSession
Source§type Output = Bound<'py, <DataBackendSession as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <DataBackendSession as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for DataBackendSession
impl PyClass for DataBackendSession
Source§impl PyClassImpl for DataBackendSession
impl PyClassImpl for DataBackendSession
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§type ThreadChecker = SendablePyClass<DataBackendSession>
type ThreadChecker = SendablePyClass<DataBackendSession>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny
by default, and when you declare
#[pyclass(extends=PyDict)]
, it’s PyDict
.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyClassNewTextSignature<DataBackendSession> for PyClassImplCollector<DataBackendSession>
impl PyClassNewTextSignature<DataBackendSession> for PyClassImplCollector<DataBackendSession>
fn new_text_signature(self) -> Option<&'static str>
Source§impl<'a, 'py> PyFunctionArgument<'a, 'py, false> for &'a DataBackendSession
impl<'a, 'py> PyFunctionArgument<'a, 'py, false> for &'a DataBackendSession
Source§impl<'a, 'py> PyFunctionArgument<'a, 'py, false> for &'a mut DataBackendSession
impl<'a, 'py> PyFunctionArgument<'a, 'py, false> for &'a mut DataBackendSession
Source§impl PyMethods<DataBackendSession> for PyClassImplCollector<DataBackendSession>
impl PyMethods<DataBackendSession> for PyClassImplCollector<DataBackendSession>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for DataBackendSession
impl PyTypeInfo for DataBackendSession
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object
is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object
is an instance of this type.impl DerefToPyAny for DataBackendSession
impl Send for DataBackendSession
Auto Trait Implementations§
impl Freeze for DataBackendSession
impl !RefUnwindSafe for DataBackendSession
impl Sync for DataBackendSession
impl Unpin for DataBackendSession
impl !UnwindSafe for DataBackendSession
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
§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§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self
into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self
into an owned Python object, dropping type information and unbinding it
from the 'py
lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self
into a Python object. Read more