Crate deltalake[−][src]
Expand description
Native Delta Lake implementation in Rust
Usage
Load a Delta Table by path:
async { let table = deltalake::open_table("./tests/data/simple_table").await.unwrap(); let files = table.get_files(); };
Load a specific version of Delta Table by path then filter files by partitions:
async { let table = deltalake::open_table_with_version("./tests/data/simple_table", 0).await.unwrap(); let files = table.get_files_by_partitions(&[deltalake::PartitionFilter { key: "month", value: deltalake::PartitionValue::Equal("12"), }]); };
Load a specific version of Delta Table by path and datetime:
async { let table = deltalake::open_table_with_ds( "./tests/data/simple_table", "2020-05-02T23:47:31-07:00", ).await.unwrap(); let files = table.get_files(); };
Optional cargo package features
s3
- enable the S3 storage backend to work with Delta Tables in AWS S3.azure
- enable the Azure storage backend to work with Delta Tables in Azure Data Lake Storage Gen2 accounts.datafusion-ext
- enable thedatafusion::datasource::TableProvider
trait implementation for Delta Tables, allowing them to be queried using DataFusion.
Re-exports
pub use self::partitions::*;
pub use self::storage::get_backend_for_uri;
pub use self::storage::parse_uri;
pub use self::storage::StorageBackend;
pub use self::storage::StorageError;
pub use self::storage::Uri;
pub use self::storage::UriError;
Modules
Actions included in Delta table transaction logs
Implementation for writing delta checkpoints.
Conversion between Delta Table schema and Arrow schema
Delta Table partition handling logic.
Object storage backend abstraction layer for Delta Table transaction logs and data
The writer module contains the DeltaWriter and DeltaWriterError definitions and provides a higher level API for performing Delta transaction writes to a given Delta Table.
Structs
Metadata for a checkpoint file
In memory representation of a Delta Table
Delta table metadata
State snapshot currently held by the Delta Table instance.
Object representing a delta transaction.
Clients that do not need to mutate action content in case a transaction conflict is encountered
may use the commit
method and rely on optimistic concurrency to determine the
appropriate Delta version number for a commit. A good example of this type of client is an
append only client that does not need to maintain transaction state with external systems.
Clients that may need to do conflict resolution if the Delta version changes should use
the prepare_commit
and try_commit_transaction
methods and manage the Delta version
themselves so that they can resolve data conflicts that may occur between Delta versions.
Options for customizing behavior of a DeltaTransaction
Holds the uri to prepared commit temporary file created with DeltaTransaction.prepare_commit
.
Once created, the actual commit could be executed with DeltaTransaction.try_commit
.
Represents the schema of the delta table.
Describes a specific field of the Delta table schema.
Schema definition for array type fields.
Schema definition for map type fields.
Represents a struct field defined in the Delta table schema.
Enums
Error related to Delta log application
Delta Table specific error
Error returned by the DeltaTransaction struct
Error related to checkpoint loading
Enum with variants for each top level schema data type.
Functions
Returns rust crate version, can be use used in language bindings to expose Rust core version
Creates and loads a DeltaTable from the given path with current metadata. Infers the storage backend to use from the scheme in the given table path.
Creates a DeltaTable from the given path. Loads metadata from the version appropriate based on the given ISO-8601/RFC-3339 timestamp. Infers the storage backend to use from the scheme in the given table path.
Creates a DeltaTable from the given path and loads it with the metadata from the given version. Infers the storage backend to use from the scheme in the given table path.
Type Definitions
Type alias for i32/Delta int
Type alias for i64/Delta long
Type alias representing the expected type (i64/ms since Unix epoch) of a Delta timestamp.
Type alias representing the expected type (i64) of a Delta table version.
Type alias for a string expected to match a GUID/UUID format