public class NessieCatalog extends BaseMetastoreCatalog implements java.lang.AutoCloseable, SupportsNamespaces, Configurable<java.lang.Object>
A note on namespaces: Nessie namespaces are implicit and do not need to be explicitly created or deleted. The create and delete namespace methods are no-ops for the NessieCatalog. One can still list namespaces that have objects stored in them to assist with namespace-centric catalog exploration.
BaseMetastoreCatalog.BaseMetastoreCatalogTableBuilderCatalog.TableBuilder| Constructor and Description |
|---|
NessieCatalog() |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
void |
createNamespace(Namespace namespace,
java.util.Map<java.lang.String,java.lang.String> metadata)
Create a namespace in the catalog.
|
protected java.lang.String |
defaultWarehouseLocation(TableIdentifier table) |
boolean |
dropNamespace(Namespace namespace)
Drop a namespace.
|
boolean |
dropTable(TableIdentifier identifier,
boolean purge)
Drop a table; optionally delete data and metadata files.
|
void |
initialize(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> options)
Initialize a catalog given a custom name and a map of catalog properties.
|
void |
initialize(java.lang.String name,
NessieIcebergClient client,
FileIO fileIO,
java.util.Map<java.lang.String,java.lang.String> catalogOptions)
An alternative way to initialize the catalog using a pre-configured
NessieIcebergClient
and FileIO instance. |
java.util.List<Namespace> |
listNamespaces(Namespace namespace)
List namespaces from the namespace.
|
java.util.List<TableIdentifier> |
listTables(Namespace namespace)
Return all the identifiers under this namespace.
|
java.util.Map<java.lang.String,java.lang.String> |
loadNamespaceMetadata(Namespace namespace)
Load the given namespace and return its properties.
|
java.lang.String |
name()
Return the name for this catalog.
|
protected TableOperations |
newTableOps(TableIdentifier tableIdentifier) |
protected java.util.Map<java.lang.String,java.lang.String> |
properties() |
boolean |
removeProperties(Namespace namespace,
java.util.Set<java.lang.String> properties)
Remove a set of property keys from a namespace in the catalog.
|
void |
renameTable(TableIdentifier from,
TableIdentifier to)
Rename a table.
|
void |
setConf(java.lang.Object conf) |
boolean |
setProperties(Namespace namespace,
java.util.Map<java.lang.String,java.lang.String> properties)
Set a collection of properties on a namespace in the catalog.
|
buildTable, fullTableName, isValidIdentifier, loadTable, registerTable, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcreateNamespace, listNamespaces, namespaceExistscreateTable, createTable, createTable, createTable, dropTable, invalidateTable, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, tableExistspublic void initialize(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> options)
CatalogA 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.
initialize in interface Catalogname - a custom name for the catalogoptions - catalog propertiespublic void initialize(java.lang.String name,
NessieIcebergClient client,
FileIO fileIO,
java.util.Map<java.lang.String,java.lang.String> catalogOptions)
NessieIcebergClient
and FileIO instance.name - The name of the catalog, defaults to "nessie" if nullclient - The pre-configured NessieIcebergClient instance to usefileIO - The FileIO instance to usecatalogOptions - The catalog options to usepublic void close()
throws java.io.IOException
close in interface java.lang.AutoCloseablejava.io.IOExceptionpublic java.lang.String name()
Catalogprotected TableOperations newTableOps(TableIdentifier tableIdentifier)
newTableOps in class BaseMetastoreCatalogprotected java.lang.String defaultWarehouseLocation(TableIdentifier table)
defaultWarehouseLocation in class BaseMetastoreCatalogpublic java.util.List<TableIdentifier> listTables(Namespace namespace)
CataloglistTables in interface Catalognamespace - a namespacepublic boolean dropTable(TableIdentifier identifier, boolean purge)
CatalogIf purge is set to true the implementation should delete all data and metadata files.
public void renameTable(TableIdentifier from, TableIdentifier to)
CatalogrenameTable in interface Catalogfrom - identifier of the table to renameto - new table namepublic void createNamespace(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> metadata)
SupportsNamespacescreateNamespace in interface SupportsNamespacesnamespace - a multi-part namespacemetadata - a string Map of properties for the given namespacepublic java.util.List<Namespace> listNamespaces(Namespace namespace) throws NoSuchNamespaceException
SupportsNamespacesFor example, if table a.b.t exists, use 'SELECT NAMESPACE IN a' this method must return
Namepace.of("a","b") Namespace.
listNamespaces in interface SupportsNamespacesNamespace namesNoSuchNamespaceException - If the namespace does not exist (optional)public java.util.Map<java.lang.String,java.lang.String> loadNamespaceMetadata(Namespace namespace) throws NoSuchNamespaceException
loadNamespaceMetadata in interface SupportsNamespacesnamespace - a namespace. NamespaceNoSuchNamespaceException - If the namespace does not existpublic boolean dropNamespace(Namespace namespace) throws NamespaceNotEmptyException
SupportsNamespacesdropNamespace in interface SupportsNamespacesnamespace - a namespace. NamespaceNamespaceNotEmptyException - If the namespace is not emptypublic boolean setProperties(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties)
SupportsNamespacesProperties that are not in the given map are not modified or removed by this method.
setProperties in interface SupportsNamespacesnamespace - a namespace. Namespaceproperties - a collection of metadata to apply to the namespacepublic boolean removeProperties(Namespace namespace, java.util.Set<java.lang.String> properties)
SupportsNamespacesProperties that are not in the given set are not modified or removed by this method.
removeProperties in interface SupportsNamespacesnamespace - a namespace. Namespaceproperties - a collection of metadata to apply to the namespacepublic void setConf(java.lang.Object conf)
setConf in interface Configurable<java.lang.Object>protected java.util.Map<java.lang.String,java.lang.String> properties()
properties in class BaseMetastoreCatalog