Class EcsCatalog

    • Constructor Detail

      • EcsCatalog

        public EcsCatalog()
        No-arg constructor to load the catalog dynamically.

        All fields are initialized by calling initialize(String, Map) later.

    • Method Detail

      • initialize

        public void initialize​(java.lang.String name,
                               java.util.Map<java.lang.String,​java.lang.String> properties)
        Description copied from interface: Catalog
        Initialize 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:
        initialize in interface Catalog
        Parameters:
        name - a custom name for the catalog
        properties - catalog properties
      • listTables

        public java.util.List<TableIdentifier> listTables​(Namespace namespace)
        Iterate all table objects with the namespace prefix.
        Specified by:
        listTables in interface Catalog
        Parameters:
        namespace - a namespace
        Returns:
        a list of identifiers for tables
      • dropTable

        public boolean dropTable​(TableIdentifier identifier,
                                 boolean purge)
        Remove table object. If the purge flag is set, remove all data objects.
        Specified by:
        dropTable in interface Catalog
        Parameters:
        identifier - a table identifier
        purge - if true, delete all data and metadata files in the table
        Returns:
        true if the table was dropped, false if the table did not exist
      • renameTable

        public void renameTable​(TableIdentifier from,
                                TableIdentifier to)
        Table rename will only move table object, the data objects will still be in-place.
        Specified by:
        renameTable in interface Catalog
        Parameters:
        from - identifier of the table to rename
        to - new table name
      • createNamespace

        public void createNamespace​(Namespace namespace,
                                    java.util.Map<java.lang.String,​java.lang.String> properties)
        Description copied from interface: SupportsNamespaces
        Create a namespace in the catalog.
        Specified by:
        createNamespace in interface SupportsNamespaces
        Parameters:
        namespace - a multi-part namespace
        properties - a string Map of properties for the given namespace
      • setProperties

        public boolean setProperties​(Namespace namespace,
                                     java.util.Map<java.lang.String,​java.lang.String> properties)
                              throws NoSuchNamespaceException
        Description copied from interface: SupportsNamespaces
        Set 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:
        setProperties in 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)
      • removeProperties

        public boolean removeProperties​(Namespace namespace,
                                        java.util.Set<java.lang.String> properties)
                                 throws NoSuchNamespaceException
        Description copied from interface: SupportsNamespaces
        Remove 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:
        removeProperties in 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)
      • tableExists

        public boolean tableExists​(TableIdentifier identifier)
        Description copied from interface: Catalog
        Check whether table exists.
        Specified by:
        tableExists in interface Catalog
        Parameters:
        identifier - a table identifier
        Returns:
        true if the table exists, false otherwise
      • objectMetadata

        public java.util.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.
      • name

        public java.lang.String name()
        Description copied from interface: Catalog
        Return the name for this catalog.
        Specified by:
        name in interface Catalog
        Returns:
        this catalog's name
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException
      • setConf

        public void setConf​(java.lang.Object conf)
        Specified by:
        setConf in interface Configurable<java.lang.Object>