Class InMemoryCatalog
- All Implemented Interfaces:
Closeable,AutoCloseable,Catalog,SupportsNamespaces,ViewCatalog
InMemoryFileIO.-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.iceberg.view.BaseMetastoreViewCatalog
BaseMetastoreViewCatalog.BaseMetastoreViewCatalogTableBuilder, BaseMetastoreViewCatalog.BaseViewBuilderNested classes/interfaces inherited from class org.apache.iceberg.BaseMetastoreCatalog
BaseMetastoreCatalog.BaseMetastoreCatalogTableBuilderNested classes/interfaces inherited from interface org.apache.iceberg.catalog.Catalog
Catalog.TableBuilder -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidcreateNamespace(Namespace namespace) Create a namespace in the catalog.voidcreateNamespace(Namespace namespace, Map<String, String> metadata) Create a namespace in the catalog.protected StringdefaultWarehouseLocation(TableIdentifier tableIdentifier) booleandropNamespace(Namespace namespace) Drop a namespace.booleandropTable(TableIdentifier tableIdentifier, boolean purge) Drop a table; optionally delete data and metadata files.booleandropView(TableIdentifier identifier) Drop a view.voidinitialize(String name, Map<String, String> properties) Initialize a view catalog given a custom name and a map of catalog properties.List top-level namespaces from the catalog.listNamespaces(Namespace namespace) List child namespaces from the namespace.listTables(Namespace namespace) Return all the identifiers under this namespace.Return all the identifiers under this namespace.loadNamespaceMetadata(Namespace namespace) Load metadata properties for a namespace.name()Return the name for this catalog.booleannamespaceExists(Namespace namespace) Checks whether the Namespace exists.protected TableOperationsnewTableOps(TableIdentifier tableIdentifier) protected ViewOperationsnewViewOps(TableIdentifier identifier) booleanremoveProperties(Namespace namespace, Set<String> properties) Remove a set of property keys from a namespace in the catalog.voidrenameTable(TableIdentifier from, TableIdentifier to) Rename a table.voidrenameView(TableIdentifier from, TableIdentifier to) Rename a view.booleansetProperties(Namespace namespace, Map<String, String> properties) Set a collection of properties on a namespace in the catalog.Methods inherited from class org.apache.iceberg.view.BaseMetastoreViewCatalog
buildTable, buildView, loadViewMethods inherited from class org.apache.iceberg.BaseMetastoreCatalog
fullTableName, isValidIdentifier, isValidMetadataIdentifier, loadTable, metricsReporter, registerTable, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.iceberg.catalog.Catalog
createTable, createTable, createTable, createTable, dropTable, invalidateTable, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, tableExistsMethods inherited from interface org.apache.iceberg.catalog.ViewCatalog
invalidateView, viewExists
-
Constructor Details
-
InMemoryCatalog
public InMemoryCatalog()
-
-
Method Details
-
name
Description copied from interface:ViewCatalogReturn the name for this catalog.- Specified by:
namein interfaceCatalog- Specified by:
namein interfaceViewCatalog- Overrides:
namein classBaseMetastoreViewCatalog- Returns:
- this catalog's name
-
initialize
Description copied from interface:ViewCatalogInitialize a view catalog given a custom name and a map of catalog properties.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.
- Specified by:
initializein interfaceCatalog- Specified by:
initializein interfaceViewCatalog- Overrides:
initializein classBaseMetastoreViewCatalog- Parameters:
name- a custom name for the catalogproperties- catalog properties
-
newTableOps
- Specified by:
newTableOpsin classBaseMetastoreCatalog
-
defaultWarehouseLocation
- Specified by:
defaultWarehouseLocationin classBaseMetastoreCatalog
-
dropTable
Description copied from interface:CatalogDrop a table; optionally delete data and metadata files.If purge is set to true the implementation should delete all data and metadata files.
-
listTables
Description copied from interface:CatalogReturn all the identifiers under this namespace.- Specified by:
listTablesin interfaceCatalog- Parameters:
namespace- a namespace- Returns:
- a list of identifiers for tables
-
renameTable
Description copied from interface:CatalogRename a table.- Specified by:
renameTablein interfaceCatalog- Parameters:
from- identifier of the table to renameto- new table name
-
createNamespace
Description copied from interface:SupportsNamespacesCreate a namespace in the catalog.- Specified by:
createNamespacein interfaceSupportsNamespaces- Parameters:
namespace- a namespace.Namespace.
-
createNamespace
Description copied from interface:SupportsNamespacesCreate a namespace in the catalog.- Specified by:
createNamespacein interfaceSupportsNamespaces- Parameters:
namespace- a multi-part namespacemetadata- a string Map of properties for the given namespace
-
namespaceExists
Description copied from interface:SupportsNamespacesChecks whether the Namespace exists.- Specified by:
namespaceExistsin interfaceSupportsNamespaces- Parameters:
namespace- a namespace.Namespace- Returns:
- true if the Namespace exists, false otherwise
-
dropNamespace
Description copied from interface:SupportsNamespacesDrop a namespace. If the namespace exists and was dropped, this will return true.- Specified by:
dropNamespacein interfaceSupportsNamespaces- Parameters:
namespace- a namespace.Namespace- Returns:
- true if the namespace was dropped, false otherwise.
- Throws:
NamespaceNotEmptyException- If the namespace is not empty
-
setProperties
public boolean setProperties(Namespace namespace, Map<String, String> properties) throws NoSuchNamespaceExceptionDescription copied from interface:SupportsNamespacesSet a collection of properties on a namespace in the catalog.Properties that are not in the given map are not modified or removed by this method.
- Specified by:
setPropertiesin interfaceSupportsNamespaces- Parameters:
namespace- a namespace.Namespaceproperties- a collection of metadata to apply to the namespace- Throws:
NoSuchNamespaceException- If the namespace does not exist (optional)
-
removeProperties
public boolean removeProperties(Namespace namespace, Set<String> properties) throws NoSuchNamespaceException Description copied from interface:SupportsNamespacesRemove a set of property keys from a namespace in the catalog.Properties that are not in the given set are not modified or removed by this method.
- Specified by:
removePropertiesin interfaceSupportsNamespaces- Parameters:
namespace- a namespace.Namespaceproperties- a collection of metadata to apply to the namespace- Throws:
NoSuchNamespaceException- If the namespace does not exist (optional)
-
loadNamespaceMetadata
public Map<String,String> loadNamespaceMetadata(Namespace namespace) throws NoSuchNamespaceException Description copied from interface:SupportsNamespacesLoad metadata properties for a namespace.- Specified by:
loadNamespaceMetadatain interfaceSupportsNamespaces- Parameters:
namespace- a namespace.Namespace- Returns:
- a string map of properties for the given namespace
- Throws:
NoSuchNamespaceException- If the namespace does not exist (optional)
-
listNamespaces
Description copied from interface:SupportsNamespacesList top-level namespaces from the catalog.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.
- Specified by:
listNamespacesin interfaceSupportsNamespaces- Returns:
- a List of namespace
Namespacenames
-
listNamespaces
Description copied from interface:SupportsNamespacesList child namespaces from the namespace.For two existing tables named 'a.b.c.table' and 'a.b.d.table', this method returns:
- Given:
Namespace.empty() - Returns:
Namespace.of("a")
- Given:
Namespace.of("a") - Returns:
Namespace.of("a", "b")
- Given:
Namespace.of("a", "b") - Returns:
Namespace.of("a", "b", "c")andNamespace.of("a", "b", "d")
- Given:
Namespace.of("a", "b", "c") - Returns: empty list, because there are no child namespaces
- Specified by:
listNamespacesin interfaceSupportsNamespaces- Returns:
- a List of child
Namespacenames from the given namespace - Throws:
NoSuchNamespaceException- If the namespace does not exist (optional)
- Given:
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classBaseMetastoreCatalog- Throws:
IOException
-
listViews
Description copied from interface:ViewCatalogReturn all the identifiers under this namespace.- Specified by:
listViewsin interfaceViewCatalog- Parameters:
namespace- a namespace- Returns:
- a list of identifiers for views
-
newViewOps
- Specified by:
newViewOpsin classBaseMetastoreViewCatalog
-
dropView
Description copied from interface:ViewCatalogDrop a view.- Specified by:
dropViewin interfaceViewCatalog- Parameters:
identifier- a view identifier- Returns:
- true if the view was dropped, false if the view did not exist
-
renameView
Description copied from interface:ViewCatalogRename a view.- Specified by:
renameViewin interfaceViewCatalog- Parameters:
from- identifier of the view to renameto- new view identifier
-
properties
- Overrides:
propertiesin classBaseMetastoreCatalog
-