Package org.apache.iceberg.dell.ecs
Class EcsCatalog
java.lang.Object
org.apache.iceberg.BaseMetastoreCatalog
org.apache.iceberg.dell.ecs.EcsCatalog
- All Implemented Interfaces:
- Closeable,- AutoCloseable,- Catalog,- SupportsNamespaces,- Configurable<Object>
public class EcsCatalog
extends BaseMetastoreCatalog
implements SupportsNamespaces, Configurable<Object>
- 
Nested Class SummaryNested classes/interfaces inherited from class org.apache.iceberg.BaseMetastoreCatalogBaseMetastoreCatalog.BaseMetastoreCatalogTableBuilderNested classes/interfaces inherited from interface org.apache.iceberg.catalog.CatalogCatalog.TableBuilder
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidclose()voidcreateNamespace(Namespace namespace, Map<String, String> properties) Create a namespace in the catalog.protected StringdefaultWarehouseLocation(TableIdentifier tableIdentifier) booleandropNamespace(Namespace namespace) Drop a namespace.booleandropTable(TableIdentifier identifier, boolean purge) Remove table object.voidinitialize(String name, Map<String, String> properties) Initialize a catalog given a custom name and a map of catalog properties.listNamespaces(Namespace namespace) List child namespaces from the namespace.listTables(Namespace namespace) Iterate all table objects with the namespace prefix.loadNamespaceMetadata(Namespace namespace) Load namespace properties.name()Return the name for this catalog.booleannamespaceExists(Namespace namespace) Checks whether the Namespace exists.protected TableOperationsnewTableOps(TableIdentifier tableIdentifier) Optional<com.emc.object.s3.S3ObjectMetadata> objectMetadata(org.apache.iceberg.dell.ecs.EcsURI uri) Get S3 object metadata which include E-Tag, user metadata and so on.booleanremoveProperties(Namespace namespace, Set<String> properties) Remove a set of property keys from a namespace in the catalog.voidrenameTable(TableIdentifier from, TableIdentifier to) Table rename will only move table object, the data objects will still be in-place.voidbooleansetProperties(Namespace namespace, Map<String, String> properties) Set a collection of properties on a namespace in the catalog.booleantableExists(TableIdentifier identifier) Check whether table exists.booleanMethods inherited from class org.apache.iceberg.BaseMetastoreCatalogbuildTable, fullTableName, isValidIdentifier, isValidMetadataIdentifier, loadTable, metricsReporter, registerTable, toStringMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.iceberg.catalog.CatalogcreateTable, createTable, createTable, createTable, dropTable, invalidateTable, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransactionMethods inherited from interface org.apache.iceberg.catalog.SupportsNamespacescreateNamespace, listNamespaces
- 
Constructor Details- 
EcsCatalogpublic EcsCatalog()No-arg constructor to load the catalog dynamically.All fields are initialized by calling initialize(String, Map)later.
 
- 
- 
Method Details- 
initializeDescription copied from interface:CatalogInitialize a catalog given a custom name and a map of catalog properties.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. - Specified by:
- initializein interface- Catalog
- Parameters:
- name- a custom name for the catalog
- properties- catalog properties
 
- 
newTableOps- Specified by:
- newTableOpsin class- BaseMetastoreCatalog
 
- 
defaultWarehouseLocation- Specified by:
- defaultWarehouseLocationin class- BaseMetastoreCatalog
 
- 
listTablesIterate all table objects with the namespace prefix.- Specified by:
- listTablesin interface- Catalog
- Parameters:
- namespace- a namespace
- Returns:
- a list of identifiers for tables
 
- 
dropTableRemove table object. If the purge flag is set, remove all data objects.
- 
renameTableTable rename will only move table object, the data objects will still be in-place.- Specified by:
- renameTablein interface- Catalog
- Parameters:
- from- identifier of the table to rename
- to- new table name
 
- 
createNamespaceDescription copied from interface:SupportsNamespacesCreate a namespace in the catalog.- Specified by:
- createNamespacein interface- SupportsNamespaces
- Parameters:
- namespace- a multi-part namespace
- properties- a string Map of properties for the given namespace
 
- 
listNamespacesDescription 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 interface- SupportsNamespaces
- Returns:
- a List of child Namespacenames from the given namespace
- Throws:
- NoSuchNamespaceException- If the namespace does not exist (optional)
 
- Given: 
- 
loadNamespaceMetadatapublic Map<String,String> loadNamespaceMetadata(Namespace namespace) throws NoSuchNamespaceException Load namespace properties.- Specified by:
- loadNamespaceMetadatain interface- SupportsNamespaces
- Parameters:
- namespace- a namespace.- Namespace
- Returns:
- a string map of properties for the given namespace
- Throws:
- NoSuchNamespaceException- If the namespace does not exist (optional)
 
- 
dropNamespaceDescription copied from interface:SupportsNamespacesDrop a namespace. If the namespace exists and was dropped, this will return true.- Specified by:
- dropNamespacein interface- SupportsNamespaces
- Parameters:
- namespace- a namespace.- Namespace
- Returns:
- true if the namespace was dropped, false otherwise.
- Throws:
- NamespaceNotEmptyException- If the namespace is not empty
 
- 
setPropertiespublic 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 interface- SupportsNamespaces
- Parameters:
- namespace- a namespace.- Namespace
- properties- a collection of metadata to apply to the namespace
- Throws:
- NoSuchNamespaceException- If the namespace does not exist (optional)
 
- 
removePropertiespublic 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 interface- SupportsNamespaces
- Parameters:
- namespace- a namespace.- Namespace
- properties- a collection of metadata to apply to the namespace
- Throws:
- NoSuchNamespaceException- If the namespace does not exist (optional)
 
- 
updatePropertiespublic boolean updateProperties(Namespace namespace, Consumer<Map<String, String>> propertiesFn) throws NoSuchNamespaceException- Throws:
- NoSuchNamespaceException
 
- 
namespaceExistsDescription copied from interface:SupportsNamespacesChecks whether the Namespace exists.- Specified by:
- namespaceExistsin interface- SupportsNamespaces
- Parameters:
- namespace- a namespace.- Namespace
- Returns:
- true if the Namespace exists, false otherwise
 
- 
tableExistsDescription copied from interface:CatalogCheck whether table exists.- Specified by:
- tableExistsin interface- Catalog
- Parameters:
- identifier- a table identifier
- Returns:
- true if the table exists, false otherwise
 
- 
objectMetadatapublic Optional<com.emc.object.s3.S3ObjectMetadata> objectMetadata(org.apache.iceberg.dell.ecs.EcsURI uri) Get S3 object metadata which include E-Tag, user metadata and so on.
- 
nameDescription copied from interface:CatalogReturn the name for this catalog.
- 
close- Specified by:
- closein interface- AutoCloseable
- Specified by:
- closein interface- Closeable
- Overrides:
- closein class- BaseMetastoreCatalog
- Throws:
- IOException
 
- 
setConf- Specified by:
- setConfin interface- Configurable<Object>
 
- 
properties- Overrides:
- propertiesin class- BaseMetastoreCatalog
 
 
-