pub struct FileSystemCatalog { /* private fields */ }Expand description
Filesystem catalog implementation.
This catalog stores metadata on a filesystem with the following structure:
warehouse/
├── database1.db/
│ ├── table1/
│ │ └── schema/
│ │ ├── schema-0
│ │ ├── schema-1
│ │ └── ...
│ └── table2/
│ └── schema/
│ ├── schema-0
│ └── ...
└── database2.db/
└── ...Reference: org.apache.paimon.catalog.FileSystemCatalog
Implementations§
Source§impl FileSystemCatalog
impl FileSystemCatalog
Sourcepub fn new(options: Options) -> Result<Self>
pub fn new(options: Options) -> Result<Self>
Create a new filesystem catalog from configuration options.
§Arguments
options- Configuration options containing warehouse path and storage configs (S3, OSS, etc.)
§Required Options
warehouse- The root warehouse path (e.g.,/path/to/warehouse,s3://bucket/warehouse)
§Example
ⓘ
use paimon::{FileSystemCatalog, Options, CatalogOptions};
// Local filesystem
let mut options = Options::new();
options.set(CatalogOptions::WAREHOUSE, "/tmp/warehouse");
let catalog = FileSystemCatalog::new(options)?;
// S3 with credentials
let mut options = Options::new();
options.set(CatalogOptions::WAREHOUSE, "s3://bucket/warehouse");
options.set("s3.access-key-id", "...");
options.set("s3.secret-access-key", "...");
let catalog = FileSystemCatalog::new(options)?;Trait Implementations§
Source§impl Catalog for FileSystemCatalog
impl Catalog for FileSystemCatalog
Source§fn list_databases<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_databases<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List names of all databases in this catalog. Read more
Source§fn create_database<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
ignore_if_exists: bool,
properties: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_database<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
ignore_if_exists: bool,
properties: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create a database. Read more
Source§fn get_database<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Database>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_database<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Database>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a database by name. Read more
Source§fn drop_database<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
ignore_if_not_exists: bool,
cascade: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn drop_database<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
ignore_if_not_exists: bool,
cascade: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Drop a database. Read more
Source§fn get_table<'life0, 'life1, 'async_trait>(
&'life0 self,
identifier: &'life1 Identifier,
) -> Pin<Box<dyn Future<Output = Result<Table>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_table<'life0, 'life1, 'async_trait>(
&'life0 self,
identifier: &'life1 Identifier,
) -> Pin<Box<dyn Future<Output = Result<Table>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get table metadata for the given identifier. Read more
Source§fn list_tables<'life0, 'life1, 'async_trait>(
&'life0 self,
database_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_tables<'life0, 'life1, 'async_trait>(
&'life0 self,
database_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List table names in a database. System tables are not listed. Read more
Source§fn create_table<'life0, 'life1, 'async_trait>(
&'life0 self,
identifier: &'life1 Identifier,
creation: Schema,
ignore_if_exists: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_table<'life0, 'life1, 'async_trait>(
&'life0 self,
identifier: &'life1 Identifier,
creation: Schema,
ignore_if_exists: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create a table. Read more
Source§fn drop_table<'life0, 'life1, 'async_trait>(
&'life0 self,
identifier: &'life1 Identifier,
ignore_if_not_exists: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn drop_table<'life0, 'life1, 'async_trait>(
&'life0 self,
identifier: &'life1 Identifier,
ignore_if_not_exists: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Drop a table. System tables cannot be dropped. Read more
Source§fn rename_table<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 Identifier,
to: &'life2 Identifier,
ignore_if_not_exists: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn rename_table<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 Identifier,
to: &'life2 Identifier,
ignore_if_not_exists: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Rename a table. Read more
Source§fn alter_table<'life0, 'life1, 'async_trait>(
&'life0 self,
identifier: &'life1 Identifier,
_changes: Vec<SchemaChange>,
ignore_if_not_exists: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn alter_table<'life0, 'life1, 'async_trait>(
&'life0 self,
identifier: &'life1 Identifier,
_changes: Vec<SchemaChange>,
ignore_if_not_exists: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Apply schema changes to a table. Read more
Source§impl Clone for FileSystemCatalog
impl Clone for FileSystemCatalog
Source§fn clone(&self) -> FileSystemCatalog
fn clone(&self) -> FileSystemCatalog
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FileSystemCatalog
impl !RefUnwindSafe for FileSystemCatalog
impl Send for FileSystemCatalog
impl Sync for FileSystemCatalog
impl Unpin for FileSystemCatalog
impl UnsafeUnpin for FileSystemCatalog
impl !UnwindSafe for FileSystemCatalog
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
Mutably borrows from an owned value. Read more