public class InMemoryCatalog extends BaseMetastoreViewCatalog implements SupportsNamespaces, java.io.Closeable
InMemoryFileIO
.BaseMetastoreViewCatalog.BaseMetastoreViewCatalogTableBuilder, BaseMetastoreViewCatalog.BaseViewBuilder
BaseMetastoreCatalog.BaseMetastoreCatalogTableBuilder
Catalog.TableBuilder
Constructor and Description |
---|
InMemoryCatalog() |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
createNamespace(Namespace namespace)
Create a namespace in the catalog.
|
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 tableIdentifier) |
boolean |
dropNamespace(Namespace namespace)
Drop a namespace.
|
boolean |
dropTable(TableIdentifier tableIdentifier,
boolean purge)
Drop a table; optionally delete data and metadata files.
|
boolean |
dropView(TableIdentifier identifier)
Drop a view.
|
void |
initialize(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> properties)
Initialize a view catalog given a custom name and a map of catalog properties.
|
java.util.List<Namespace> |
listNamespaces()
List top-level namespaces from the catalog.
|
java.util.List<Namespace> |
listNamespaces(Namespace namespace)
List child namespaces from the namespace.
|
java.util.List<TableIdentifier> |
listTables(Namespace namespace)
Return all the identifiers under this namespace.
|
java.util.List<TableIdentifier> |
listViews(Namespace namespace)
Return all the identifiers under this namespace.
|
java.util.Map<java.lang.String,java.lang.String> |
loadNamespaceMetadata(Namespace namespace)
Load metadata properties for a namespace.
|
java.lang.String |
name()
Return the name for this catalog.
|
boolean |
namespaceExists(Namespace namespace)
Checks whether the Namespace exists.
|
protected TableOperations |
newTableOps(TableIdentifier tableIdentifier) |
protected org.apache.iceberg.inmemory.InMemoryCatalog.InMemoryViewOperations |
newViewOps(TableIdentifier identifier) |
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 |
renameView(TableIdentifier from,
TableIdentifier to)
Rename a view.
|
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, buildView, loadView
fullTableName, isValidIdentifier, loadTable, metricsReporter, properties, registerTable, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
invalidateView, viewExists
createTable, createTable, createTable, createTable, dropTable, invalidateTable, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, tableExists
public java.lang.String name()
ViewCatalog
name
in interface Catalog
name
in interface ViewCatalog
name
in class BaseMetastoreViewCatalog
public void initialize(java.lang.String name, java.util.Map<java.lang.String,java.lang.String> properties)
ViewCatalog
A custom view 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
initialize
in interface ViewCatalog
initialize
in class BaseMetastoreViewCatalog
name
- a custom name for the catalogproperties
- catalog propertiesprotected TableOperations newTableOps(TableIdentifier tableIdentifier)
newTableOps
in class BaseMetastoreCatalog
protected java.lang.String defaultWarehouseLocation(TableIdentifier tableIdentifier)
defaultWarehouseLocation
in class BaseMetastoreCatalog
public boolean dropTable(TableIdentifier tableIdentifier, boolean purge)
Catalog
If purge is set to true the implementation should delete all data and metadata files.
public java.util.List<TableIdentifier> listTables(Namespace namespace)
Catalog
listTables
in interface Catalog
namespace
- a namespacepublic void renameTable(TableIdentifier from, TableIdentifier to)
Catalog
renameTable
in interface Catalog
from
- identifier of the table to renameto
- new table namepublic void createNamespace(Namespace namespace)
SupportsNamespaces
createNamespace
in interface SupportsNamespaces
namespace
- a namespace. Namespace
.public void createNamespace(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> metadata)
SupportsNamespaces
createNamespace
in interface SupportsNamespaces
namespace
- a multi-part namespacemetadata
- a string Map of properties for the given namespacepublic boolean namespaceExists(Namespace namespace)
SupportsNamespaces
namespaceExists
in interface SupportsNamespaces
namespace
- a namespace. Namespace
public boolean dropNamespace(Namespace namespace) throws NamespaceNotEmptyException
SupportsNamespaces
dropNamespace
in interface SupportsNamespaces
namespace
- a namespace. Namespace
NamespaceNotEmptyException
- If the namespace is not emptypublic boolean setProperties(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties) throws NoSuchNamespaceException
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 namespaceNoSuchNamespaceException
- If the namespace does not exist (optional)public boolean removeProperties(Namespace namespace, java.util.Set<java.lang.String> properties) throws NoSuchNamespaceException
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 namespaceNoSuchNamespaceException
- If the namespace does not exist (optional)public java.util.Map<java.lang.String,java.lang.String> loadNamespaceMetadata(Namespace namespace) throws NoSuchNamespaceException
SupportsNamespaces
loadNamespaceMetadata
in interface SupportsNamespaces
namespace
- a namespace. Namespace
NoSuchNamespaceException
- If the namespace does not exist (optional)public java.util.List<Namespace> listNamespaces()
SupportsNamespaces
If an object such as a table, view, or function exists, its parent namespaces must also exist and must be returned by this discovery method. For example, if table a.b.t exists, this method must return ["a"] in the result array.
listNamespaces
in interface SupportsNamespaces
Namespace
namespublic java.util.List<Namespace> listNamespaces(Namespace namespace) throws NoSuchNamespaceException
SupportsNamespaces
For two existing tables named 'a.b.c.table' and 'a.b.d.table', this method returns:
Namespace.empty()
Namespace.of("a")
Namespace.of("a")
Namespace.of("a", "b")
Namespace.of("a", "b")
Namespace.of("a", "b", "c")
and Namespace.of("a", "b", "d")
Namespace.of("a", "b", "c")
listNamespaces
in interface SupportsNamespaces
Namespace
names from the given namespaceNoSuchNamespaceException
- If the namespace does not exist (optional)public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class BaseMetastoreCatalog
java.io.IOException
public java.util.List<TableIdentifier> listViews(Namespace namespace)
ViewCatalog
listViews
in interface ViewCatalog
namespace
- a namespaceprotected org.apache.iceberg.inmemory.InMemoryCatalog.InMemoryViewOperations newViewOps(TableIdentifier identifier)
newViewOps
in class BaseMetastoreViewCatalog
public boolean dropView(TableIdentifier identifier)
ViewCatalog
dropView
in interface ViewCatalog
identifier
- a view identifierpublic void renameView(TableIdentifier from, TableIdentifier to)
ViewCatalog
renameView
in interface ViewCatalog
from
- identifier of the view to renameto
- new view identifier