Package org.apache.iceberg.catalog
Interface Catalog
- All Known Implementing Classes:
- BaseMetastoreCatalog,- BaseMetastoreViewCatalog,- BaseSessionCatalog.AsCatalog,- BigQueryMetastoreCatalog,- CachingCatalog,- DynamoDbCatalog,- EcsCatalog,- GlueCatalog,- HadoopCatalog,- HiveCatalog,- InMemoryCatalog,- JdbcCatalog,- NessieCatalog,- RESTCatalog,- SnowflakeCatalog
public interface Catalog
A Catalog API for table create, drop, and load operations.
- 
Nested Class SummaryNested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA builder used to create validtablesor start create/replacetransactions.
- 
Method SummaryModifier and TypeMethodDescriptiondefault Catalog.TableBuilderbuildTable(TableIdentifier identifier, Schema schema) Instantiate a builder to either create a table or start a create/replace transaction.default TablecreateTable(TableIdentifier identifier, Schema schema) Create an unpartitioned table.default TablecreateTable(TableIdentifier identifier, Schema schema, PartitionSpec spec) Create a table.default TablecreateTable(TableIdentifier identifier, Schema schema, PartitionSpec spec, String location, Map<String, String> properties) Create a table.default TablecreateTable(TableIdentifier identifier, Schema schema, PartitionSpec spec, Map<String, String> properties) Create a table.default booleandropTable(TableIdentifier identifier) Drop a table and delete all data and metadata files.booleandropTable(TableIdentifier identifier, boolean purge) Drop a table; optionally delete data and metadata files.default voidinitialize(String name, Map<String, String> properties) Initialize a catalog given a custom name and a map of catalog properties.default voidinvalidateTable(TableIdentifier identifier) Invalidate cached table metadata from current catalog.listTables(Namespace namespace) Return all the identifiers under this namespace.loadTable(TableIdentifier identifier) Load a table.default Stringname()Return the name for this catalog.default TransactionnewCreateTableTransaction(TableIdentifier identifier, Schema schema) Start a transaction to create a table.default TransactionnewCreateTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec) Start a transaction to create a table.default TransactionnewCreateTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec, String location, Map<String, String> properties) Start a transaction to create a table.default TransactionnewCreateTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec, Map<String, String> properties) Start a transaction to create a table.default TransactionnewReplaceTableTransaction(TableIdentifier identifier, Schema schema, boolean orCreate) Start a transaction to replace a table.default TransactionnewReplaceTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec, boolean orCreate) Start a transaction to replace a table.default TransactionnewReplaceTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec, String location, Map<String, String> properties, boolean orCreate) Start a transaction to replace a table.default TransactionnewReplaceTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec, Map<String, String> properties, boolean orCreate) Start a transaction to replace a table.default TableregisterTable(TableIdentifier identifier, String metadataFileLocation) Register a table with the catalog if it does not exist.voidrenameTable(TableIdentifier from, TableIdentifier to) Rename a table.default booleantableExists(TableIdentifier identifier) Check whether table exists.
- 
Method Details- 
nameReturn the name for this catalog.- Returns:
- this catalog's name
 
- 
listTablesReturn all the identifiers under this namespace.- Parameters:
- namespace- a namespace
- Returns:
- a list of identifiers for tables
- Throws:
- NoSuchNamespaceException- if the namespace is not found
 
- 
createTabledefault Table createTable(TableIdentifier identifier, Schema schema, PartitionSpec spec, String location, Map<String, String> properties) Create a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- spec- a partition spec
- location- a location for the table; leave null if unspecified
- properties- a string map of table properties
- Returns:
- a Table instance
- Throws:
- AlreadyExistsException- if the table already exists
 
- 
createTabledefault Table createTable(TableIdentifier identifier, Schema schema, PartitionSpec spec, Map<String, String> properties) Create a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- spec- a partition spec
- properties- a string map of table properties
- Returns:
- a Table instance
- Throws:
- AlreadyExistsException- if the table already exists
 
- 
createTableCreate a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- spec- a partition spec
- Returns:
- a Table instance
- Throws:
- AlreadyExistsException- if the table already exists
 
- 
createTableCreate an unpartitioned table.- Parameters:
- identifier- a table identifier
- schema- a schema
- Returns:
- a Table instance
- Throws:
- AlreadyExistsException- if the table already exists
 
- 
newCreateTableTransactiondefault Transaction newCreateTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec, String location, Map<String, String> properties) Start a transaction to create a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- spec- a partition spec
- location- a location for the table; leave null if unspecified
- properties- a string map of table properties
- Returns:
- a Transactionto create the table
- Throws:
- AlreadyExistsException- if the table already exists
 
- 
newCreateTableTransactiondefault Transaction newCreateTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec, Map<String, String> properties) Start a transaction to create a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- spec- a partition spec
- properties- a string map of table properties
- Returns:
- a Transactionto create the table
- Throws:
- AlreadyExistsException- if the table already exists
 
- 
newCreateTableTransactiondefault Transaction newCreateTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec) Start a transaction to create a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- spec- a partition spec
- Returns:
- a Transactionto create the table
- Throws:
- AlreadyExistsException- if the table already exists
 
- 
newCreateTableTransactionStart a transaction to create a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- Returns:
- a Transactionto create the table
- Throws:
- AlreadyExistsException- if the table already exists
 
- 
newReplaceTableTransactiondefault Transaction newReplaceTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec, String location, Map<String, String> properties, boolean orCreate) Start a transaction to replace a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- spec- a partition spec
- location- a location for the table; leave null if unspecified
- properties- a string map of table properties
- orCreate- whether to create the table if not exists
- Returns:
- a Transactionto replace the table
- Throws:
- NoSuchTableException- if the table doesn't exist and orCreate is false
 
- 
newReplaceTableTransactiondefault Transaction newReplaceTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec, Map<String, String> properties, boolean orCreate) Start a transaction to replace a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- spec- a partition spec
- properties- a string map of table properties
- orCreate- whether to create the table if not exists
- Returns:
- a Transactionto replace the table
- Throws:
- NoSuchTableException- if the table doesn't exist and orCreate is false
 
- 
newReplaceTableTransactiondefault Transaction newReplaceTableTransaction(TableIdentifier identifier, Schema schema, PartitionSpec spec, boolean orCreate) Start a transaction to replace a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- spec- a partition spec
- orCreate- whether to create the table if not exists
- Returns:
- a Transactionto replace the table
- Throws:
- NoSuchTableException- if the table doesn't exist and orCreate is false
 
- 
newReplaceTableTransactiondefault Transaction newReplaceTableTransaction(TableIdentifier identifier, Schema schema, boolean orCreate) Start a transaction to replace a table.- Parameters:
- identifier- a table identifier
- schema- a schema
- orCreate- whether to create the table if not exists
- Returns:
- a Transactionto replace the table
- Throws:
- NoSuchTableException- if the table doesn't exist and orCreate is false
 
- 
tableExistsCheck whether table exists.- Parameters:
- identifier- a table identifier
- Returns:
- true if the table exists, false otherwise
 
- 
dropTableDrop a table and delete all data and metadata files.- Parameters:
- identifier- a table identifier
- Returns:
- true if the table was dropped, false if the table did not exist
 
- 
dropTableDrop a table; optionally delete data and metadata files.If purge is set to true the implementation should delete all data and metadata files. - Parameters:
- identifier- a table identifier
- purge- if true, delete all data and metadata files in the table
- Returns:
- true if the table was dropped, false if the table did not exist
 
- 
renameTableRename a table.- Parameters:
- from- identifier of the table to rename
- to- new table name
- Throws:
- NoSuchTableException- if the from table does not exist
- AlreadyExistsException- if the to table already exists
 
- 
loadTableLoad a table.- Parameters:
- identifier- a table identifier
- Returns:
- instance of Tableimplementation referred bytableIdentifier
- Throws:
- NoSuchTableException- if the table does not exist
 
- 
invalidateTableInvalidate cached table metadata from current catalog.If the table is already loaded or cached, drop cached data. If the table does not exist or is not cached, do nothing. - Parameters:
- identifier- a table identifier
 
- 
registerTableRegister a table with the catalog if it does not exist.- Parameters:
- identifier- a table identifier
- metadataFileLocation- the location of a metadata file
- Returns:
- a Table instance
- Throws:
- AlreadyExistsException- if the table already exists in the catalog.
 
- 
buildTableInstantiate a builder to either create a table or start a create/replace transaction.- Parameters:
- identifier- a table identifier
- schema- a schema
- Returns:
- the builder to create a table or start a create/replace transaction
 
- 
initializeInitialize a catalog given a custom name and a map of catalog properties.A custom Catalog implementation must have a no-arg constructor. A compute engine like Spark or Flink will first initialize the catalog without any arguments, and then call this method to complete catalog initialization with properties passed into the engine. - Parameters:
- name- a custom name for the catalog
- properties- catalog properties
 
 
-