public class NessieCatalog extends BaseMetastoreCatalog implements java.lang.AutoCloseable, SupportsNamespaces, org.apache.hadoop.conf.Configurable
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)
creating namespaces in nessie is implicit, therefore this is a no-op.
|
java.lang.String |
currentHash() |
protected java.lang.String |
defaultWarehouseLocation(TableIdentifier table) |
boolean |
dropNamespace(Namespace namespace)
Namespaces in Nessie are implicit and deleting them results in a no-op.
|
boolean |
dropTable(TableIdentifier identifier,
boolean purge)
Drop a table; optionally delete data and metadata files.
|
void |
dropTableInner(TableIdentifier identifier) |
org.apache.hadoop.conf.Configuration |
getConf() |
void |
initialize(java.lang.String inputName,
java.util.Map<java.lang.String,java.lang.String> options)
Initialize a catalog given a custom name and a map of catalog properties.
|
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)
namespace metadata is not supported in Nessie and we return an empty map.
|
java.lang.String |
name()
Return the name for this catalog.
|
protected TableOperations |
newTableOps(TableIdentifier tableIdentifier) |
void |
refresh() |
boolean |
removeProperties(Namespace namespace,
java.util.Set<java.lang.String> properties)
Remove a set of metadata from a namespace in the catalog.
|
void |
renameTable(TableIdentifier from,
TableIdentifier toOriginal)
Rename a table.
|
void |
setConf(org.apache.hadoop.conf.Configuration conf) |
boolean |
setProperties(Namespace namespace,
java.util.Map<java.lang.String,java.lang.String> properties)
Apply a set of metadata to a namespace in the catalog.
|
buildTable, createTable, fullTableName, isValidIdentifier, loadTable, newCreateTableTransaction, newReplaceTableTransaction, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcreateNamespace, listNamespaces, namespaceExistscreateTable, createTable, createTable, dropTable, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, tableExistspublic void initialize(java.lang.String inputName,
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 CataloginputName - a custom name for the catalogoptions - catalog propertiespublic void close()
close in interface java.lang.AutoCloseablepublic 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 toOriginal)
CatalogrenameTable in interface Catalogfrom - identifier of the table to renametoOriginal - new table namepublic void createNamespace(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> metadata)
createNamespace 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
SupportsNamespaces
For 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 exist (optional)public boolean dropNamespace(Namespace namespace) throws NamespaceNotEmptyException
dropNamespace in interface SupportsNamespacesnamespace - a namespace. NamespaceNamespaceNotEmptyException - If the namespace does not emptypublic boolean setProperties(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties) throws NoSuchNamespaceException
SupportsNamespacessetProperties in interface SupportsNamespacesnamespace - a namespace. Namespaceproperties - a collection of metadata to apply to the namespaceNoSuchNamespaceException - If the namespace does not exist (optional)public boolean removeProperties(Namespace namespace, java.util.Set<java.lang.String> properties) throws NoSuchNamespaceException
SupportsNamespacesremoveProperties in interface SupportsNamespacesnamespace - a namespace. Namespaceproperties - a collection of metadata to apply to the namespaceNoSuchNamespaceException - If the namespace does not exist (optional)public void setConf(org.apache.hadoop.conf.Configuration conf)
setConf in interface org.apache.hadoop.conf.Configurablepublic org.apache.hadoop.conf.Configuration getConf()
getConf in interface org.apache.hadoop.conf.Configurablepublic void refresh()
throws com.dremio.nessie.error.NessieNotFoundException
com.dremio.nessie.error.NessieNotFoundExceptionpublic java.lang.String currentHash()
public void dropTableInner(TableIdentifier identifier) throws com.dremio.nessie.error.NessieConflictException, com.dremio.nessie.error.NessieNotFoundException
com.dremio.nessie.error.NessieConflictExceptioncom.dremio.nessie.error.NessieNotFoundException