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.BaseMetastoreCatalogTableBuilder
Catalog.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 therefore cannot be dropped
|
boolean |
dropTable(TableIdentifier identifier,
boolean purge)
Drop a table; optionally delete data and metadata files.
|
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, thus 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 property keys 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)
Set a collection of properties on a namespace in the catalog.
|
buildTable, fullTableName, isValidIdentifier, loadTable, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
createNamespace, listNamespaces, namespaceExists
createTable, createTable, createTable, createTable, dropTable, invalidateTable, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, registerTable, tableExists
public void initialize(java.lang.String inputName, java.util.Map<java.lang.String,java.lang.String> options)
Catalog
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.
initialize
in interface Catalog
inputName
- a custom name for the catalogoptions
- catalog propertiespublic void close()
close
in interface java.lang.AutoCloseable
public java.lang.String name()
Catalog
protected TableOperations newTableOps(TableIdentifier tableIdentifier)
newTableOps
in class BaseMetastoreCatalog
protected java.lang.String defaultWarehouseLocation(TableIdentifier table)
defaultWarehouseLocation
in class BaseMetastoreCatalog
public java.util.List<TableIdentifier> listTables(Namespace namespace)
Catalog
listTables
in interface Catalog
namespace
- a namespacepublic boolean dropTable(TableIdentifier identifier, boolean purge)
Catalog
If purge is set to true the implementation should delete all data and metadata files.
public void renameTable(TableIdentifier from, TableIdentifier toOriginal)
Catalog
renameTable
in interface Catalog
from
- 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 SupportsNamespaces
namespace
- 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 SupportsNamespaces
Namespace
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 SupportsNamespaces
namespace
- a namespace. Namespace
NoSuchNamespaceException
- If the namespace does not exist (optional)public boolean dropNamespace(Namespace namespace)
dropNamespace
in interface SupportsNamespaces
namespace
- The Namespace
to drop.java.lang.UnsupportedOperationException
- Namespaces in Nessie are implicit and thus cannot be dropped.public boolean setProperties(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties)
SupportsNamespaces
Properties that are not in the given map are not modified or removed by this method.
setProperties
in interface SupportsNamespaces
namespace
- a namespace. Namespace
properties
- a collection of metadata to apply to the namespacepublic boolean removeProperties(Namespace namespace, java.util.Set<java.lang.String> properties)
SupportsNamespaces
Properties that are not in the given set are not modified or removed by this method.
removeProperties
in interface SupportsNamespaces
namespace
- a namespace. Namespace
properties
- a collection of metadata to apply to the namespacepublic void setConf(org.apache.hadoop.conf.Configuration conf)
setConf
in interface org.apache.hadoop.conf.Configurable
public org.apache.hadoop.conf.Configuration getConf()
getConf
in interface org.apache.hadoop.conf.Configurable
public void refresh() throws org.projectnessie.error.NessieNotFoundException
org.projectnessie.error.NessieNotFoundException
public java.lang.String currentHash()